lfkdsk / lfkdsk.github.io

2 stars 2 forks source link

TiDB 相关学习 #11

Closed lfkdsk closed 1 year ago

lfkdsk commented 4 years ago

TiDB 源码阅读

说存储

简介-说存储

TiKV 的基本知识,建立在 RocketDB 之上的分布式数据库,提供基本的 Key-Value 存取功能。 通过优化的 Raft 算法提供多 Replicas 的备份,存储之中会包含 Key-Version => Value 的多版本控制(MVCC)。

TiKV 的最小数据移动单元是 Region,每个 Region 包含相近的多个 Key 序列。

谈计算

简介-谈计算

Index, Key 映射到 KV 需对上去,通过 tablePrefix_rowPrefix_tableID_rowID 的方式进行存储。

调度

调度

lfkdsk commented 4 years ago

Raft 流程优化

  1. Leader 接受一个 client 发送的 request。
  2. Leader 将对应的 log 发送给其他 follower 并本地 append。
  3. Leader 继续接受其他 client 的 requests,持续进行步骤 2。
  4. Leader 发现 log 已经被 committed,在另一个线程 apply。
  5. Leader 异步 apply log 之后,返回结果给对应的 client。