文档数据库服务 DDS-DDS 4.2及其以上版本切RocksDB存储引擎相关问题Q&A:RocksDB和WiredTiger两者有什么区别?

时间:2025-02-24 16:33:58

RocksDB和WiredTiger两者有什么区别?

  • 写机制的区别
    • WiredTiger存储引擎的数据结构为B+ tree,落盘数据中一个键(key)对应一个版本号(version),对某一个键(key)进行插入、更新或删除操作都是直接操作对应的数据节点。
    • Rocksdb存储引擎的数据结构为LSM-tree,写数据就像写日志,以追加写的方式进行。落盘数据除了一个键(key),值(value)之外,还有对应的版本号(version)。同一个键(key)在磁盘上有多个版本(version)的数据。业务层的插入、更新、删除操作,在Rocksdb侧都是写操作。这些多版本数据积压到一定阈值后,会触发后台自动归并,对多版本(version)的数据进行合并,这个行为就是RocksDB的Compaction。
  • 数据组织的区别
    • WiredTiger存储引擎中一个集合(collection)的数据或者一个索引的数据对应一个磁盘文件,集合是多大,对应的文件就是多大。
    • RocksDB存储引擎下则没有集合(collection)维度,而是64M一个文件分布在磁盘上。
support.huaweicloud.com/dds_faq/dds_faq_0091.html