暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
MONGODB 到底支持不支持lsm_ 与 成本控制DUMP ROCKSDB.pdf
39
5页
1次
2024-11-11
免费下载
MONGODB 到底支持不支持lsm? 与 成本控制DUMP
ROCKSDB
原创 carol11 AustinDatabases 9月9
收录于话题
#mongo 2
#mongodb 3
最近遇到两个问题,wriedtiger引擎到底支持不支持LSM tree , 2 为什么percona的mongodb Dump 了
ROCKSDB 的数据库引擎.
首先 BTREE 和 LSM TREE 之间的区别需要讲清
1 BTREE 的优点,数据有序存储,读取范围性的数据速度快,基于传统磁盘原理,通过索引快速定位数据
2 LSM TREE 的优点,更大容量的数据存储,采用合并机制,对于SSD 磁盘有更改的适应性,通过BLOOM 过滤的方式
查找数据,速度也不慢
大致LSM TREE 工作的原理
在内存中对进入到mongodb wiretiger lsm tree 中的内存树达到阈值大小,随即创建一个新的内存树,将旧树
同步到磁盘,在写入磁盘后,树是只读的,在磁盘上对LSM树合并.
WiredTiger在合并时创建一个Bloom过滤器,这是一个附加的文件,每个密钥包含一个可配置的位数(默认为8),
密钥按可配置的次数(默认为4)进行散列,并设置相应的位,Bloom过滤器用于避免在密钥不存在时从块中读取。
以上的信息其实是从wiredtiger的数据库引擎的help 页面中找到的.
https://github.com/wiredtiger/wiredtiger/wiki/Btree-vs-LSM
在wiredtiger的github 上有相关的的对比
文字中,最终总结了几点
1 Btree 的数据存储结构方式在大部分情况中是可以满足,写入和查询的需求的, LSM TREE 会根据数据的插入,
期的进行后台的维护,(与原理有关).
2 如果有大量的写操作的需求,则LSM TREE 是一种替换BTREE 更好的选择
3 测试中仅仅是针对简单的数据模式
4 如果数据库中的collections 的需求比较复杂,则可以在一个DATABASE中选择适合的 lsm 和 btree 混合的模
式.
但实际上在操作中发现即使按照wiredtiger提供的方式来还是写入到了btree的,到底是因为什么,下面的图给了,
截止目前为止虽然wiredtiger 可以早创建collecion的时候,选择数据结构是LSM 但仅仅是一种配置方面的测试
接口,并不是说通过此种方式生成的,collection就是LSM数据存储结构.但还是秉着疑问的状态对此进行了测试
下面生成了一个lsm tree 结构的collection 并且建立一个 lsm tree的索引
of 5
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。