我遇到了mongo中似乎是一個簡單的碎片設置的問題。Mongo sharding無法拆分碎片之間的大集合
我有兩個碎片,一個mongos實例,一個配置服務器設置是這樣的:
機A - 10.0.44.16 - 配置服務器,mongos
機器B - 10.0.44.10 - 碎片1
計算機C - 10.0.44.11 - 碎片2
我有一個叫做「種子」收集具有片鍵「SeedType」,這是一個領域,存在於集合中的每個文檔,包含四位一體值(看看下面的分片狀態)。其中兩個值具有比另外兩個值大得多的條目(其中兩個具有784,000條記錄,其中兩條具有約5,000條記錄)。
我期待看到的行爲是,使用InventoryPOS的'Seeds'集合中的記錄將在一個碎片上結束,而使用InventoryOnHand的記錄將在另一個碎片上結束。
但是,似乎兩個較大分片鍵的所有記錄都在主分片上結束。
這裏是我的分片狀態文本(爲了清楚起見移除其他集合):
--- Sharding Status --- sharding version: { "_id" : 1, "version" : 3 } shards: { "_id" : "shard0000", "host" : "10.44.0.11:27019" } { "_id" : "shard0001", "host" : "10.44.0.10:27017" } databases: { "_id" : "admin", "partitioned" : false, "primary" : "config" } { "_id" : "TimMulti", "partitioned" : true, "primary" : "shard0001" } TimMulti.Seeds chunks: { "SeedType" : { $minKey : 1 } } -->> { "SeedType" : "PBI.AnalyticsServer.KPI" } on : shard0000 { "t" : 2000, "i" : 0 } { "SeedType" : "PBI.AnalyticsServer.KPI" } -->> { "SeedType" : "PBI.Retail.InventoryOnHand" } on : shard0001 { "t" : 2000, "i" : 7 } { "SeedType" : "PBI.Retail.InventoryOnHand" } -->> { "SeedType" : "PBI.Retail.InventoryPOS" } on : shard0001 { "t" : 2000, "i" : 8 } { "SeedType" : "PBI.Retail.InventoryPOS" } -->> { "SeedType" : "PBI.Retail.SKU" } on : shard0001 { "t" : 2000, "i" : 9 } { "SeedType" : "PBI.Retail.SKU" } -->> { "SeedType" : { $maxKey : 1 } } on : shard0001 { "t" : 2000, "i" : 10 }
難道我做錯了什麼?
半無關的問題:
什麼是原子轉移從一個集合到另一個對象,而不會阻塞整個蒙戈服務的最佳方式?
由於提前, -Tim