TiFlash 源码阅读(五) DeltaTree 存储引擎设计及实现分析 - Part 2

本文深入剖析TiFlash DeltaTree引擎的读取流程,包括快照读取机制,以及如何高效实现MemTable、磁盘上Delta层和Stable层的数据快照。通过创建快照,TiFlash保证了读操作的ACID隔离,并避免长时间读写冲突。在读取过程中,使用PositionalIndex优化K路归并,提高Scan操作的效率。

本文作者:施闻轩,TiFlash 资深研发工程师

背景

Part1 中我们主要对 DeltaTree 引擎的结构和写入相关流程进行了介绍。本文对读取流程进行介绍。若读者尚未阅读过 Part1 ,需要先阅读 Part1 文章了解前置知识。

本文基于写作时最新的 TiFlash v6.1.0 设计及源码进行分析。随着时间推移,新版本中部分设计可能会发生变更,使得本文部分内容失效,请读者注意甄别。TiFlash v6.1.0 的代码可在 TiFlash 的 git repo 中切换到 v6.1.0 tag 进行查看。

Part1 所述,写入时,DeltaTree 引擎形成的结构如下:

数据首先在值域范围上进行切分,分成了多个不同的 Segment,然后在时域范围上进行切分,按照新老数据分为 Stable 层(绝大多数数据)和 Delta 层(刚写入的数据)。其中,Delta 层又分为磁盘上的数据和内存中的 MemTa

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值