TiKV 是 TiDB 的"数据仓库",专门负责存储和高效管理数据。它的核心设计可以用几个简单的比喻来说明:

  1. 数据存储方式
  • 像个超大保险箱,所有数据都以键值对(key-value)的形式存放[5]
  • 内部使用 RocksDB(一个超高性能的本地存储引擎)来存数据,相当于保险箱里的精密储物格
  1. 数据分片机制
  • 把整个数据库切成很多小块叫 Region(类似把图书馆的书分成多个书架)[5]
  • 每个 Region 默认存储约 96MB 数据,超过就自动分裂(像细胞分裂一样)
  1. 多副本保障
  • 每个数据块(Region)会复制3份存在不同机器上[5]
  • 通过 Raft 协议(类似多方签字的保密协议)确保所有副本数据一致[5]
  • 只有主副本(Leader)能处理写入,其他副本(Follower)只同步数据
  1. 分布式事务
  • 采用两阶段提交协议(类似买房时的"定金+尾款"分步确认)[5]
  • 保证跨机器操作也能维持ACID特性(要么全成功,要么全失败)
  1. 智能调度
  • PD调度中心会监控所有TiKV节点的状态[3]
  • 自动平衡数据分布(像智能快递分拣系统把包裹均匀分配)
  • 节点下线时自动转移数据(避免快递网点关闭导致丢件)[3]
  1. 特殊能力
  • 协处理器(Coprocessor)能分担部分计算任务(像仓库工人帮你简单打包)[2]
  • 支持快速数据快照(Snapshot)用于备份和恢复[6]

关键特点:

  • 横向扩展:加机器就能扩容(像租更多仓库)[5]
  • 高可用:少数机器宕机不影响服务(多重备份保障)
  • 低延迟:优化读取路径保证查询速度[6]
  • 弹性:数据和负载自动均衡分布[5]

简单说,TiKV就像一个有超能力的智能仓库:

  • 自动分区分层存放货物(数据分Region)
  • 每个货品备3份存在不同位置(多副本)
  • 有严格出入库流程保证安全(Raft协议)
  • 支持跨仓库大型交易(分布式事务)
  • 7x24小时有人值守调度(PD协调)[3][5]