SequoiaDB巨杉数据库协调节点

概念

协调节点为一种逻辑节点,其中并不保存任何用户数据信息。

协调节点作为数据请求部分的协调者,本身并不参与数据的匹配与读写操作,而仅仅是将请求分发到所需要处理的数据节点。

一般来说,协调节点的处理流程如下:

  • 得到请求
  • 解析请求
  • 本地缓存查询该请求对应集合的信息
  • 如果信息不存在则从编目节点获取
  • 将请求转发至相应的数据节点
  • 从数据节点得到结果
  • 把结果汇总或直接传递给客户端

协调节点与其它节点之间主要使用分区服务端口( SequoiaDB 的 --shardname 参数)进行通讯。

SequoiaDB 中有两类协调节点:

  1. 临时协调节点:通过资源管理节点 sdbcm 建立的协调节点。临时协调节点并不会注册到编目节点中,即该临时的协调节点不能被集群管理。临时协调节点仅用于初始创建 SequoiaDB 集群使用。
  2. 协调节点:通过正常的流程创建的协调节点组中的协调节点。该类协调节点会注册到编目节点中,并且可以被集群管理。

管理协调节点

创建临时协调节点

创建 SequoiaDB 集群时,用户可以在 Sdb Shell 中通过 sdbcm 创建临时协调节点。

  1. 连接到本地的集群管理服务进程 sdbcm

    > var oma = new Oma( "localhost", 11790 )
    
  2. 创建临时协调节点

    > oma.createCoord( 18800, "/opt/sequoiadb/database/coord/18800" )
    
  3. 启动临时协调节点

    oma.startNode( 18800 )
    

Note:

创建临时协调节点可参考 Oma.createCoord()

创建协调节点组

用户在 Sdb Shell 中可以通过临时协调节点可以创建协调节点组。

  1. 连接临时协调节点

    > var db = new Sdb( "localhost", 18800 )
    
  2. 创建协调节点组

    > db.createCoordRG()
    

Note:

  • 创建协调节点组应先在集群中创建有效的编目节点,可参考集群模式

新增协调节点

当集群规模扩大时,协调节点也需要随着规模的增加而进行增加。建议在每台物理机器上都配置一个协调节点。

在 Sdb Shell 中可以通过现有的协调节点组添加新的协调节点(假设有 sdbserver1 和 sdbserver2 两台处于同一个集群的服务器,sdbserver1 中已有协调节点(端口为 11810),现在向 sdbserver2 中添加新的协调节点):

  1. 连接 sdbserver1 的协调节点

    > var db = new Sdb( 'sdbserver1', 11810 )
    
  2. 获取协调节点组

    > var rg = db.getCoordRG()
    

    Note:

    获取协调节点组,可参考 Sdb.getRG()

  3. 在 sdbserver2 中新建协调节点

    > var node = rg.createNode( "sdbserver2", 11810, "/opt/sequoiadb/database/coord/11810" )
    
  4. 启动 sdbserver2 的协调节点

    > node.start()
    

查看协调节点

在 Sdb Shell 中查看协调节点的列表:

> db.getCoordRG().getDetail()

故障恢复

由于协调节点不存在用户数据,因此发生故障后可以直接重新启动,不参与任何额外的故障恢复步骤。

更多内容可点击巨杉数据库官网查看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值