SlateDB:面向在线系统的对象原生LSM存储引擎
SlateDB 是一种专为在线系统设计的对象原生 LSM(日志结构合并树)存储引擎。它通过将对象存储作为主要存储层,显著降低了传统 LSM 树在云环境中的复杂性和成本。本文介绍了 SlateDB 的设计理念、架构优势及其在实时数据处理场景中的应用潜力。
背景速读
- SlateDB 是一个新开源项目,首次将 LSM 树(Log-Structured Merge-Tree,一种常用于 RocksDB 等嵌入式数据库的存储引擎)与对象存储(如 AWS S3、MinIO)原生结合,使数据库能直接读写对象存储而非本地磁盘。
- 传统上 LSM 树引擎(如 LevelDB、RocksDB、HBase)依赖本地 SSD/磁盘;SlateDB 则把 SSTable 文件直接存入对象存储,利用对象存储的廉价与高可用性,适合云原生、Serverless 或边缘场景。
- 项目作者是 Alberto Sonnino(Facebook/Meta Libra/Diem 核心开发者),此前以共识算法等方面的贡献闻名;SlateDB 用 Rust 编写,强调在云环境下无需管理本地磁盘即可运行 OLTP 型在线系统。
- 这解决了“无服务器数据库”或“冷存储数据库”中长期存在的矛盾:LSM 的写放大和读放大在对象存储上是否可行?SlateDB 通过将 Compaction 等操作与对象存储特性适配来尝试回答。
- 与同类对比:现有云数据库如 Amazon DynamoDB、Google Spanner、TiDB 在底层存储上各有取舍,但少有在开源层面将 LSM 完全 “对象原生” 的尝试;SlateDB 瞄准的可能是更轻量的单节点或 Edge 节点上直接查询 S3/MinIO 的场景。