TiKV 源码阅读(未完成)

Posted by Masutangu on July 9, 2018

TiKV 使用 RocksDB 做持久化存储引擎。将 key 分 range,每一段称为 Region。Region 分散在多台机器上以实现存储的水平扩展。每个 Region 会存放多个副本在不同机器上,使用 raft 算法管理:

PD 负责整个 TiKV 集群的调度。

TiKV 使用 version 的方式进行多版本控制(MVCC):

1
2
3
4
5
6
7
Key1-Version3 -> Value
Key1-Version2 -> Value
Key1-Version1 -> Value
...
Key2-Version2 -> Value
Key2-Version1 -> Value
...

TiKV 事务使用 Percolator 模型。采用乐观锁,事务提交才进行冲突检测。

https://zhuanlan.zhihu.com/p/24564094 https://pingcap.com/blog-cn/tidb-internal-1/