我想了解MongoDB和分片的概念。如果我們從2個節點和分區開始說,基於節點1上存儲A到M數據的姓氏和N到Z數據的客戶數據存儲在節點2上。當我們想要擴展並添加更多節點時會發生什麼?我只是不明白這將如何工作。MongoDB分片,如何在添加新節點時重新平衡?
5
A
回答
5
如果你有2個節點,這並不意味着數據被分成2個塊。它可以通過分區,以讓我們說10塊,其中6個是在服務器1所ANE剩下的就是在服務器2
當您添加其他服務器MongoDB是能夠重新分配新配置的節點之間的那些塊
你可以在官方文檔閱讀更多:
3
如果有多個可用分片,一旦有足夠數量的分塊,MongoDB將開始將數據遷移到其他分片 。這種遷移稱爲平衡,由稱爲平衡器的進程執行。 平衡器將塊從一個碎片移動到另一個碎片。
要發生平衡回合,分片至少必須比 人口最少的分片多出9個區塊。此時,塊將從擁擠的碎片 中移出,直到與其餘的碎片平齊。
當您將新節點添加到羣集時,MongoDB會在新配置的節點之間重新分配這些塊。 這是一個小小的摘錄,爲了全面瞭解在添加新節點時如何重新平衡,請閱讀Kristina Chodrow的書「Scaling MongoDB」第2章「理解分片」
相關問題
- 1. 如何在添加分片後重新平衡mongodb
- 2. 如何在添加新節點後重新平衡cassandra集羣
- 3. HDFS:如何在添加新節點後釋放空間/重新平衡?
- 4. Couchbase卡在重新平衡0節點
- 5. Cassandra在節點關閉時如何重新平衡?
- 6. elasticsearch羣集添加節點後未重新平衡
- 7. riak_core節點重新平衡待定
- 8. 添加新節點時維護平衡二叉樹的算法
- 9. 禁用ElasticSeach重新平衡,如果一個節點關閉
- 10. 在添加新節點的同時更新節點的位置?
- 11. 添加新節點
- 12. 高效地重新平衡2^n-1節點的樹?
- 13. 故障轉移後重新平衡couchbase節點
- 14. 如何在Cassandra中添加新節點時重新洗牌數據?
- 15. XSL刪除特定節點並添加新添加新節點
- 16. 重新平衡AVL樹
- 17. 重新平衡三叉戟
- 18. 在Kubernetes集羣中添加節點後重新分發集羣
- 19. 如何將新節點添加到dijit.Tree
- 20. 如何將新節點添加到XML
- 21. 如何在JDOM的特定節點下添加新節點JAVA
- 22. 如何將新節點添加到現有節點在XML
- 23. 在添加新節點後重新安排羣集
- 24. C#,XML,添加新節點
- 25. Accumulo - 添加新節點
- 26. 添加新的子節點
- 27. Kafka重新平衡在組名級別?
- 28. Cassandra如何在添加新節點時確保一致性
- 29. 如何在運行時添加新的MvcSitemapProvider節點
- 30. mongodb重新配置分片端口