TiDB-入门概念

TiDB是一个支持云原生的分布式数据库,它实现了ACID事务并支持MySQL协议。TiDB适用于OLTP和OLAP场景,通过Raft协议实现高可用性。其架构包括无状态的TiDB服务器、KV存储TiKV、服务管理PD以及数据分析组件TiFlash。分布式事务基于二阶段提交,而Raft协议用于节点间的选举和故障恢复。
摘要由CSDN通过智能技术生成

NEWSQL

  • SQL:强事务保证和关系模型。
  • NoSQL:数据的高可用和可扩展性。
  • NewSQL:都支持。

TIDB特性

  • 支持云原生的分布式数据库。
  • 支持分布式事务的问题,满足ACID。
    • ACID是关系型数据库的特性。A(atomicity):原子性;C(consistency):一致性;I(isolation):隔离性;D(durability):持久性;
  • 支持mysql协议。
  • 支持MVCC 隔离级别。
  • 支持OLTP和OLAP场景
    • OLTP(Online Transaction Processing)是指在线事务处理,数据库适用的OLTP场景指的是要求高并发、低延迟、数据一致性高的线上交易场景。
    • OLAP(Online Analytical Processing)是指在线分析处理,数据库适用的OLAP场景指的是面向决策支持和数据分析的场景,需要具备高性能的查询、处理大数据量、复杂的数据分析和管理、支持数据库的多维度、数据透视表、在线分析和数据挖掘等特性,以满足企业在决策制定上的数据支持需求。
  • 支持高可用。基于Raft的多数派选举协议。
    • Raft协议中有leader选举机制。

TIDB架构

在这里插入图片描述

  • 将mysql中的内存数据处理部分和硬盘数据存储部分做了进一步的拆分。
  • 内存数据处理部分就是TiDB,是一个无状态服务,负责解析sql语句并完成解析返回数据。
  • TiKV是TiDB的数据储存部分,是KV格式存储数据,支持TiDB和TiSpark完成数据请求。
    • 基础组件是Reigon,上层是RaftGroup,这个类似kafka的分片副本和分片之间的关系。
    • 基于Raft协议,实现高可用。
  • PD是服务管理中心,负责元数据服务和服务治理。
    • 这里的服务治理对象是TiKV,负责高可用部分。也就是数据查询和数据安全(冗余、调度)。
    • 同时自身也支持Raft协议,满足高可用。
  • TiSpark是支持Spark的无状态服务解析器。
  • TiFlash,基于列示存储,有利于数据分析,不利于变更。

TIDB分布式事务

  • 基于二阶段提交。
    • 各节点都和协调者交互,完成申请、预提交、提交和回滚等操作。
  • 还有协调者身份,协调者由指挥变更为发布事务ID,具体是否提交由各个节点自己交互处理。

Raft协议

  • Raft将系统中的各个节点划分为三种角色:Leader、Follower和Candidate。Leader负责接收客户端请求,并将状态变更广播给其他节点;Follower和Candidate则负责接收Leader的命令,并将其状态同步到本地。
  • Raft协议的关键机制是选举。如果Leader节点宕机了,那么剩余的节点将从候选人中选出一个新的Leader。在选举过程中,每个候选人都会向其他节点发送选举请求,并且在接收到多数节点的投票后才能成为Leader。这种机制可以保证一旦Leader节点发生宕机,系统的其他节点可以迅速选出新的Leader,并确保对状态机的请求处理不会受到影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

田秋浩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值