介绍一下TiDB、RocksDb、levelDB、LSM 树、SSTable。

LSM 树(Log-Structured Merge-Tree)

  • 核心原理 :通过将随机写转换为顺序写优化写入性能,适用于写密集型场景。数据首先写入内存中的 MemTable (有序结构,如跳表),当达到阈值后转为 Immutable MemTable ,再刷入磁盘形成 SSTable。通过分层合并(Compaction)清理冗余数据。
  • 关键特点
    • 写放大:合并操作可能导致重复写入,但顺序写优势显著(如机械盘顺序写性能是随机写的千倍)。
    • 读放大:需从内存到多层级磁盘文件逐层查找,但通过布隆过滤器和索引优化。
    • 分层结构:数据从高层(热数据)到低层(冷数据)逐步下沉,低层容量按指数级增长(如每层容量是上一层的10倍)。

SSTable(Sorted String Table)

  • 定义:磁盘上的有序键值文件,不可变且全局有序(除Level 0外),每个文件包含数据块、索引块和布隆过滤器。
  • 优化手段
    • 索引加速:通过稀疏索引快速定位数据块。
    • 布隆过滤器:减少无效磁盘I/O,判断键是否存在于文件中。
    • 压缩:使用Snappy/ZSTD等算法减少存储空间和传输带宽。

LevelDB

  • 定位:Google开源的轻量级单机KV存储引擎,基于LSM树。
  • 核心设计
    • 内存结构:Active MemTable(写入口)和Immutable MemTable(待刷盘)。
    • Compaction策略:分层合并,Level 0允许文件间Key重叠,其他层级全局有序。
    • 限制:单线程Compaction、无多版本控制,适合嵌入式或小规模场景。
  • 典型应用:Chrome浏览器本地存储、轻量级NoSQL场景。

RocksDB

  • 定位:Facebook优化的LevelDB升级版,支持企业级高并发和大数据量。
  • 关键优化
    • 并行Compaction:多线程加速合并,降低写停顿。
    • 冷热分离:热数据优先保留在低层,冷数据下沉至高层。
    • 灵活配置:支持多种压缩算法、速率限制、TTL等。
    • 增量备份:支持Checkpoint和增量快照。
  • 应用场景:MySQL底层存储(如TiDB)、分布式系统(如CockroachDB)、消息队列(如Kafka的RocksDB状态存储)。

TiDB

  • 定位:国产分布式HTAP数据库,兼容MySQL协议,底层存储基于RocksDB。
  • 架构组件
    • TiKV:分布式KV存储引擎,数据按Region分片,基于Raft协议保证一致性。
    • PD(Placement Driver):全局调度器,管理元数据、负载均衡和故障恢复。
    • TiSpark:集成Spark处理复杂OLAP查询。
  • 核心优势
    • 水平扩展:通过添加节点实现计算和存储分离扩容。
    • HTAP能力:行存(TiKV)支持OLTP,列存(TiFlash)支持OLAP。
    • 金融级可靠性:支持分布式事务(Percolator协议)和多副本强一致。

对比与关联

维度 LevelDB RocksDB TiDB
架构 单机嵌入式 单机/分布式扩展 分布式HTAP
Compaction 单线程,分层合并 多线程,冷热分离 基于RocksDB,Region分片
适用场景 小规模、低并发 高吞吐、企业级存储 大规模OLTP+OLAP混合负载
核心优化 基础LSM实现 多级缓存、速率控制 全局调度、行列混存

典型应用场景

  1. LSM树:写密集型场景(日志存储、时序数据)。
  2. LevelDB:浏览器本地存储、小型嵌入式系统。
  3. RocksDB:分布式数据库底层引擎(如TiKV)、消息队列状态存储。
  4. TiDB:金融级分布式事务(如支付系统)、实时分析(如电商大促监控)。
相关推荐
Lucifer三思而后行10 天前
深入解析分布式数据库TiDB:原理、优化与架构实践
数据库·分布式·tidb
TiDB 社区干货传送门16 天前
从开发者角度看数据库架构进化史:JDBC - 中间件 - TiDB
数据库·oracle·中间件·tidb·数据库架构
TiDB 社区干货传送门16 天前
从40秒到11毫秒:TiDB环境下一次SQL深潜优化实战
数据库·sql·tidb
赵渝强老师22 天前
【赵渝强老师】TiDB SQL层的工作机制
数据库·sql·tidb
观测云1 个月前
TiDB 可观测性最佳实践
tidb
赵渝强老师1 个月前
【赵渝强老师】使用TiDB的审计日志
数据库·tidb
可观测性用观测云1 个月前
TiDB 可观测性最佳实践
tidb
Sirius Wu1 个月前
TiDB 深度解析与 K8S 实战指南
容器·kubernetes·tidb
PingCAP1 个月前
PingCAP“一号员工”唐刘:回顾我与 TiDB 的十年成长之旅
数据库·tidb
转转技术团队1 个月前
告别人工搬运!TiDB/MySQL双库同步工具如何为业务提效100%?
mysql·tidb·测试