网络编程:基于Mongodb进行分布式数据存储(3)

http://www.itjxue.com  2015-07-17 21:29  来源:未知  点击次数: 

  "shard0000" : {

  "ns" : "dnt_mongodb.posts1",

  "count" : 62434,

  "size" : 54525632,

  "avgObjSize" : 873.3323509626165,

  "storageSize" : 65217024,

  "numExtents" : 10,

  "nindexes" : 1,

  "lastExtentSize" : 17394176,

  "paddingFactor" : 1,

  "flags" : 1,

  "totalIndexSize" : 2179072,

  "indexSizes" : {

  "_id_" : 2179072

  },

  "ok" : 1

  },

  "shard0001" : {

  "ns" : "dnt_mongodb.posts1",

  "count" : 99097,

  "size" : 141356684,

  "avgObjSize" : 1426.4476623913943,

  "storageSize" : 166250752,

  "numExtents" : 12,

  "nindexes" : 1,

  "lastExtentSize" : 37473024,

  "paddingFactor" : 1,

  "flags" : 1,

  "totalIndexSize" : 3424256,

  "indexSizes" : {

  "_id_" : 3424256

  },

  "ok" : 1

  }

  },

  "ok" : 1

  }

  通过上面的结果,可以出现16万条记录均分在了两个sharding上,其中shard0000中有62434条,shard0001中有99097条。下面看一下这两个sharding-chunk的分布情况(图中的错误提示‘输入字符串格式不正确’主要因为运行环境与编译程序使用的环境不同,一个是64,一个是32位系统):

  

 

  可以看到数据被按区间自动分割开了,有点像sqlserver的数据分区表,只不过这是自动完成的(目前我没找到可以手工指定区间上下限的方式,如有知道的TX可以跟我说一下)。当然在本文中的测试中,共有5个chunk,其中4个位于shard0001,这种情况可以在每次测试过程中会发生变化,包括两个sharding被分配的记录数。另外就是在mongodb移动过程前后会在shard0000上生成一个文件夹,里面包括一些bson文件,名字形如(表格+日期等信息):

  该文件主要包括一些数据库,表结构及相关记录等信息,我想应该是用于数据恢复备份啥的。

  好的,今天的内容就先到这里了。

  原文:http://blog.csdn.net/daizhj/archive/2010/09/07/5868360.aspx

  本文链接:http://www.blueidea.com/tech/program/2010/7953.asp

  

(责任编辑:IT教学网)

更多

推荐编程综合文章