2013-02-01 34 views
1

我一直在閱讀有關拆分蒙戈數據庫,並通過shards升級,但如果可以通過塊分割在同一個服務器蒙戈數據庫,並存儲在不同的文件,我想,範圍的碎片鍵將使用考慮週數和當年類似的信息(年)X54 +一年的當前週數的公式來計算拆分MongoDB的數據分成幾個文件

假設2010x54 + 11 = 108551

理想情況下我有什麼記住要將文件按月份類似以下分裂:

chunk01 (shardKeyID 108551 -> 108555) ----> Server1---> physical file 01 
chunk02 (shardKeyID 108556 -> 108560) ----> Server1---> physical file 02 
chunk03 (shardKeyID 108561 -> 108565) ----> Server1---> physical file 03 

我一直試圖做一個單一的服務器,但如果將它設置爲碎片,我會在數據庫文件,這東西是有意義的一個子集,因爲其他部分將存儲在其他碎片在不同的服務器上。

什麼想法?

回答

0

您可以通過不同的端口上運行的不同mongod情況下,建立一個單一的服務器上的碎片羣。說明可以在this tutorial中找到。

關於塊的分裂,這是由數據庫自動處理。請注意,默認情況下,您的收藏集將使用64MB的默認塊大小進行分片。查看更多詳情here

塊大小是用戶可配置的。但是,默認值是64 MB,對於大多數部署來說,MB是理想的選擇。

您似乎在描述自己的算法,以便何時平衡,這是不可能的。你真的需要把它留給cluster balancer來爲你解決這個問題。

0

MongoDB中自動創建數據文件(被稱爲程度)每個數據庫;您無法像您所建議的那樣控制哪些文檔進入給定的物理數據文件。

Sharding在整個服務器集羣中分佈單個邏輯數據庫,其中每個分片由複製集(推薦)或單個mongod支持。您的choice of shard key確定將用於在分片之間平衡數據的屬性,但是又不能確定數據在物理數據文件中的位置。