MongoDB日志是如何工作的

MongoDB日志是如何工作的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的凌河網(wǎng)站設(shè)計(jì)、移動媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

Good idea, Patrick!

那么, MongoDB日志是如何工作的呢?

我們用下圖表示硬盤上的數(shù)據(jù)文件和日志文件:

MongoDB日志是如何工作的

當(dāng)你使用mongod啟動MongoDB的時候,數(shù)據(jù)文件將被加載到共享視圖?;旧?,操作系統(tǒng)說:“OK,你的數(shù)據(jù)占用2,000bytes的磁盤空間,我將加載他們到內(nèi)存地址為1,000,000-1,002,000.所以,如果你讀內(nèi)存地址為1,000,042,你就可以獲取這個文件的第42個byte的數(shù)據(jù)?!保ㄆ鋵?shí),除非你真的存取這些內(nèi)存地址,否則這些數(shù)據(jù)沒必要加載)

MongoDB日志是如何工作的

這段內(nèi)存仍然被這個數(shù)據(jù)文件占有:如果你在這段內(nèi)存中做修改,操作系統(tǒng)將刷新這個文件,修改數(shù)據(jù)。這就是mongod不開啟日志的工作方式:進(jìn)程每60秒通知操作系統(tǒng)對這段內(nèi)存做flush操作。

然而,啟用日志,mongod會建立另一個內(nèi)存映射用作私有視圖。這就是為什么需要分配兩倍于mongod所占內(nèi)存的內(nèi)存量給日志操作的原因。

MongoDB日志是如何工作的

需要注意的是私有視圖不直接關(guān)聯(lián)到數(shù)據(jù)文件,所用操作系統(tǒng)不能通過刷新私有視圖來寫數(shù)據(jù)到磁盤。

現(xiàn)在,當(dāng)你有一個寫操作,mongod進(jìn)程就把這個操作寫到私有視圖。

MongoDB日志是如何工作的

mongod進(jìn)程會把這個操作寫到日志文件,并描述哪個文件的哪個字節(jié)有修改。

MongoDB日志是如何工作的

日志記錄每一個修改操作。

MongoDB日志是如何工作的

這個時候,寫操作是安全的。如果mongod進(jìn)程崩潰,日志可以重現(xiàn)此次修改,即使還沒有對數(shù)據(jù)文件做更新操作。

MongoDB日志是如何工作的

然后,mongod進(jìn)程重新將共享視圖映射到私有視圖,這樣可以防止私有視圖過于“dirty”(相對于映射過來的共享視圖有太多的修改)。

MongoDB日志是如何工作的

最后,經(jīng)過一系列漫長的驗(yàn)證,共享視圖數(shù)據(jù)將會被刷新到磁盤。默認(rèn)情況下,mongod每60秒對OS請求一次刷新操作。

And that’s how journaling works. Thanks to Richard, who gave the best explanation of this I’ve heard (Richard is going to be teaching an online course on MongoDB this fall, if you’re interested in more wisdom from the source).

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。

新聞名稱:MongoDB日志是如何工作的
路徑分享:http://bm7419.com/article22/igddjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、服務(wù)器托管品牌網(wǎng)站設(shè)計(jì)、企業(yè)網(wǎng)站制作電子商務(wù)、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站