2013-02-01 37 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确定将用于在分片之间平衡数据的属性,但是又不能确定数据在物理数据文件中的位置。