2012-09-12 30 views
0
  • 我們希望在碎片
  • 這裏只有一個數據庫(〜110M記錄)收集使用2個蒙戈服務器基於_id(整數)服務器。
  • 活性主要寫,增加新的記錄,更新舊的
  • 記錄只有兩個字段:_id和陣列{:_id => 12345,:PP => [東西,東西,...]}
  • _id實際上是我們的用戶ID,整數
  • _id是集合中的唯一指標是基於
  • 我們要分片的關鍵:_id%2

即_id = 1變爲服務器1 ,_id = 2轉到服務器2,_id = 3轉到服務器1,_id => 4轉到服務器2 ...等等蒙戈碎片:如何達到均衡

(因爲_ids是線性的,我們希望這兩個服務器上的寫作也同樣均衡)

我們如何配置這mongos?

回答

0

您可以利用Mongo 2.2版本中添加的標記感知分片功能。 http://www.mongodb.org/display/DOCS/Tag+Aware+Sharding

用例特徵是指(地理上分佈的)與你的情況非常不同。

默認情況下(非標記感知選項)Mongo有效地管理羣集中數據的拆分。提供了一個統一分佈值的分片密鑰,並且查詢可能需要查看具有連續值的文檔,那麼mongo使用的默認算法是最優的。它也將重新平衡,以確保數據平均分配(在可配置的範圍內)。如果不理解含義,最好不要改變它。

默認算法是將分片鍵值分解爲區域塊(塊),然後將塊分配給分片的不同成員。

更多詳細信息請參閱以下頁面。

http://docs.mongodb.org/manual/core/sharding/

http://docs.mongodb.org/manual/core/sharding-internals/#sharding-migration-thresholds

+0

我也想看看:http://www.kchodorow.com/blog/2012/07/25/controlling-collection-distribution/ – Jenna