tikv体系架构总结,请大佬们指导,这是我个人理解,不一定全对。
1、Coprocessor:计算下推,分布式并行计算
2、Transaction、
2.1、Scheduler(流控、获取latches、对比snapshot)----对应参数storage.scheduler-worker-pool-size
2.2、分布式事务(2PC提交)、锁管理、MVCC、GC
2.3、线程池模型scheduler‑worker‑pool
3、Raftstore:完成Raft一致性复制----对应参数raftstore.store-pool-size
3.1、Raft一致性协议实现(选举、日志复制与同步),每个Region对应一个Raft实例(每台TiKV上Region的副本,就是运行一个独立Raft实例)
3.2、region管理(分裂、合并)
3.3、raft日志处理
3.3.1、propose:接收上层(Transaction)提交的写请求,封装成Raft log,提交给Raft状态机
3.3.2、append:Leader将日志复制给Follower副本;Follower接收、保存Raft log
3.3.3、apply:日志提交成功,apply线程把KV数据写入RocksDB,KV真正落盘----对应参数raftstore.apply-pool-size
3.4、Snapshot快照管理:新副本补数据、落后过多的Follower恢复数据