OceanBase 的底层存储引擎核心是基于 LSM‑Tree(Log‑Structured Merge‑Tree) 的“基线‑增量”架构。在此基础上,从 V4.3 版本开始扩展了对列存的支持,形成了行存/列存/混存一体化的存储体系。
📚 核心架构:LSM‑Tree 的“基线‑增量”模型
OceanBase 将数据分为两部分:
| 组成部分 | 存储位置 | 特点 |
|---|---|---|
| 增量数据(MemTable) | 内存中 | 接收所有的实时写入(DML),仅写内存,因此写入性能极高。 |
| 基线数据(SSTable) | SSD 磁盘(或对象存储) | 只读、静态化的数据,通过定期合并(Minor/Major Freeze)将增量数据持久化到磁盘。 |
这种设计使得 OceanBase 在写入时几乎完全避免随机磁盘 I/O,同时通过内存与磁盘的分离实现了高压缩比与横向扩展能力[reference:0]。
🔄 存储引擎的关键技术特点
- LSM‑Tree 优化:OceanBase 在经典 LSM‑Tree 基础上做了大量工程优化,包括分层合并、全局版本控制(每日合并)、多副本一致性等,从而在随机写入、实时更新、强一致性场景中持续提升性能[reference:1]。
- 行列混合存储:从 V4.3 开始,存储引擎扩展了对列存的支持。基线数据可以选择行存、列存或行列混存的物理形态,而增量数据仍保持行存,从而在同一个架构中同时支撑 TP(事务处理)与 AP(分析处理)负载[reference:2]。
- 高压缩比:通过自研的行列混合编码算法和通用压缩算法,相比传统数据库可实现 10 倍以上的存储压缩率,在金融、通信等领域帮助客户降低 70% 以上的存储成本[reference:3]。
- 分布式架构:采用 Shared‑Nothing(无共享)或 Shared‑Storage(共享存储)部署模式,通过 Multi‑Paxos 协议保证多副本强一致性,支持超过 1500 个节点、PB 级数据量的集群规模[reference:4]。
🚀 演进:从纯行存到行列一体化
- V4.3 之前:存储引擎主要围绕 LSM‑Tree 的行存模式优化,适合高并发 TP 场景。
- V4.3 及以后:引入了列存引擎,使得同一张表可以选择行存、列存或行列混存,实现了 TP/AP 一体化的存储架构[reference:5]。
💎 总结
总而言之,OceanBase 的底层存储引擎是基于 LSM‑Tree 的基线‑增量架构,并通过行列混合存储、高压缩算法和分布式一致性协议等创新,使其同时具备高性能事务处理与大规模实时分析的能力。