close
MMAPv1 (default )
MMAPv1是MongoDB的原始存儲引擎基於內存映射文件。它擅長的工作負載提供高容量的插入,讀取,並且在就地升級。 MMAPv1是MongoDB的3.0和所有先前版本的默認存儲引擎。
Journal
為了確保所有修改一個MongoDB的數據集被永久地寫入到磁盤,MongoDB紀錄所有的修改到一個 Journal,Journal比寫入資料檔還更頻繁的寫入磁碟。Joural在mongod存在重新建立後不需要任何改變,就可以讓MongoDB的成功從資料檔中的恢復數據。
記錄存儲特性
所有記錄會被連續儲存位於磁盤上。當一個文件變得比之前分配記錄大時,MongoDB中必須分配一個新的記錄。新的分配會要求MongoDB中移動一個文件並更新所有的索引,這需要更多的時間比就地更新,導致存儲碎片的所有索引。
WiredTiger Storage Engine
新儲存引擎的在 MongoDB 3.0版本。
WiredTiger是一個存儲引擎, 在MongoDB中3.0的64位版本可供使用。它擅長讀取和插入的工作負載,以及更複雜的更新工作負載。
Document Level Locking
用WiredTiger所有的寫操作發生文檔級鎖的範圍內。其結果是,多個客戶端可以在同一時間修改多個文檔中的在單一個collection (在DBMS稱資料表Table)。有了這個非常精細的並發控制, MongoDB的可以更有效地支持讀,寫和更新的工作負載,以及高吞吐量的併發工作負載。
Journal
WiredTiger採用組合預寫事務日誌與檢查點,以確保數據的持久性。在使用WiredTiger,MongoDB每60秒的就會做一個磁盤檢查點或當有2GB的數據寫入。在做檢查點的期間,數據文件都是有效,不會影響運作。
該WiredTiger journal仍然保有所有修改數據既使在檢查點執行期間的。如果MongoDB的檢查點期間退出,它使用日誌來重放自上次檢查點修改的所有數據。默認情況下,WiredTiger journal是使用的是一個精緻壓縮庫(snappy compression library )壓縮。如果要指定一個備用的壓縮算法或無壓縮,使用storage.wiredTiger.engineConfig.journalCompressor來設置。
您可以通過設置storage.journal.enabled為false禁用journal,這可以減少維護日誌的開銷。對於獨立實例,不使用日誌意味著你會失去一些數據修改時,MongoDB的檢查點之間意外退出。對於副本集成員,在複製過程中可以提供足夠的持久性保證。
壓縮
使用WiredTiger,MongoDB的支持壓縮對所有集合和索引。壓縮降低存儲使用額外的CPU為代價。
默認情況下,WiredTiger使用塊壓縮為所有收藏品和前綴壓縮所有索引的瞬間壓縮庫。
對於collection (集合),與zlib的數據塊壓縮也可以。要指定一個備用的壓縮算法或無壓縮,可以使用storage.wiredTiger.collectionConfig.blockCompressor設置。
對於索引,去禁用prefix compression,可以使用storage.wiredTiger.indexConfig.prefixCompression來設置。
對於大多數的工作負載,默認壓縮設置餘額存儲效率和處理要求。
該WiredTiger journal是預設壓縮的。有關journal的壓縮信息,請參閱journal。
SEE ALSO
文章標籤
全站熱搜
留言列表