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

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

1.????? 名詞解釋

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

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

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

?

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

?

從這里開始源碼研究的范疇變為mongos。

2.????? 代碼結構

shard.h chunk.h config.h 以上三個對應結構的類。 strategy.h //分配調整策略基類 strategy_shard.cpp //shard分配調整策略的實現 parallel.h //并行傳遞消息,分片等操作的工具類 server.h //啟動configserver的管理類 balance.h //chunk分塊的策劃者 connpool.h //管理mongos中的各種連接 ,香港服務器租用

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享