MONGODB到底支持不支持lsm以及是否成本控制DUMPROCKSDB

MongoDB到底支持不支持lsm以及是否成本控制DUMP ROCKSDB,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

成都創(chuàng)新互聯(lián)于2013年開始,先為綏棱等服務(wù)建站,綏棱等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為綏棱企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

最近遇到兩個問題,wriedtiger引擎到底支持不支持LSM tree , 2 為什么percona的mongodb Dump 了ROCKSDB 的數(shù)據(jù)庫引擎.

首先 BTREE 和  LSM TREE 之間的區(qū)別需要講清

1 BTREE 的優(yōu)點,數(shù)據(jù)有序存儲,讀取范圍性的數(shù)據(jù)速度快,基于傳統(tǒng)磁盤原理,通過索引快速定位數(shù)據(jù)

2 LSM TREE 的優(yōu)點,更大容量的數(shù)據(jù)存儲,采用合并機制,對于SSD 磁盤有更改的適應(yīng)性,通過BLOOM 過濾的方式查找數(shù)據(jù),速度也不慢

大致LSM TREE 工作的原理

在內(nèi)存中對進入到mongodb wiretiger lsm tree 中的內(nèi)存樹達到閾值大小,隨即創(chuàng)建一個新的內(nèi)存樹,將舊樹同步到磁盤,在寫入磁盤后,樹是只讀的,在磁盤上對LSM樹合并.

WiredTiger在合并時創(chuàng)建一個Bloom過濾器,這是一個附加的文件,每個密鑰包含一個可配置的位數(shù)(默認為8),密鑰按可配置的次數(shù)(默認為4)進行散列,并設(shè)置相應(yīng)的位,Bloom過濾器用于避免在密鑰不存在時從塊中讀取。

以上的信息其實是從wiredtiger的數(shù)據(jù)庫引擎的help 頁面中找到的.

https://github.com/wiredtiger/wiredtiger/wiki/Btree-vs-LSM

在wiredtiger的github 上有相關(guān)的的對比

文字中,最終總結(jié)了幾點

1  Btree 的數(shù)據(jù)存儲結(jié)構(gòu)方式在大部分情況中是可以滿足,寫入和查詢的需求的, LSM TREE 會根據(jù)數(shù)據(jù)的插入,定期的進行后臺的維護,(與原理有關(guān)).

2  如果有大量的寫操作的需求,則LSM TREE 是一種替換BTREE 更好的選擇

3  測試中僅僅是針對簡單的數(shù)據(jù)模式

4  如果數(shù)據(jù)庫中的collections 的需求比較復(fù)雜,則可以在一個DATABASE中選擇適合的 lsm 和 btree 混合的模式. 

但實際上在操作中發(fā)現(xiàn)即使按照wiredtiger提供的方式來還是寫入到了btree的,到底是因為什么,下面的圖給了,截止目前為止雖然wiredtiger 可以早創(chuàng)建collecion的時候,選擇數(shù)據(jù)結(jié)構(gòu)是LSM 但僅僅是一種配置方面的測試接口,并不是說通過此種方式生成的,collection就是LSM數(shù)據(jù)存儲結(jié)構(gòu).但還是秉著疑問的狀態(tài)對此進行了測試

下面生成了一個lsm tree 結(jié)構(gòu)的collection 并且建立一個 lsm tree的索引

我們建立的相關(guān)的collection 和 index 都在尾綴上

實際上我們在通過2000個連接每個連接插入200000數(shù)據(jù)的方式,看1分鐘那種方式插入的數(shù)據(jù)比較多,作為一個衡量的標準. 多次測試,最終結(jié)果都是使用了lsm tree config 的collection 比 btree的collection 要插入數(shù)據(jù)的性能要好,但相關(guān)的優(yōu)勢稍有不穩(wěn)定.

另外一個問題,為什么percona Mongodb 從3.6開始,直接dump了 rocksdb數(shù)據(jù)庫引起(facebook 的 lsm tree 的數(shù)據(jù)庫結(jié)構(gòu)存儲引起)

percona 給出的答案

1 在服務(wù)客戶中,大部分客戶沒有必須使用lsm tree 的必須的需求,大部分客戶都是使用wiredtiger 數(shù)據(jù)庫引擎.

2 從MONGODB 的發(fā)展看,3.6中的新功能都是圍繞wiredtiger數(shù)據(jù)庫引擎研發(fā)的,并且4.0 將去掉MMAPV1 數(shù)據(jù)庫引擎,未來眾多的新功能大部分都會圍繞wiredtiger數(shù)據(jù)庫引擎,所以rocksdb數(shù)據(jù)庫引擎如果想在MONGODB上達到同樣的多文檔事務(wù),以及其他的新功能,代碼的改動將是巨大的, 所以這就與相關(guān)的付出的成本有關(guān)了.

1  ROCKSDB 的數(shù)據(jù)庫引擎在MONGODB 上不是主流,并且使用的客戶也未在使用中提出上面的大面積寫入特殊的要求.

2  MONGODB 公司在新版本以及現(xiàn)有版本中對wiredtiger數(shù)據(jù)庫引擎的傾斜,如同MySQL 之前有眾多的數(shù)據(jù)庫引擎可以選擇,但最終提到MYSQL 和提到 INNODB 是一個意思, 提到MONGODB 和提到wiredtiger 數(shù)據(jù)庫引擎也是一個意思.

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。

分享名稱:MONGODB到底支持不支持lsm以及是否成本控制DUMPROCKSDB
網(wǎng)址分享:http://muchs.cn/article12/ipggdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、云服務(wù)器、定制開發(fā)、商城網(wǎng)站、營銷型網(wǎng)站建設(shè)企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管