作為全球最流行的文檔型NoSQL數(shù)據(jù)庫(根據(jù)DB-Engines的排名)吸耿,MongoDB一直備受關注抠蚣,而Storage更是受到關注的組件之一。MongoDB Inc收購了WiredTiger之后巷懈,根據(jù)官方博客得知,WiredTiger相比MMAP(Memory Mapping)览绿,性能提高了7-10倍策严,降低了80%的存儲占用空間、降低了高達95%操作開銷挟裂、支持高達50個副本集享钞。加入到3.0版本,并成為3.2版本默認Storage诀蓉。一句話:質(zhì)的飛躍栗竖。下面讓我們來比較下兩者的差異:
1、Concurrency
MMAP使用Collection-Level的鎖渠啤,如果一個客戶端請求修改Document內(nèi)容狐肢,那么其他的客戶端的請求不能再控制當前Document下的Collection,好吧沥曹,聽起來有點糟糕份名。
WiredTiger使用Document-Level的鎖。多個客戶端可以對同一個Collection進行操作妓美,而不能對同一個Document進行操作僵腺。
2、Compression
數(shù)據(jù)大量增長壶栋,必然減少磁盤的開銷
WiredTiger實現(xiàn)了兩種方式進行壓縮
Snappy compression
Zlib
Zlib相對Snappy compression辰如,具有更快的壓縮速度 而MMAP沒有實現(xiàn)壓縮
3、Consistency
MongoDB每60s 會將數(shù)據(jù)寫入磁盤贵试,為了防止服務器宕機造成數(shù)據(jù)丟失琉兜,采取journal文件,而每100ms會寫入journal文件 MMAP使用journal恢復文件 WiredTiger添加了checkpoints實現(xiàn)毙玻,每隔60s或者journal達到2G時豌蟋,將會創(chuàng)建checkpoint,如果崩潰或者宕機桑滩,可回退到最新的有效checkpoint
目前知識有限梧疲,淺顯介紹,之后會更加深入:)