真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MongoDB存儲引擎-創(chuàng)新互聯(lián)

簡單回顧

上次我們說到了關(guān)于 mongodb 的集群,分為主從集群和分片集群,對于分片集群中的分片這里需要注意如下幾點,一起來回顧一下:

10年的東區(qū)網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整東區(qū)建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)從事“東區(qū)網(wǎng)站設(shè)計”,“東區(qū)網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
  • 對于 熱點數(shù)據(jù)

某些分片鍵(分片鍵是集合中每個文檔中存在的索引字段或復(fù)合索引字段)會導(dǎo)致所有的 讀或者寫請求 都操作在單個數(shù)據(jù)塊或者分片上,這樣就會導(dǎo)致單個分片服務(wù)器負荷過重,那么自增長的分片鍵容易導(dǎo)致寫的問題

  • 對于 不可分割的數(shù)據(jù)塊

對于粗粒度的分片鍵,可能會導(dǎo)致許多文檔使用相同的分片鍵

這樣的話這些文檔就不能被分割為多個數(shù)據(jù)塊,這就會限制了mongodb 的均勻分布數(shù)據(jù)能力

  • 對于 查詢障礙

分片鍵與查詢是沒有關(guān)聯(lián)的,這樣會造成糟糕的查詢性能

對于以上注意點,咱們做到心中有數(shù),實際工作中遇到類似的問題,就可以嘗試學(xué)著處理了

今天我們簡單了解一下 mongodb 的存儲引擎是個啥

存儲引擎

說到 mongodb 的存儲引擎,我們要知道是在 mongodb 3.0 的時候引入了可插拔存儲引擎的概念

現(xiàn)在主要有這幾個引擎:

  • WiredTiger 存儲引擎
  • inMemory 存儲引擎

在存儲引擎剛出來的時候,默認是使用的 MMAPV1 存儲引擎的

MMAPV1 引擎,看名字我們大概就知道他是使用的是 mmap 來做的,運用的是 linux 內(nèi)存映射的原理

現(xiàn)在不使用 MMAPV1 引擎,是因為 WiredTiger 存儲引擎更優(yōu),例如對比一下 WiredTiger 就有如下優(yōu)勢:

  • WiredTiger 讀寫操作性能更好

WiredTiger 能更好的發(fā)揮多核系統(tǒng)的處理能力

  • WiredTiger 鎖的粒度更小

MMAPV1引擎使用表級鎖,當(dāng)某個單表上有并發(fā)的操作,吞吐就會受到限制

而 WiredTiger 使用文檔級的鎖 ,這就帶來并發(fā)及吞吐的提高

  • WiredTiger 壓縮方式更好

WiredTiger 使用前綴壓縮,比起 MMAPV1 更節(jié)省對內(nèi)存空間的損耗

并且 WiredTiger 還提供壓縮算法, 這樣就可以大大降低對硬盤資源的消耗

WiredTiger 引擎 的寫入原理

通過上圖我們可以看出, WiredTiger 寫入磁盤的原理也是很簡單的

  • 應(yīng)用請求來到 mongodb ,mongodb 做處理,并將結(jié)果存入緩存中
  • 當(dāng)緩存中達到 2 個 G 的時候,或者 當(dāng) 60 s 定時器到時間的時候,就會將緩存中的數(shù)據(jù)刷到磁盤中去 細心的 xdm 就知道,那么如果現(xiàn)在正好是 59 秒,1個多 G 的時候,緩存中的數(shù)據(jù)還沒有同步到磁盤中,mongodb 就異常掛掉了, 那么 mongodb 豈不是會丟失數(shù)據(jù)?

我們用手指頭都可以想到,mongodb 的設(shè)計者怎么會讓這種情況存在,那么必然會有解決方案,如下

如上圖,圖中多了一個journaling bufferjournal 文件

  • journaling buffer

存放 mongodb 增刪改 指令的緩沖區(qū)

  • journal 文件

類似于關(guān)系數(shù)據(jù)庫中的事務(wù)日志

引入 Journaling 的目的是:

Journaling 能夠使 mongodb 數(shù)據(jù)庫由于意外故障后快速恢復(fù)

Journaling 日志功能

Journaling 的日志功能,看上去有點像是 redis 中的 aof 持久化一樣,也只能說是類似

在 mongodb 2.4 的時候,就已經(jīng)是 默認會開啟 Journaling日志功能 的,我們啟動 mongod 實例的時候,服務(wù)就會去檢查是否需要恢復(fù)數(shù)據(jù)

因此就不會有上述 mongodb 丟數(shù)據(jù)的情況了

另外這里我們要知道,journaling 的日志功能,當(dāng) mongodb 需要進行寫操作的時候,也就是 增,刪,改的時候,journaling 是會寫日志的,這會影響性能

但是 mongodb 讀取操作的時候,是不會記錄到緩存中的,因此也不會記錄到 journaling 日志中,因此讀操作沒有影響

今天就到這里,學(xué)習(xí)所得,若有偏差,還請斧正

歡迎點贊,關(guān)注,收藏

朋友們,你的支持和鼓勵,是我堅持分享,提高質(zhì)量的動力

好了,本次就到這里

技術(shù)是開放的,我們的心態(tài),更應(yīng)是開放的。擁抱變化,向陽而生,努力向前行。

我是阿兵云原生,歡迎點贊關(guān)注收藏,下次見~

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


本文題目:MongoDB存儲引擎-創(chuàng)新互聯(lián)
新聞來源:http://weahome.cn/article/dsgsdd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部