TiKV 架构原理(笔记)
作者: lvlei 原文来源:https://tidb.net/blog/30f03150
TiKV 架构原理(笔记)
设计目标
高性能 KV 存储引擎
保证多个机器之间的数据一致性
支持 ACID 事务
可以实现自定义数据分布和负载均衡
存储引擎,RocksDB
LSM-tree:顺序写,优化写性能
分层存储,多级缓存,提高数据读取效率: 热数据在上层
关键特性
Column Family
精细的 compaction,配置线程数,手动触发,rate limiter
ingest external sst file: 快速插入数据,快速 balance
prefix bloom filter/iterator upper bound:特殊场景下加速 scan
Raft
选举:follower-candidate-Leader
日志复制:leader 复制给 follower
关键特性
Leader lease 本地读,优化读请求(注:每个心跳会重新续 Lease)
Follower reader 分担 leader 压力
动态副本变更,方便调度
Batch 合并多个 region 的写入(注:raft 支持的 Batch 操作)
Milti-Raft
负载均衡 balance
分裂 split
合并 merge
分布式事务
基于 percolator 模型
PD 集成授时服务,保证全局时序
两阶段提交
乐观事务并发: 客户端缓存数据(unionstore),提交时才检测冲突
可选悲观事务
客户端作为事事务的协调者(tidb)
不适用单点事务管理器(primary key)
2pc
prewrite: 同步写 primarykey&secondarykey
commit: 提交 primary key 就表示成功,异步提交 secondary key
Coprocessor
下推函数到 Tikv 执行
TiKV 独立组件,低耦合
向量化执行(每次处理多行,聚合表达式按列计算)
版权声明: 本文为 InfoQ 作者【TiDB 社区干货传送门】的原创文章。
原文链接:【http://xie.infoq.cn/article/82443eba452373ecd436ec8c7】。文章转载请联系作者。
评论