小红花·文摘
  • 首页
  • 广场
  • 排行榜🏆
  • 直播
  • FAQ
Dify.AI

> 本文是写作规划,不是可发布正文。拆解对象:TiKV 7.x/8.x(Region / Multi-Raft / raftstore / MVCC key)为主线;PD 为调度与 TSO;TiFlash 以 Raft Learner 列存副本收束 HTAP;CockroachDB 作对照一篇,OceanBase 仅边…

TiKV / HTAP 内核 — 系列规划

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-17T13:46:25Z

本文总结了分布式KV系统的选型决策树,涵盖etcd、FoundationDB、TiKV等的适用场景与机制,强调了严格可串行化、事务处理和存储解耦等关键概念,并指出了高冲突负载下OCC重试的可接受性等开放问题。

【FoundationDB 内核】选型与阅读地图:FoundationDB vs TiKV vs etcd

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-17T00:00:00Z

本文介绍了TiDB集群的四个核心组件及其功能:TiDB负责SQL解析和请求路由,TiKV处理分布式事务和数据存储,PD管理元数据和调度,TiFlash提供列存分析副本。理解各组件的独立性和复杂性有助于排查性能问题。接下来将深入探讨TiKV的具体实现与机制。

【TiKV / HTAP 内核】HTAP / 分布式 KV 全景:TiDB–TiKV–PD–TiFlash 四件套

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-16T00:00:00Z

TiKV 将 Percolator 的锁、数据和写入三列映射为 RocksDB 的 CF_LOCK、CF_DEFAULT 和 CF_WRITE。通过时间戳的位反转实现 Key 编码规则,确保查询时优先返回最新版本。TiKV 的 MVCC 时间戳由 PD 的 TSO 提供,确保跨 Region 的全局一致性,区别于 RocksDB 的单机快照机制。这三种 CF 共同维护同一逻辑数据,需联合管理。

【TiKV / HTAP 内核】Key 编码与 MVCC:三 CF 与时间戳

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-16T00:00:00Z

TiKV 将集群数据视为全局有序的 Key-Value 大表,按 Key 切分为多个 Region。每个 Region 代表一个连续的 Key 区间,RegionEpoch 通过两个字段管理版本,确保请求有效性。每个 Region 由多个 Peer 组成 Raft 组,只有 Leader 处理读写请求。PD 负责均衡 Region 和 Leader 的分布,以提升容错能力和性能。

【TiKV / HTAP 内核】Region 模型:range、epoch、peer

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-16T00:00:00Z

TiKV 采用 Multi-Raft 模型,每个 Region 独立维护 Raft 日志,支持高并发写入,解决了单 Raft 组的吞吐限制。跨 Region 事务的复杂度增加,需要额外协议保证原子性。TiKV 通过 raftstore 线程池管理状态机,优化性能,并引入 Hibernate Region 减少空闲状态开销,实现高效的分布式存储。

【TiKV / HTAP 内核】Multi-Raft:一 Region 一 Raft 组

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-16T00:00:00Z

TiKV 的写请求经历四个阶段:propose、append、commit 和 apply。commit 阶段确保日志被多数副本持久化,但不代表数据已写入 RocksDB。apply 阶段负责实际写入。TiKV 通过异步设计提高性能,确保协议推进与状态机执行分离,优化写入效率。

【TiKV / HTAP 内核】raftstore 写路径:propose 到 Apply

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-16T00:00:00Z

TiKV 通过 Raft Snapshot 解决副本落后问题,允许副本直接从 Leader 同步,避免日志重放开销。日志 GC 定期清理不再需要的日志,确保副本正常追赶。TiKV 支持 Voter、Learner 和 Witness 三种副本形态,以提高系统容错能力和存储效率。

【TiKV / HTAP 内核】Snapshot、log GC 与副本迁移

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-16T00:00:00Z

PD(Placement Driver)作为TiKV的调度中心,通过心跳机制收集集群状态,生成调度建议(Operator),并发送给Region Leader。调度过程异步,Leader可选择执行或跳过建议。PD使用Store心跳提供宏观视图,Region心跳提供精确位置。调度的基本单元是Operator,主要目标是负载均衡和副本管理,决策受限于放置规则和调度限制,以确保系统稳定性。

【TiKV / HTAP 内核】PD 元数据与调度:心跳、算子与调度器

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-16T00:00:00Z

本文讨论了TiKV的动态分区策略,重点在于Region的分裂与合并机制。TiKV通过静态大小和key数量、负载(Load Base Split)两条管线判断何时分裂,分裂过程通过BatchSplit命令修改元数据,不涉及数据复制。合并需先对齐副本,经过PrepareMerge和CommitMerge两个阶段。PD的hot-region-scheduler与TiKV的Load Base Split相辅相成,解决热点问题。

【TiKV / HTAP 内核】Split / Merge / 热点:Region 何时该切、何时该并

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-16T00:00:00Z

本文讨论了TiDB中的时间戳分配服务TSO(Timestamp Oracle),其核心在于确保全局事务的严格顺序。TSO通过46位物理时间和18位逻辑计数器组合成64位时间戳,由PD leader负责分配,以确保单调性和故障恢复。通过批量请求机制,多个事务可以共享一次网络往返,从而降低延迟。

【TiKV / HTAP 内核】TSO:物理加逻辑的全局时间戳

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-16T00:00:00Z

本文探讨了TiKV如何实现Percolator论文中的data/lock/write模型,分析了TiKV在编码、Prewrite/Commit过程中的调整,包括Rollback记录、短值优化和Lock类型写记录。TiKV将Prewrite的原子性单位从单行事务改为Region的Raft提交,并通过Async Commit和1PC优化减少延迟,满足在线事务的性能需求,展示了TiKV在生产环境中的应用与论文模型的差异。

