亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Mongodb新舊版本索引創(chuàng)建鎖分析

IT那活兒 / 2262人閱讀
Mongodb新舊版本索引創(chuàng)建鎖分析

點(diǎn)擊上方“IT那活兒”公眾號(hào),關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了?。?!


  

客戶生產(chǎn)環(huán)境中當(dāng)前使用的Mongodb數(shù)據(jù)庫(kù)大多數(shù)都是3.6或者更低的版本,在3.X版本中創(chuàng)建索引,分為前臺(tái)和后臺(tái)創(chuàng)建,前臺(tái)創(chuàng)建索引會(huì)加庫(kù)級(jí)鎖,導(dǎo)致該庫(kù)上的其他所有讀寫操作都會(huì)被阻塞,后臺(tái)創(chuàng)建則不會(huì)阻塞增刪改查操作,但是建索引的效率會(huì)變慢。

本文將對(duì)3.6和4.2以上版本建索引的區(qū)別進(jìn)行對(duì)比。


官方文檔相關(guān)的說(shuō)明

從 MongoDB 4.2 開(kāi)始,創(chuàng)建索引僅在構(gòu)建過(guò)程的開(kāi)始和結(jié)束期間對(duì)被索引的集合獲取排他鎖,以保護(hù)元數(shù)據(jù)更改。構(gòu)建過(guò)程的其余部分使用后臺(tái)索引構(gòu)建的行為來(lái)最大化構(gòu)建期間對(duì)集合的讀寫訪問(wèn)。
4.2版本以后的優(yōu)化后的索引創(chuàng)建過(guò)程的性能至少與舊版本的background創(chuàng)建方式相同。如果說(shuō)創(chuàng)建索引的集合的增刪改操作較少,則性能跟前臺(tái)創(chuàng)建索引一樣。
索引的創(chuàng)建過(guò)程及加鎖情況如下表:


不同版本數(shù)據(jù)庫(kù)建索引測(cè)試對(duì)比

本次采用3.6和4.2兩個(gè)版本在相同的集合上創(chuàng)建索引進(jìn)行對(duì)比。
測(cè)試用的集合包含1000W個(gè)文檔,大小近400MB。
3.6版本前臺(tái)創(chuàng)建索引,可看到從建索引開(kāi)始一直持有庫(kù)級(jí)排他鎖,如下圖:
當(dāng)在后臺(tái)創(chuàng)建索引時(shí),全局、庫(kù)級(jí)、集合級(jí)都是IX鎖,不會(huì)對(duì)其他讀寫操作進(jìn)行阻塞,見(jiàn)下圖:
在4.2版本中創(chuàng)建索引時(shí),由于兩個(gè)持有排他鎖的階段時(shí)間都很短,我們沒(méi)法捕獲到,下面兩個(gè)截圖,分別是集合掃描和臨時(shí)表(side write table)數(shù)據(jù)處理階段,均持有的是意向共享鎖和意向排他鎖,不會(huì)對(duì)其他會(huì)話讀寫進(jìn)行阻塞。

總結(jié):在目前的mongodb運(yùn)維中,曾出現(xiàn)多次由于開(kāi)發(fā)人員對(duì)mongodb索引特性不熟悉,未使用background:true創(chuàng)建索引而導(dǎo)致數(shù)據(jù)庫(kù)阻塞的故障。

經(jīng)驗(yàn)證測(cè)試,4.2以后的版本創(chuàng)建索引不會(huì)產(chǎn)生長(zhǎng)時(shí)間的阻塞,且索引創(chuàng)建效率比后臺(tái)創(chuàng)建索引要略快。所以可以結(jié)合其他實(shí)際情況推動(dòng)數(shù)據(jù)庫(kù)升級(jí)到4.4版。


本文作者:劉運(yùn)彬(上海新炬王翦團(tuán)隊(duì))

本文來(lái)源:“IT那活兒”公眾號(hào)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/129317.html

相關(guān)文章

  • UCloud MongoDB 如何應(yīng)對(duì)高考填志愿的上億流量高峰

    摘要:優(yōu)志愿張海鵬宋體背景宋體每年月下旬到月下旬期間是高考填志愿的高峰期,也是優(yōu)志愿后端面臨大流量高并發(fā)請(qǐng)求的業(yè)務(wù)高峰期。對(duì)于優(yōu)志愿讀多寫少的場(chǎng)景及其業(yè)務(wù)高峰期,用戶可以按需增刪節(jié)點(diǎn),更好地實(shí)現(xiàn)讀取性能的擴(kuò)展。 隨著用戶規(guī)模的增長(zhǎng),數(shù)據(jù)庫(kù)的壓力也在成倍增加。面對(duì)大流量、高并發(fā),UCloud MongoDB 做到了高效,并展現(xiàn)出了更好的性能體驗(yàn)。 —— 優(yōu)志愿 CTO 張海鵬 背景...

    cppprimer 評(píng)論0 收藏0
  • 記一次MongoDB高負(fù)載的性能優(yōu)化

    摘要:年月日本文是關(guān)于記錄某次游戲服務(wù)端的性能優(yōu)化此處涉及的技術(shù)包括引擎隨著游戲?qū)肴藬?shù)逐漸增加單個(gè)集合的文檔數(shù)已經(jīng)超過(guò)經(jīng)常有玩家反饋說(shuō)卡特別是在服務(wù)器遷移后從核降到核卡頓更嚴(yán)重了遂開(kāi)始排查問(wèn)題確認(rèn)服務(wù)器壓力首先使用命令查看總體情況此時(shí)占用不高 Last-Modified: 2019年6月13日11:08:19 本文是關(guān)于記錄某次游戲服務(wù)端的性能優(yōu)化, 此處涉及的技術(shù)包括: MongoDB...

    huhud 評(píng)論0 收藏0
  • 記一次MongoDB高負(fù)載的性能優(yōu)化

    摘要:年月日本文是關(guān)于記錄某次游戲服務(wù)端的性能優(yōu)化此處涉及的技術(shù)包括引擎隨著游戲?qū)肴藬?shù)逐漸增加單個(gè)集合的文檔數(shù)已經(jīng)超過(guò)經(jīng)常有玩家反饋說(shuō)卡特別是在服務(wù)器遷移后從核降到核卡頓更嚴(yán)重了遂開(kāi)始排查問(wèn)題確認(rèn)服務(wù)器壓力首先使用命令查看總體情況此時(shí)占用不高 Last-Modified: 2019年6月13日11:08:19 本文是關(guān)于記錄某次游戲服務(wù)端的性能優(yōu)化, 此處涉及的技術(shù)包括: MongoDB...

    vibiu 評(píng)論0 收藏0
  • mysql - 收藏集 - 掘金

    摘要:步優(yōu)化以及其它數(shù)據(jù)庫(kù)后端掘金原文鏈接在發(fā)表了一篇簡(jiǎn)潔有效有趣和令人信服的分鐘教程描述了如何進(jìn)行優(yōu)化。關(guān)于的七種后端掘金對(duì)于的,在學(xué)習(xí)起來(lái)可能是比較亂的。 5 步優(yōu)化 MongoDB 以及其它數(shù)據(jù)庫(kù) - 后端 - 掘金原文鏈接 Jared Rosoff 在 Scale Out Camp 發(fā)表了一篇簡(jiǎn)潔、有效、有趣和令人信服的《8 分鐘 MongoDB 教程》描述了如何進(jìn)行 MongoDB...

    Donald 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<