术语表

    • 原子性 (atomicity) 指一个事务中的所有操作,或者全部完成,或者全部不完成,不会结束在中间某个环节。TiDB 通过 Primary Key 所在 的原子性来保证分布式事务的原子性。
    • 一致性 (consistency) 指在事务开始之前和结束以后,数据库的完整性没有被破坏。TiDB 在写入数据之前,会校验数据的一致性,校验通过才会写入内存并返回成功。
    • 持久性 (durability) 指事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。在 TiDB 中,事务一旦提交成功,数据全部持久化存储到 TiKV,此时即使 TiDB 服务器宕机也不会出现数据丢失。

    L

    Leader/Follower/Learner

    它们分别对应 Peer 的三种角色。其中 Leader 负责响应客户端的读写请求;Follower 被动地从 Leader 同步数据,当 Leader 失效时会进行选举产生新的 Leader;Learner 是一种特殊的角色,它只参与同步 raft log 而不参与投票,在目前的实现中只短暂存在于添加副本的中间步骤。

    Old value

    Old value 特指在 TiCDC 输出的增量变更日志中的“原始值”。可以通过配置来指定 TiCDC 输出的增量变更日志是否包含“原始值”。

    Operator 是应用于一个 Region 的,服务于某个调度目的的一系列操作的集合。例如“将 Region 2 的 Leader 迁移至 Store 5”,“将 Region 2 的副本迁移到 Store 1, 4, 5”等。

    Operator Step

    Operator Step 是 Operator 执行过程的一个步骤,一个 Operator 常常会包含多个 Operator Step。

    目前 PD 可生成的 Step 包括:

    • :将 Region Leader 迁移至指定 Peer
    • AddPeer:在指定 Store 添加 Follower
    • RemovePeer:删除一个 Region Peer
    • :在指定 Store 添加 Region Learner
    • PromoteLearner:将指定 Learner 提升为 Follower
    • SplitRegion:将指定 Region 一分为二

    P

    Pending/Down

    Pending 和 Down 是 Peer 可能出现的两种特殊状态。其中 Pending 表示 Follower 或 Learner 的 raft log 与 Leader 有较大差距,Pending 状态的 Follower 无法被选举成 Leader。Down 是指 Leader 长时间没有收到对应 Peer 的消息,通常意味着对应节点发生了宕机或者网络隔离。

    Region Split

    TiKV 集群中的 Region 不是一开始就划分好的,而是随着数据写入逐渐分裂生成的,分裂的过程被称为 Region Split。

    其机制是集群初始化时构建一个初始 Region 覆盖整个 key space,随后在运行过程中每当 Region 数据达到一定量之后就通过 Split 产生新的 Region。

    Restore

    备份操作的逆过程,即利用保存的备份数据还原出原始数据的过程。

    S

    • :保持不同节点的 Leader 均衡。
    • balance-region-scheduler:保持不同节点的 Peer 均衡。
    • :驱逐某个节点的所有 Leader。(常用于滚动升级)

    Store

    PD 中的 Store 指的是集群中的存储节点,也就是 tikv-server 实例。Store 与 TiKV 实例是严格一一对应的,即使在同一主机甚至同一块磁盘部署多个 TiKV 实例,这些实例也对会对应不同的 Store。