mongoDB的讀書筆記(05)_【Sharding】(02)_分區的一些概念和小細節

來源:互聯網
上載者:User

標籤:mongodb   chunks   shard   分區   

分區的一些概念與細節 Primary Shard

在Replica set中有Primary和Secondary的概念,那麼在Sharding中其實也有一個Primary的概念。
任何一個mongoDB中都有一個未分區的整體DB的collection在某一個Shard中。如。

Collection1在ShardA中有一部分Chunks在ShardB中也有一部分Shards,而在ShardA 中卻有一個Collection2儲存整體的ShardA+ShardB的Collection1的和。

Config Servers的讀寫操作 何時去讀

一個mongos(從app發出的mongo Shard 的routing的service)啟動或者重啟的時候。
當一個Chunck移動完了,用最新的metadata更新完config servers的時候。

何時去寫

當要去切分Chunks的時候。(切分完畢後肯定是要寫入最新的metadata)
當在Shards之間移動Chunks的時候。(移動以後所有的位置變化了,肯定也要寫入最新的metadata)

Config Servers的一些有效性

之前說過Config Servers需要3個。主要是為了高可用性和高冗餘性來進行的設計。那麼當這3個servers的狀態有變化的時候,整體Shards的處理也會隨之發生變化。
當1-2個Config Server掛掉的時候,Config Servers的metadata就變成了read-only的狀態,和Replica的Primary掛掉的時候效果類似,Replica的整個叢集如果沒有了Primary整個叢集就變成了ReadOnly的狀態,而這裡的的ReadOnly指的是metadata的狀態。你可以繼續讀寫Shards的資料,但是因為metadata不能改變了,那麼依照上面的何時去寫中寫的那樣,Chunks的切分以及移動就不會發生了。
悲催的情況,當你的3個Config Servers都掛掉的話,其實也不必太擔心。只要你一直不重啟mongos你還是可以繼續使用這個Shards的,但是如果你在3個Config Servers掛掉後,在這三個Config Servers恢複之前重啟了mongos那麼你的Shards叢集也就無法使用了。從現象上其實可以看出,這些資料應該是持久化在記憶體中的,一旦重啟記憶體資料消失那麼也就失效了。
所以沒有metadata的叢集是無法啟動並執行。所以metadata的備份以及使用就很重要。相對於Shards中的大量的實際data來說,metadata還是很輕便和便於使用的,也就是說metadata相對來說是低載入成本,而且metadata對於叢集來說也不是必要(比如上面說的掛了1-3個的時候叢集在特定條件下也是可以使用的),所以,Config Server的備份還是相對簡單的。

つづく???

mongoDB的讀書筆記(05)_【Sharding】(02)_分區的一些概念和小細節

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.