SequoiaDB的集群扩展、删除数据分区组

集群扩展

概念
集群的扩展,伴随着新分区组的加入。比如原来有3台机器,里面有group1,group2作为分区组,而且这两个分区组都存满文件了;现在新增三台机器,新增group3,group4分区组;如果想要把存满的文件切分到新增的机器中,其实就是将group1,group2的文件切分到group3,group4中。

  1. 新增3台机器,创建新的分区组,此处模拟新建了group3, group4
  2. 因为原来的group1, group2在数据域domain1中,所以先把group3,group4划分到domain1中。
    var domain = db.getDomain('domain')
    domain.alter(Groups['group1','group2','group3','group4'])
  3. 开始数据切分。原来group1的分区为0~2048,group2的分区为2048~4096。现在各个group的切分情况如下:
    group1:[0, 1024)
    group3:[1024, 2048)
    group2:[2048, 3072)
    group4:[3072, 4096)
    db.foo.bar.splitAsync( "group1", "group3", { Partition: 1024 }, { Partition: 2048 } )
    db.foo.bar.splitAsync( "group2", "group4", { Partition: 3072 }, { Partition: 4096 } )

splitAsync()其实与split()方法其实原理一样,只是前者是用来处理数据量大的切分情况,是异步提交的。

另一个应用场景:主子表
在这里插入图片描述

数据分区组的删除

1.首先,要保证数据不丢失,再去删除一个分区组;这里用删除group3,group4来演示。
db.foo.bar.split("group3","group1", { Partition: 1024 }, { Partition: 2048 } )把group3中1024到2048的数据(即全部数据)划分到group1中
db.foo.bar.split("group3","group1", { Partition: 3072}, { Partition: 4096} )把group4中3072到4096的数据(即全部数据)划分到group2中
2. 删除数据组
db.removeRG("group3")
db.removeRG("group3")
3. 查看domain信息,可以看见已经成功删除
db.listDomains()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值