MongoDB儲存引擎(中)——WiredTiger

來源:互聯網
上載者:User

標籤:改進   組織   turtle   檔案大小   不同的   std   層級   map   最新   

  上一篇博文介紹了MongoDB的MMAPv1儲存引擎,本文接著介紹MongoDB另一個儲存引擎——WiredTiger,WiredTiger是在MongoDB3.0版本引入的,並且在MongoDB3.2版本開始成為MongoDB預設的儲存引擎。相比較MMAPv1,WiredTiger功能更強大,而且具有更高的效能。

  相對於MMAPv1,WiredTiger進行了一系列改進:

1. 檔案空間分配方式改進

  MMAPv1儲存引擎是在資料庫層級分配檔案的,將每個資料庫中所有的集合和索引都混合儲存在資料庫檔案中,即使刪除了某個集合或索引,其佔用的磁碟空間也很難及時自動回收。WiredTIger則在集合和索引層級分配檔案,將每個資料庫中所有的集合和索引都儲存在單獨的檔案中,集合或索引刪除後,其對應檔案即可刪除,磁碟空間回收方便。

WiredTiger的一些資料檔案:

mongod.lock:用於防止多個進程串連同一個WiredTiger資料庫

.wt檔案:儲存各個集合的資料,每個檔案100MB

WiredTiger.wt:用於儲存所有集合的中繼資料資訊

WiredTiger.turtle:用於儲存WiredTiger.wt的中繼資料資訊

journal檔案夾:用於儲存記錄檔(Write ahead log)

2. 文檔層級的並發控制

  WiredTiger儲存引擎使用文檔層級鎖,同一時刻多個寫操作可以修改同一個集合中不同的文檔,但不能修改同一個文檔。這使得WiredTiger儲存引擎的並發處理能力比MMAPv1更好。

3. 通過檢查點和預寫記錄檔實現資料持久化

  按照MongoDB預設的配置,WiredTiger的寫操作會先寫入Cache(BTree結構),當Cache大小達到128KB時便將其持久化到預寫記錄檔檔案(Write ahead log)。WiredTiger每60s或記錄檔大小達到2GB時會做一次檢查點Checkpoint,產生指定時間點的資料庫快照集(記憶體中資料的一致性視圖),將快照中的所有資料以一致性方式持久化到資料檔案中,保證資料檔案和記憶體資料是一致的。Wiredtiger串連初始化時,首先將資料恢複至最新的快照狀態,然後根據預寫記錄檔檔案恢複資料,以保證儲存可靠性。

4. 記憶體使用量上限可配置

  使用WiredTiger儲存引擎時,MongoDB資料緩衝分兩部分:內部緩衝和檔案系統快取。內部緩衝大小可以使用--wiredTigerCacheSizeGB參數來設定,預設值為:1GB或RAM的60%到1GB之間,取兩值中較大者。檔案系統快取大小則不固定,MongoDB自動使用系統閒置記憶體,且資料在檔案系統快取中是壓縮儲存的。

5. 資料壓縮

  使用WiredTiger儲存引擎時,資料庫的集合與索引、記錄檔都是壓縮儲存的,節省了磁碟空間。WiredTiger預設情況下,集合資料使用塊壓縮演算法,索引資料則使用首碼壓縮演算法。這使得資料佔用磁碟空間少,讀寫速度快,花費I/O時間少。

  集合中資料比較少時,壓縮和無壓縮的寫效能相單,無壓縮讀效能反而比壓縮讀效能好。當集合資料很多時,壓縮的讀寫效能則都要比無壓縮的讀寫效能好。

 

一篇剖析WiredTiger資料群組織結構的文章:http://mini.eastday.com/mobile/160630190233714.html。

 

MongoDB儲存引擎(中)——WiredTiger

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.