Ruby&Mongo实战-分片集中数据块拆分规则
来源:互联网 发布:json date 格式化注解 编辑:程序博客网 时间:2024/06/06 00:21
分片集群中,早期会进行块拆分,以便加快数据在分片中的迁移。具体来说,当块的数量小于10时,会按最大块的尺寸(16MB)的四分之一进行拆分;当块的数量在10到20之间时,会按最大块尺寸的一半(32MB)进行拆分。这种做法会有两个好处,这会预先创建很多块,触发一次迁移。其次,这次迁移机会是无痛的,因为块的尺寸越小,其迁移的数据量就越少。
现在,拆分的阈值会增大。通过大量插入数据,你会看到拆分时怎么缓缓减慢的,以及块是怎么增长到最大尺寸的。试着向集群里插入800MB数据,执行
ruby insert.rb 800这条命令会执行很长时间,执行完毕之后,总数据量比以前增加了8倍,但是看数据的分块状态,你会发现数据块的数量差不多是原来的两倍。由于块的数量变多了,块的平均范围就变小了,但是每个块都会包含更多数据。尽管刚才在插入800MB数据块的数量增加了,但是可以猜到没有发生迁移,一个可能的情况就是每个原始快被一拆为2,期间还有一次额外的拆分,可以通过查询config数据库的changelog集合加以验证。
db.changelog.count({what:"muti-split"})db.changelog.find({what:"moveChunk"}).count()执行结果如下:
这符合我们的猜测,一共发生了27次拆分,但是只发生了6次迁移。如果想要更细一步了解原因,可以查看变更记录的具体条目,举例来说,以下条目记录了一次块移动:
从这里看出数据从shard-a移动到了shard-b。
阅读全文
2 0
- Ruby&Mongo实战-分片集中数据块拆分规则
- ruby 遍历mongo数据
- mongo分片
- mongo-分片
- mongo分片
- mongo分片
- mongo 分片
- Mongo实战-分片集群的查询与索引
- Mycat水平拆分之十种分片规则
- Mongo:笔记五(数据备份,恢复 验证 主从 分片)
- mongo集群合并空的数据块
- 瓦片数据分片算法与规则
- mycat1.6.5分片规则(热数据)
- mongo分片及驱动
- mysql、redis、mongo 分片
- mongo集群分片
- Mongo分片集群搭建
- RLC数据块的拆分和重组
- 利用object.defineProperty实现数据与视图绑定
- 动态规划
- 9.11图论DAY 1
- LayoutInflater.inflate()方法解析
- 设置账号和密码永不过期
- Ruby&Mongo实战-分片集中数据块拆分规则
- java中数组的创建
- 测试工具--Jmeter
- C++中的c_str()函数用法
- 夜灵的Html笔记Day10——浏览器兼容性、复杂选择器
- 代码中遇到的问题
- [图像]HOG特征
- 大数据HBase_04_01
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛J