close

figure2  

 

MMAPv1 (default )

MMAPv1MongoDB的原始存儲引擎基於內存映射文件。它擅長的工作負載提供高容量的插入,讀取,並且在就地升級。 MMAPv1MongoDB3.0和所有先前版本的默認存儲引擎。

 

Journal

為了確保所有修改一個MongoDB的數據集被永久地寫入到磁盤,MongoDB紀錄所有的修改到一個 JournalJournal比寫入資料檔還更頻繁的寫入磁碟。Jouralmongod存在重新建立後不需要任何改變,就可以讓MongoDB的成功從資料檔中的恢復數據。

記錄存儲特性

所有記錄會被連續儲存位於磁盤上。當一個文件變得比之前分配記錄大時,MongoDB中必須分配一個新的記錄。新的分配會要求MongoDB中移動一個文件並更新所有的索引,這需要更多的時間比就地更新,導致存儲碎片的所有索引。

 

WiredTiger Storage Engine

新儲存引擎的在 MongoDB 3.0版本。
WiredTiger是一個存儲引擎, 在MongoDB3.064位版本可供使用。它擅長讀取和插入的工作負載,以及更複雜的更新工作負載。
 
Document Level Locking
WiredTiger所有的寫操作發生文檔級鎖的範圍內。其結果是,多個客戶端可以在同一時間修改多個文檔中的在單一個collection (DBMS稱資料表Table)。有了這個非常精細的並發控制, MongoDB的可以更有效地支持讀,寫和更新的工作負載,以及高吞吐量的併發工作負載。

Journal

WiredTiger採用組合預寫事務日誌與檢查點,以確保數據的持久性。在使用WiredTigerMongoDB60秒的就會做一個磁盤檢查點或當有2GB的數據寫入。在做檢查點的期間,數據文件都是有效,不會影響運作。
 
WiredTiger journal仍然保有所有修改數據既使在檢查點​​執行期間的。如果MongoDB的檢查點期間退出,它使用日誌來重放自上次檢查點修改的所有數據。默認情況下,WiredTiger journal是使用的是一個精緻壓縮庫(snappy compression library )壓縮。如果要指定一個備用的壓縮算法或無壓縮,使用storage.wiredTiger.engineConfig.journalCompressor來設置。
 
您可以通過設置storage.journal.enabledfalse禁用journal,這可以減少維護日誌的開銷。對於獨立實例,不使用日誌意味著你會失去一些數據修改時,MongoDB的檢查點之間意外退出。對於副本集成員,在複製過程中可以提供足夠的持久性保證。
 
壓縮
使用WiredTigerMongoDB的支持壓縮對所有集合和索引。壓縮降低存儲使用額外的CPU為代價。
 
默認情況下,WiredTiger使用塊壓縮為所有收藏品和前綴壓縮所有索引的瞬間壓縮庫。
 
對於collection (集合),與zlib的數據塊壓縮也可以。要指定一個備用的壓縮算法或無壓縮,可以使用storage.wiredTiger.collectionConfig.blockCompressor設置。
 
對於索引,去禁用prefix compression,可以使用storage.wiredTiger.indexConfig.prefixCompression來設置。
 
對於大多數的工作負載,默認壓縮設置餘額存儲效率和處理要求。
 
WiredTiger journal是預設壓縮的。有關journal的壓縮信息,請參閱journal

 

   SEE ALSO

   http://wiredtiger.com

 

arrow
arrow
    創作者介紹
    創作者 Kenneth 的頭像
    Kenneth

    Kenneth的部落格

    Kenneth 發表在 痞客邦 留言(0) 人氣()