Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions dev/TOC.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@
- [Java 应用开发最佳实践](/dev/reference/best-practices/java-app.md)
- [高并发写入场景最佳实践](/dev/reference/best-practices/high-concurrency.md)
- [Grafana 监控最佳实践](/dev/reference/best-practices/grafana-monitor.md)
- [PD 调度策略最佳实践](/dev/reference/best-practices/pd-scheduling.md)
+ [与 MySQL 兼容性对比](/dev/reference/mysql-compatibility.md)
+ SQL
+ SQL 语言结构
Expand Down Expand Up @@ -457,3 +458,4 @@
- [RC3](/dev/releases/rc3.md)
- [RC2](/dev/releases/rc2.md)
- [RC1](/dev/releases/rc1.md)
+ [术语表](/dev/glossary.md)
67 changes: 67 additions & 0 deletions dev/glossary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
title: 术语表
summary: 学习 TiDB 相关术语
category: glossary
---

# 术语表
Comment thread
dcalvin marked this conversation as resolved.

## L

### Leader/Follower/Learner

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

## O

### Operator

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

Operator 可以是由 Scheduler 通过计算生成的,也可以是由外部 API 创建的。

### Operator Step

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

目前 PD 可生成的 Step 包括:

- `TransferLeader`:将 Region Leader 迁移至指定 Peer
- `AddPeer`:在指定 Store 添加 Follower
- `RemovePeer`:删除一个 Region Peer
- `AddLearner`:在指定 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 的消息,通常意味着对应节点发生了宕机或者网络隔离。

## R

### Region/Peer/Raft Group

每个 Region 负责维护集群的一段连续数据(默认配置下平均约 96 MiB),每份数据会在不同的 Store 存储多个副本(默认配置是 3 副本),每个副本称为 Peer。同一个 Region 的多个 Peer 通过 raft 协议进行数据同步,所以 Peer 也用来指代 raft 实例中的成员。TiKV 使用 multi-raft 模式来管理数据,即每个 Region 都对应一个独立运行的 raft 实例,我们也把这样的一个 raft 实例叫做一个 Raft Group。

### Region Split

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

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

## S

### Scheduler

Scheduler(调度器)是 PD 中生成调度的组件。PD 中每个调度器是独立运行的,分别服务于不同的调度目的。常用的调度器及其调用目标有:

- `balance-leader-scheduler`:保持不同节点的 Leader 均衡。
- `balance-region-scheduler`:保持不同节点的 Peer 均衡。
- `hot-region-scheduler`:保持不同节点的读写热点 Region 均衡。
- `evict-leader-{store-id}`:驱逐某个节点的所有 Leader。(常用于滚动升级)

### Store

PD 中的 Store 指的是集群中的存储节点,也就是 tikv-server 实例。Store 与 TiKV 实例是严格一一对应的,即使在同一主机甚至同一块磁盘部署多个 TiKV 实例,这些实例也对会对应不同的 Store。
241 changes: 241 additions & 0 deletions dev/reference/best-practices/pd-scheduling.md

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions v2.1/TOC.md
Original file line number Diff line number Diff line change
Expand Up @@ -383,3 +383,4 @@
- [RC3](/v2.1/releases/rc3.md)
- [RC2](/v2.1/releases/rc2.md)
- [RC1](/v2.1/releases/rc1.md)
+ [术语表](/v2.1/glossary.md)
67 changes: 67 additions & 0 deletions v2.1/glossary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
title: 术语表
summary: 学习 TiDB 相关术语
category: glossary
---

# 术语表

## L

### Leader/Follower/Learner

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

## O

### Operator

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

Operator 可以是由 Scheduler 通过计算生成的,也可以是由外部 API 创建的。

### Operator Step

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

目前 PD 可生成的 Step 包括:

- `TransferLeader`:将 Region Leader 迁移至指定 Peer
- `AddPeer`:在指定 Store 添加 Follower
- `RemovePeer`:删除一个 Region Peer
- `AddLearner`:在指定 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 的消息,通常意味着对应节点发生了宕机或者网络隔离。

## R

### Region/Peer/Raft Group

每个 Region 负责维护集群的一段连续数据(默认配置下平均约 96 MiB),每份数据会在不同的 Store 存储多个副本(默认配置是 3 副本),每个副本称为 Peer。同一个 Region 的多个 Peer 通过 raft 协议进行数据同步,所以 Peer 也用来指代 raft 实例中的成员。TiKV 使用 multi-raft 模式来管理数据,即每个 Region 都对应一个独立运行的 raft 实例,我们也把这样的一个 raft 实例叫做一个 Raft Group。

### Region Split

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

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

## S

### Scheduler

Scheduler(调度器)是 PD 中生成调度的组件。PD 中每个调度器是独立运行的,分别服务于不同的调度目的。常用的调度器及其调用目标有:

- `balance-leader-scheduler`:保持不同节点的 Leader 均衡。
- `balance-region-scheduler`:保持不同节点的 Peer 均衡。
- `hot-region-scheduler`:保持不同节点的读写热点 Region 均衡。
- `evict-leader-{store-id}`:驱逐某个节点的所有 Leader。(常用于滚动升级)

### Store

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