五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動(dòng)態(tài)

MongoDB的chunk詳解

發(fā)布日期:2022-01-28 20:42 | 文章來(lái)源:腳本之家

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

在數(shù)據(jù)寫(xiě)入的時(shí)候,mongos根據(jù)片鍵shard key的值來(lái)寫(xiě)入對(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的大小不宜過(guò)小,如果chunk過(guò)小,好處是可以讓數(shù)據(jù)更加均勻的分布,但是會(huì)導(dǎo)致chunk之間頻繁的遷移,有一定的性能開(kāi)銷(xiāo);同樣的,chunk的大小不宜過(guò)大,過(guò)大的chunk size會(huì)導(dǎo)致數(shù)據(jù)分布不均勻,

chunk的分裂

當(dāng)某個(gè)chunk的值達(dá)到了chunk所能表示的最大值的時(shí)候,這個(gè)時(shí)候chunk不能無(wú)限增長(zhǎng),需要通過(guò)分割的方法來(lái)減少chunk的大小,例如一個(gè)64MB的chunk分割成2個(gè)32MB的chunk,這樣雖然增加了chunk的數(shù)量,但是帶來(lái)的收益是單個(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)遷移的工作,是通過(guò)balancer來(lái)進(jìn)行的。如果balancer發(fā)現(xiàn)各個(gè)shard之間的chunk數(shù)差異超過(guò)了提前規(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的遷移一般使用鎖來(lái)實(shí)現(xiàn),從MongoDB3.4版本起,chunk的遷移分為7個(gè)步驟:

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

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

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

4、目標(biāo)shard開(kāi)始請(qǐng)求chunk中的文檔并開(kāi)始接收數(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ù)庫(kù)并更新chunk的位置元數(shù)據(jù)。

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

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

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

2、用戶(hù)調(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)文章!

香港服務(wù)器租用

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開(kāi)通

自選配置、實(shí)時(shí)開(kāi)通

免備案

全球線路精選!

全天候客戶(hù)服務(wù)

7x24全年不間斷在線

專(zhuān)屬顧問(wèn)服務(wù)

1對(duì)1客戶(hù)咨詢(xún)顧問(wèn)

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部