最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MongoDB的chunk詳解

 更新時(shí)間:2021年04月16日 11:18:45   作者:DBA隨筆  
這篇文章主要介紹了MongoDB的chunk的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用MongoDB數(shù)據(jù)庫,感興趣的朋友可以了解下

    MongoDB中,在使用到分片的時(shí)候,常常會(huì)用到chunk的概念,chunk是指一個(gè)集合數(shù)據(jù)中的子集,也可以簡(jiǎn)單理解成一個(gè)數(shù)據(jù)塊,每個(gè)chunk都是基于片鍵的范圍取值,區(qū)間是左閉右開。例如,我們的片鍵是姓名的第二個(gè)字母,包含了A-Z這26中可能,理想情況下,劃分為26個(gè)chunk,其中每個(gè)字母開頭的姓名記錄即為一個(gè)chunk。

    在數(shù)據(jù)寫入的時(shí)候,mongos根據(jù)片鍵shard key的值來寫入對(duì)應(yīng)的chunk中,chunk可以表示的最小范圍是單個(gè)唯一的shard key的值,只包含具體的單個(gè)片鍵值文檔的chunk不能被分割,這個(gè)也比較容易理解,如果某個(gè)chunk只包含一個(gè)片鍵的值,如果對(duì)它進(jìn)行分割,則代表一個(gè)片鍵值映射了2個(gè)chunk,下次遇到這個(gè)片鍵的文檔時(shí),mongos就不知道應(yīng)該存放在哪個(gè)chunk當(dāng)中了。

chunk的大小如何確定???

    在MongoDB中,chunk的默認(rèn)大小是64MB,可以增加或者減少chunk的大小。

    chunk的大小不宜過小,如果chunk過小,好處是可以讓數(shù)據(jù)更加均勻的分布,但是會(huì)導(dǎo)致chunk之間頻繁的遷移,有一定的性能開銷;同樣的,chunk的大小不宜過大,過大的chunk size會(huì)導(dǎo)致數(shù)據(jù)分布不均勻,

chunk的分裂

    當(dāng)某個(gè)chunk的值達(dá)到了chunk所能表示的最大值的時(shí)候,這個(gè)時(shí)候chunk不能無限增長(zhǎng),需要通過分割的方法來減少chunk的大小,例如一個(gè)64MB的chunk分割成2個(gè)32MB的chunk,這樣雖然增加了chunk的數(shù)量,但是帶來的收益是單個(gè)chunk的縮小。

chunk的遷移

    在分片+復(fù)制集的架構(gòu)中,當(dāng)某個(gè)服務(wù)器上的數(shù)據(jù)記錄不停的增多,它上面分割的chunk就會(huì)變多,當(dāng)集群中每個(gè)服務(wù)器上的chunk數(shù)量嚴(yán)重失衡的時(shí)候,mongodb會(huì)自動(dòng)進(jìn)行chunk的遷移工作,這個(gè)自動(dòng)遷移的工作,是通過balancer來進(jìn)行的。如果balancer發(fā)現(xiàn)各個(gè)shard之間的chunk數(shù)差異超過了提前規(guī)定的閾值,則會(huì)進(jìn)行chunk的遷移工作,如下:

也就是從上面的狀態(tài)變成下面的狀態(tài)。每個(gè)小塊代表一個(gè)chunk。

MongoDB自動(dòng)觸發(fā)遷移的閾值表如下:

chunk數(shù)量:   <20,遷移閾值:2

chunk數(shù)量:20~79,遷移閾值:4

chunk數(shù)量:   >80,遷移閾值:8

chunk的遷移一般使用鎖來實(shí)現(xiàn),從MongoDB3.4版本起,chunk的遷移分為7個(gè)步驟:

1、balancer進(jìn)程將moveChunk的命令發(fā)送到源shard中

2、源shard使用內(nèi)部moveChunk命令開始移動(dòng),遷移過程中,該chunk的操作依舊在源shard上進(jìn)行,源shard依舊負(fù)責(zé)該chunk的寫入操作

3、目標(biāo)shard開始創(chuàng)建所需索引

4、目標(biāo)shard開始請(qǐng)求chunk中的文檔并開始接收數(shù)據(jù)的復(fù)制

5、接收完源shard的最后一個(gè)文檔之后,目標(biāo)shard啟動(dòng)一個(gè)同步進(jìn)程,這個(gè)進(jìn)程會(huì)拉取遷移期間的日志,將遷移期間對(duì)該chunk的操作更新到目標(biāo)chunk中。

6、當(dāng)完全同步時(shí),源shard連接到config數(shù)據(jù)庫并更新chunk的位置元數(shù)據(jù)。

7、完成數(shù)據(jù)更新后,一旦在源shard上沒有對(duì)該chunk的操作,源shard會(huì)異步刪除chunk。當(dāng)然,用戶可以設(shè)置_waitforDelete參數(shù)為true,讓源shard在chunk遷移完成后同步刪除chunk數(shù)據(jù)

通常情況下,chunk遷移由下面三種場(chǎng)景觸發(fā):

