WiredTiger 原理知識

2021-09-12 12:47:43 字數 1164 閱讀 9305

一、、mongodb寫入操作流程:

1、wiredtiger寫操作先到cache,並持久化wal

2、每60s或log檔案達到2g,則執行一次checkpoint持久化,產生乙個新快照。

3、wiredtiger連線初始化時,先將資料恢復到最新的快照,再根據wal恢復資料。

二、cache

cache採用btree方式組織,每個btree節點為乙個page,資料以page為單位按需從磁碟載入或寫入磁碟

root page:btree的根節點

internal page:中間索引節點

page:葉子節點,資料儲存在此節點。

三、增刪改

採用copy on write的方式管理insert、update、delete。

修改操作:

1、資料讀入cache裡,

2、對資料修改,

3、持久化時,寫入新的page(不會寫原理的leaf page)。

4、執行chechpoint之後,產生新的page。

四、checkpoint

每次checkpoint的過程:

1、對所有的table進行一次checkpoint,將每個table的checkpoint的元資料更新到wiredtiger.wt

2、再對wiredtiger.wt進行checkpoint,將checkpoint的meta資料更新到wiredtiger.turtle.set

3、將wiredtiger.turtle.set重新命名為wiredtiger.turtle

五、wiredtiger包含以下檔案:

wiredtiger.basecfg :儲存基本配置資訊

wiredtiger.lock用於防止多個程序連線同乙個wiredtiger資料庫

table*.wt儲存各個table的資料

wiredtiger.wt:是特殊的table,用於儲存所有其他table的meta資料資訊

wiredtiger.turtle:儲存wiretiger.wt的meta資料資訊

儲存引擎Wiredtiger原理剖析

今天開始看mongodb 3.2的文件,發現了這麼兩句話 support for multiple storage engines mongodb supports multiple storage engines,such as wiredtiger storage engine and mmap...

WiredTiger儲存引擎

儲存引擎是資料庫的一部分,負責管理如何在記憶體和磁碟上儲存資料。許多資料庫支援多個儲存引擎,其中不同的引擎對特定工作負載的效能會更好。例如,乙個儲存引擎可能為讀取繁重的工作負載提供更好的效能,另乙個可能支援更高的寫入操作吞吐量。也可以看看 儲存引擎 可以。您可以擁有使用不同儲存引擎的副本集成員。注意...

wiredtiger原始碼一 btree

附一篇btree的好文章 wiredtiger的btree的page分為四種 1.internal結點。2.fixed length結點。3.variable length column store結點。4.variable length row store結點。從上面的結點分類可以確定wiredt...