【TiKV / HTAP 内核】Percolator 乐观事务落地:prewrite、commit 与三 CF

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-16T00:00:00Z

TiKV 的悲观锁默认使用内存路径以减少加锁延迟,但在非计划的 Leader 切换时可能会丢失锁。锁的 TTL 动态调整,长事务依赖心跳续期。死锁检测采用集中式方案,Leader 切换时清空历史依赖,存在漏检风险。TiKV 的锁机制与传统数据库相似,需纠正对其“无锁”的误解。

【TiKV / HTAP 内核】悲观事务与 ResolveLock:TTL、死锁检测边界,纠正「TiKV 无锁」

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-16T00:00:00Z

TiKV的Coprocessor通过将计算下推到本地执行,优化了数据查询性能。它执行TiDB编译的DAG请求,支持表扫描、过滤和聚合等操作,但不支持跨Region的连接。Coprocessor的批量执行提高了CPU效率,并通过资源控制避免影响在线事务。

【TiKV / HTAP 内核】Coprocessor:DAG 下推与向量化边界

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-16T00:00:00Z

本文讨论了TiDB中SQL处理的关键步骤,重点介绍了如何将SQL请求路由到具体的Region。TiDB通过distsql模块将逻辑key范围映射到物理Region,并生成Coprocessor任务。文章还探讨了Region路由中的错误处理机制和重试策略,以及不同下推协议(Cop、BatchCop、MPP)的路由差异。最后,强调了优化器选择与路由层之间的独立性,以及点查与范围扫描的效率差异。

【TiKV / HTAP 内核】TiDB SQL 层边界:一条计划如何打到 Region

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-16T00:00:00Z

TiFlash通过Raft Learner角色接收TiKV日志,实现行存到列存的转换,保持物理隔离和强一致性。其存储引擎DeltaTree分为Delta和Stable两层,优化写入和读取性能。TiFlash的读路径通过ReadIndex确认复制进度,确保数据一致性。存算分离架构允许独立扩展存储和计算资源,提升查询效率。

【TiKV / HTAP 内核】TiFlash Learner:Raft 日志到列存

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-16T00:00:00Z

本文讨论了TiFlash中的safe-ts机制,确保数据读取的一致性和可见性。safe-ts是一个时间戳,表示所有提交的事务已在TiFlash副本上完成。可见时延通常在亚秒级,由日志复制、应用和锁解析等因素决定。TiDB与TiFlash结合实现了准实时的快照一致性,而非最终一致性。文章还探讨了故障场景下的新鲜度退化及主动接受陈旧数据的选项。

【TiKV / HTAP 内核】新鲜度与一致性:safe-ts 如何定义可见时延

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-16T00:00:00Z

本文对比了TiKV与CockroachDB的架构差异。两者均基于Raft协议,但在角色划分、事务提交协议和部署形态上有所不同。CockroachDB引入了Leaseholder角色,采用Parallel Commits优化事务提交,而TiKV使用Percolator模型。TiKV的默认隔离级别为快照隔离,CockroachDB为可串行化。TiKV为分离式组件,CockroachDB为单进程一体化,运维和扩展方式各异。

【TiKV / HTAP 内核】CockroachDB 对照:Range + Raft 的另一种落地

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-16T00:00:00Z

本文讨论了TiKV/PD/TiFlash的常见故障及其排查方法,包括Region过多、热点、TSO抖动、锁冲突和apply积压。每种故障都有相应的信号源和根因链,提供了排查框架和具体处理方向。强调信号与机制的关系,建议根据官方文档调整参数。

【TiKV / HTAP 内核】生产排障:Region 过多、热点、TSO 抖动、锁冲突、apply 积压

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-16T00:00:00Z

本文总结了TiKV/HTAP系列的核心内容,包括选型决策树、站内阅读地图及学术谱系。读者可以理解如何选择合适的KV存储,特别是在数据规模、分布式事务和新鲜度要求方面。系列共18篇,探讨了从Region切分到Multi-Raft复制的各个环节,并指出了当前的开放问题,如千万级Region的运维上限和跨Region的可观测性。

【TiKV / HTAP 内核】选型与阅读地图:TiKV vs etcd vs FDB vs 单机 RocksDB vs 湖 + CDC

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-16T00:00:00Z
  • <<
  • <
  • 1 (current)
  • 2
  • 3
  • >
  • >>
👤 个人中心
在公众号发送验证码完成验证
登录验证
在本设备完成一次验证即可继续使用

完成下面两步后,将自动完成登录并继续当前操作。

1 关注公众号
小红花技术领袖公众号二维码
小红花技术领袖
如果当前 App 无法识别二维码,请在微信搜索并关注该公众号
2 发送验证码
在公众号对话中发送下面 4 位验证码
友情链接: MOGE.AI 九胧科技 模力方舟 Gitee AI 菜鸟教程 Remio.AI DeekSeek连连 53AI 神龙海外代理IP IPIPGO全球代理IP 东波哥的博客 匡优考试在线考试系统 开源服务指南 蓝莺IM Solo 独立开发者社区 AI酷站导航 极客Fun 我爱水煮鱼 周报生成器 He3.app 简单简历 白鲸出海 T沙龙 职友集 TechParty 蟒周刊 Best AI Music Generator

小红花技术领袖俱乐部
小红花·文摘:汇聚分发优质内容
小红花技术领袖俱乐部
Copyright © 2021-
粤ICP备2022094092号-1
公众号 小红花技术领袖俱乐部公众号二维码
视频号 小红花技术领袖俱乐部视频号二维码