协调节点为一种逻辑节点,其中并不保存任何用户数据信息。
协调节点作为数据请求部分的协调者,本身并不参与数据的匹配与读写操作,而仅仅是将请求分发到所需要处理的数据节点。
一般来说,协调节点的处理流程如下:
协调节点与其它节点之间主要使用分区服务端口(--shardname 参数)进行通讯。
SequoiaDB 巨杉数据库中有两类协调节点:
创建 SequoiaDB 集群时,用户可以在 SDB Shell 中通过 sdbcm 创建临时协调节点。
连接到本地的集群管理服务进程 sdbcm
> var oma = new Oma( "localhost", 11790 )
创建临时协调节点
> oma.createCoord( 18800, "/opt/sequoiadb/database/coord/18800" )
启动临时协调节点
> oma.startNode( 18800 )
Note:
创建临时协调节点可参考 Oma.createCoord()
用户在 Sdb Shell 中可以通过临时协调节点可以创建协调节点组。
连接临时协调节点
> var db = new Sdb( "localhost", 18800 )
创建协调节点组
> db.createCoordRG()
Note:
创建协调节点组应先在集群中创建有效的编目节点,可参考集群模式
当集群规模扩大时,协调节点也需要随着规模的增加而进行增加。建议在每台物理机器上都配置一个协调节点。
在 Sdb Shell 中可以通过现有的协调节点组添加新的协调节点(假设有 sdbserver1 和 sdbserver2 两台处于同一个集群的服务器,sdbserver1 中已有协调节点(端口为 11810),现在向 sdbserver2 中添加新的协调节点):
连接 sdbserver1 的协调节点
> var db = new Sdb( 'sdbserver1', 11810 )
获取协调节点组
> var rg = db.getCoordRG()
Note:
获取协调节点组,可参考 Sdb.getCoordRG()
在 sdbserver2 中新建协调节点
> var node = rg.createNode( "sdbserver2", 11810, "/opt/sequoiadb/database/coord/11810" )
启动 sdbserver2 的协调节点
> node.start()
在 SDB Shell 中查看协调节点的列表
> db.getCoordRG().getDetailObj()
由于协调节点不存在用户数据,因此发生故障后可以直接重新启动,不参与任何额外的故障恢复步骤。