1、多個(gè)shard上分布不均勻

2、用戶調(diào)用removeShard之后,被移除的shard上的chunk就要被遷移到其他的shard上

3、MongoDB的shard tag功能,可以對(duì)shard或者shard  key range打標(biāo)簽,系統(tǒng)會(huì)自動(dòng)將對(duì)應(yīng)的range的數(shù)據(jù)遷移到擁有相同tag的shard上。

以上就是MongoDB的chunk詳解的詳細(xì)內(nèi)容,更多關(guān)于MongoDB chunk的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • MongoDB實(shí)現(xiàn)創(chuàng)建刪除數(shù)據(jù)庫、創(chuàng)建刪除表(集合 )、數(shù)據(jù)增刪改查

    MongoDB實(shí)現(xiàn)創(chuàng)建刪除數(shù)據(jù)庫、創(chuàng)建刪除表(集合 )、數(shù)據(jù)增刪改查

    這篇文章介紹了MongoDB實(shí)現(xiàn)創(chuàng)建刪除數(shù)據(jù)庫、創(chuàng)建刪除表(集合 )、數(shù)據(jù)增刪改查的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • MongoDB基礎(chǔ)命令以及操作示例詳解

    MongoDB基礎(chǔ)命令以及操作示例詳解

    Mongodb:是一種NoSQL數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關(guān)于MongoDB基礎(chǔ)命令以及操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • 淺談MongoDB的備份方式

    淺談MongoDB的備份方式

    mongodb數(shù)據(jù)庫同樣離不開必要的維護(hù),如備份、恢復(fù)、導(dǎo)入、導(dǎo)出。其實(shí)備份和恢復(fù)比導(dǎo)入和導(dǎo)出要方便些,而且一般不會(huì)出錯(cuò),所以大部分時(shí)候使用備份和恢復(fù)操作就可以了。下面我們來簡(jiǎn)單談?wù)凪ongoDB的備份方式
    2015-05-05
  • CentOS 安裝 Mogodb的步驟(在線&&離線兩種)

    CentOS 安裝 Mogodb的步驟(在線&&離線兩種)

    這篇文章主要介紹了CentOS 安裝 Mogodb的步驟(在線&&離線兩種),需要的朋友可以參考下
    2017-03-03
  • MongoDB的基礎(chǔ)查詢和索引操作方法總結(jié)

    MongoDB的基礎(chǔ)查詢和索引操作方法總結(jié)

    MongoDB使用JavaScript作為shell腳本,可以代替關(guān)系型數(shù)據(jù)庫中的SQL語句完成查詢操作,包括索引下的查詢操作,這里我們就來整理MongoDB的基礎(chǔ)查詢和索引操作方法總結(jié):
    2016-07-07
  • 詳解MongoDB數(shù)據(jù)庫基礎(chǔ)操作及實(shí)例

    詳解MongoDB數(shù)據(jù)庫基礎(chǔ)操作及實(shí)例

    這篇文章主要介紹了詳解MongoDB數(shù)據(jù)庫基礎(chǔ)操作及實(shí)例的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • 關(guān)于CentOS 8 搭建MongoDB4.4分片集群的問題

    關(guān)于CentOS 8 搭建MongoDB4.4分片集群的問題

    在MongoDB里面存在另一種集群,就是分片技術(shù),可以滿足MongoDB數(shù)據(jù)量大量增長(zhǎng)的需求。這篇文章主要介紹了CentOS 8 搭建MongoDB4.4分片集群的問題,需要的朋友可以參考下
    2021-10-10
  • MongoDB db.serverStatus()輸出內(nèi)容中文注釋

    MongoDB db.serverStatus()輸出內(nèi)容中文注釋

    這篇文章主要介紹了MongoDB db.serverStatus()輸出內(nèi)容中文注釋,本文收集了2個(gè)版本的中文注釋來講解,需要的朋友可以參考下
    2014-08-08
  • MongoDB 語法使用小結(jié)

    MongoDB 語法使用小結(jié)

    MongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的
    2011-10-10
  • 深究從MongoDB的ObjectId中獲取時(shí)間信息

    深究從MongoDB的ObjectId中獲取時(shí)間信息

    MongoDB默認(rèn)使用_id字段作為主鍵,類型為ObjectId。ObjectId的生成有一定的規(guī)則,詳情可以查看這篇文章MongoDB深究之ObjectId
    2017-03-03

最新評(píng)論

恩平市| 常州市| 客服| 咸阳市| 日喀则市| 稻城县| 兴隆县| 阳信县| 曲阳县| 山西省| 闸北区| 新郑市| 酉阳| 鹿泉市| 哈尔滨市| 聊城市| 元谋县| 达日县| 碌曲县| 通城县| 灌云县| 瓮安县| 沈丘县| 大宁县| 鹤山市| 崇明县| 遂溪县| 博白县| 洱源县| 伊宁县| 定西市| 通州市| 九江市| 信宜市| 女性| 台湾省| 寿阳县| 沽源县| 白沙| 古浪县| 玛曲县|