
LSM Tree
文章平均质量分 94
lifallen
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深入解析RocksDB的MVCC和LSM Tree level
RocksDB的版本控制机制解析 RocksDB通过多版本并发控制(MVCC)机制实现高效读写与数据一致性,其核心组件包括Version、VersionSet和VersionEdit。Version代表数据库在特定时间点的完整快照,包含LSM-Tree各层级的文件元数据;VersionSet管理所有列族的Version对象,形成双向链表;VersionEdit则记录增量变更。三者协同工作,确保数据操作的原子性和一致性。 关键特性: 不可变性:Version对象一旦创建便不再修改原创 2025-07-29 16:27:38 · 1965 阅读 · 0 评论 -
Paimon LSM Tree Compaction 策略
Paimon的Merge-Tree压缩机制通过分层调度和策略选择实现高效数据管理。MergeTreeCompactManager:总调度中心。支持两种模式: 全量合并(Full Compaction):将所有文件合并到最高层级 常规合并:使用策略(如UniversalCompaction)智能选择文件 压缩策略: UniversalCompaction:基于文件数量、大小比例等指标选择合并文件 ForceUpLevel0Compaction:激进合并Level0文件,优化Lookup场景原创 2025-07-07 22:12:52 · 2570 阅读 · 0 评论 -
Paimon lookup核心过程:分级查找、二分和缓存创建(LookupFile)
Paimon中的LookupLevels是一个高效的键值查找引擎,核心功能是通过多层缓存机制在LSM-Tree中快速定位数据。它采用惰性缓存策略,首次查询远程数据文件时会下载并构建本地索引文件(LookupFile),使用Caffeine缓存管理生命周期。系统包含多层查找逻辑:从指定层级开始向上搜索,针对Level0采用全量遍历,更高层级使用二分查找优化。LookupFile封装了本地索引文件,提供基于Key的快速查询,并关联原始远程文件元数据。通过ValueProcessor策略接口支持多样化查询需求原创 2025-07-06 15:41:26 · 1192 阅读 · 0 评论 -
Paimon Lookup: LSM Tree Sort Block
Paimon主键表查找流程解析 Paimon采用LSM-Tree结构存储主键表数据,查找流程分为三层结构: 层级查找(宏观) 从Level0开始逐层向下查找 Level0文件间Key范围重叠,需遍历所有文件 Level1及以上文件Key范围有序不重叠,可二分查找 文件定位(中观) 对当前层级文件列表进行二分查找 利用文件元数据(minKey/maxKey)快速定位候选文件 为提升性能,采用多种优化:为Parquet主文件建立轻量级Lookup索引布隆过滤器快速过滤不存在Key数据块压缩 多级缓存原创 2025-07-04 16:18:24 · 769 阅读 · 0 评论 -
Paimon的LSM 包 和 LSM Tree的基本结构
Paimon的MergeTree包实现了核心的LSM-Tree结构,主要包含三个关键组件:写入路径、数据结构和压缩机制。MergeTreeWriter作为写入入口,将KeyValue记录缓存到WriteBuffer(如SortBufferWriteBuffer)并进行排序后刷盘生成L0层SST文件。Levels类管理LSM-Tree的多层级结构,其中L0层文件无序,L1+层文件有序不重叠。SortedRun封装一组有序且键不重叠的文件,是压缩的基本单元。原创 2025-07-03 20:11:29 · 1187 阅读 · 0 评论 -
Paimon MergeTreeWriter:LSM Tree level0 SST的诞生
MergeTreeWriter是Apache Paimon写入链路的核心组件,采用LSM-Tree架构设计,负责单个分区分桶内的数据写入、合并和提交准备。其主要功能包括:1) 接收KeyValue形式的数据写入;2) 在缓冲区(SortBufferWriteBuffer)中进行排序和合并;3) 将有序数据整理为Level-0层SST文件;4) 管理合并(Compaction)流程优化文件结构;5) 生成变更日志(Changelog)支持流式读取。原创 2025-07-03 15:22:18 · 464 阅读 · 0 评论 -
Paimon vs. HBase:全链路开销对比
Paimon与HBase在存储架构和性能表现上存在显著差异。Paimon采用列式存储和Flink Checkpoint机制,通过一次性构建LookupFile优化查询性能,其写入路径更轻量级,存储空间占用仅为HBase的1/3甚至更少。而HBase依赖WAL和复杂元数据,虽保证低延迟但持续开销较大。Paimon的设计哲学是用可控的一次性开销换取持续高效的分析性能,特别适合流式分析场景。在数据湖分析场景中,Paimon的整体资源消耗和效率通常优于HBase。原创 2025-07-02 17:06:31 · 1097 阅读 · 0 评论 -
Paimon LSM Tree Compaction核心:堆和败者树
SortMergeReaderWithMinHeap和SortMergeReaderWithLoserTree是Paimon中实现多路归并排序的两种核心实现。两者都用于合并多个已排序的数据流,但采用不同数据结构:MinHeap使用最小堆,每次调整需要约2logK次比较;LoserTree采用败者树,优化为约logK次比较。LoserTree通过状态机(State)和firstSameKeyIndex字段高效处理主键相同的记录分组,支持快速跳转优化。两种实现都遵循"取数-调整-补充"的循环原创 2025-06-30 16:14:20 · 2556 阅读 · 0 评论