介绍一下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:金融级分布式事务(如支付系统)、实时分析(如电商大促监控)。
相关推荐
七七powerful2 天前
mysql & 磐维(opengauss)&tidb误删数据之高级恢复
数据库·mysql·tidb
PingCAP3 天前
TiDB × AI :DeepSeek 时代你需要什么样的数据基座
数据库·人工智能·tidb
PingCAP4 天前
架构师必看!现代应用架构发展趋势与数据库选型建议丨TiDB vs MySQL 专题(一)
分布式·mysql·tidb
TiDB_PingCAP10 天前
TiDB 观测性解读(一)丨索引观测:快速识别无用索引与低效索
数据库·tidb·索引优化
PingCAP11 天前
TiDB 观测性解读(一)丨索引观测:快速识别无用索引与低效索引
数据库·tidb
24k小善14 天前
flink集成tidb cdc
大数据·flink·tidb
TiDB_PingCAP14 天前
海量数据融合互通丨TiDB 在安徽省住房公积金监管服务平台的应用实践
分布式·tidb·htap
蒂法就是我16 天前
什么是TiDB,什么是分布式数据库?它和 MySQL 比优缺点是什么?
数据库·分布式·tidb
PingCAP18 天前
海量数据融合互通丨TiDB 在安徽省住房公积金监管服务平台的应用实践
分布式·tidb