MongoDB源碼閱讀之Shard源碼分析–CongfigServer啟動

1. 名詞解釋 shards : 每一個(gè)shard包括一個(gè)或多個(gè)服務(wù)和存儲數(shù)據(jù)的mongod進(jìn)程(mongod是mongodb數(shù)據(jù)的核心進(jìn)程)典型的每個(gè)shard開啟多個(gè)服務(wù)來提高服務(wù)的可用性。這些服務(wù)/mongod進(jìn)程在shard中組成一個(gè)復(fù)制集 Chunks: Chunk是一個(gè)來自特殊集合中的一個(gè)數(shù)據(jù)

1.????? 名詞解釋

shards : 每一個(gè)shard包括一個(gè)或多個(gè)服務(wù)和存儲數(shù)據(jù)的mongod進(jìn)程(mongod是mongodb數(shù)據(jù)的核心進(jìn)程)典型的每個(gè)shard開啟多個(gè)服務(wù)來提高服務(wù)的可用性。這些服務(wù)/mongod進(jìn)程在shard中組成一個(gè)復(fù)制集

Chunks: Chunk是一個(gè)來自特殊集合中的一個(gè)數(shù)據(jù)范圍,美國服務(wù)器,(collection,minKey,maxKey)描敘一個(gè)chunk,它介于minKey和maxKey范圍之間。例如chunks 的maxsize大小是100M,如果一個(gè)文件達(dá)到或超過這個(gè)范圍時(shí),會被切分到2個(gè)新的chunks中。當(dāng)一個(gè)shard的數(shù)據(jù)過量時(shí),chunks將會被遷移到其他的shards上。同樣,chunks也可以遷移到其他的shards上

Config Servers : Config服務(wù)器存儲著集群的metadata信息,網(wǎng)站空間,包括每個(gè)服務(wù)器,每個(gè)shard的基本信息和chunk信息Config服務(wù)器主要存儲的是chunk信息。每一個(gè)config服務(wù)器都復(fù)制了完整的chunk信息。

?

一個(gè)完整的MongoDB集群應(yīng)該包含多個(gè)shards,每個(gè)shard包含多個(gè)replSets互相做備份。單個(gè)數(shù)據(jù)有大小之分,被分配到不同的Chunk之中。當(dāng)一個(gè)shard的存儲空間不夠時(shí),會將Chunks分配到其他Shard上。這些信息被分開后都要有所記錄,這些記錄存儲在Congfig Servers上做查詢的依據(jù)。

?

從這里開始源碼研究的范疇變?yōu)閙ongos。

2.????? 代碼結(jié)構(gòu)

shard.h chunk.h config.h 以上三個(gè)對應(yīng)結(jié)構(gòu)的類。 strategy.h //分配調(diào)整策略基類 strategy_shard.cpp //shard分配調(diào)整策略的實(shí)現(xiàn) parallel.h //并行傳遞消息,分片等操作的工具類 server.h //啟動configserver的管理類 balance.h //chunk分塊的策劃者 connpool.h //管理mongos中的各種連接 ,香港服務(wù)器租用

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊5 分享