返回首页

gbase数据、南大通用产品文档:GBase8a更新索引优化

更新日期:2024年09月11日

概述
全文索引的字典采用静态哈希结构存储,更新索引需要多次查询该哈希表,当单
词数过多时会导致字典的冲突链非常长,
而冲突链过长会导致更新速度急剧变慢。

操作步骤
GBase 8c 数据库集群扩容的步骤如下:
步骤1 在新增节点的主机上配置集群节点间互信,详细操作参见《GBase 8c V5_3.0.0
安装部署手册》中3.4 章节“配置互信”。
该步骤必须配置并检查,如配置互信过程出错,可能影响后续步骤。
步骤2 在DCS 节点上,在集群中添加新增节点的IP。
[gbase@gbase8c ~]$ gha_ctl deploy host_ip -l http://dcs_ip:2379
执行返回以下信息,即为操作成功,
{
"ret":0,
"msg":"Success"
}
步骤3 执行扩容命令。
将原集群的M 个DN 主备组扩容为N 个主备组(N>M),将新增加的每一个主备组信
息用一组引号单独括起来,每个主备的信息是DN 组名+用括号括起来的所有主备节点的信
息,一个节点用一个括号。语法如下:
gha_ctl expand datanode 'new_group1 (name1_1 host1_1 port1_1 dir1_1
agent_port1_1 agent_host1_1) (name1_2 host1_2 port1_2 dir1_2 agent_port1_2
agent_host1_2)' 'new_group2 (name2_1 host2_1 port2_1 dir2_1 agent_port2_1
agent_host2_1) (name2_2 host2_2 port2_2 dir2_2 agent_port2_2 agent_host2_2)'
['...'] -l dcslist [-c cluster] -u uuid -j parallel_num
其中参数说明:
new_group:指定新增高可用组的名称。可根据需要,同时扩充多个高可用组。

GBase 8c 管理员指南
南大通用数据技术股份有限公司
115
name:指定高可用组内的DN 节点名称,一般格式应为dn[数字]_[数字]。
host:指定扩容高可用组内对应DN 节点的IP。
port:指定对应DN 节点的端口号。同高可用组内端口需一致。当资源限制需重复使用
同一节点,在不同高可用组内分别承担主备角色时,需将两个高可用组端口设置不同,
避免端口复用而报错。
dir:指定对应DN 节点的存储路径。
agent_port:指定对应DN 节点的代理端口号。
agent_host:为可选参数。缺省值为host 参数值。指定DN 节点控制面IP。
uuid:通过唯一标识指定数据库。uuid 可以用如下命令生成:
cat /proc/sys/kernel/random/uuid
parallel_num:指定扩容时并行执行参数,多表同时执行重分布。默认值为1。
示例
示例一
扩容DN2 高可用组,组内主节点为10.0.7.6,备节点10.0.7.7。
[gbase@gbase8c ~]$ cat /proc/sys/kernel/random/uuid
40ac7d83-6be3-486c-83c4-8942a16d3590
[gbase@gbase8c ~]$ gha_ctl expand datanode 'dn2 (dn2_1 10.0.7.6 15466
/home/gbase/data/dn2_1 8011 10.0.7.6) (dn2_2 10.0.7.7 15466
/home/gbase/data/dn2_2 8012 10.0.7.7) ' -l http://10.0.7.7:2379 -u
40ac7d83-6be3-486c-83c4-8942a16d3590
返回以下信息,表示扩容成功
{
"ret":0,
"msg":"Success"
}
查看数据库集群状态
[gbase@gbase8c ~]$ gha_ctl monitor all -H -l http://10.0.7.7:2379
+----+-------------+----------+-------+---------+--------+

GBase 8c 管理员指南
南大通用数据技术股份有限公司
116
| No |
name
|
host
|
port |
state
| leader |
+----+-------------+----------+-------+---------+--------+
| 0
| gha_server1 | 10.0.7.7 | 20001 | running |
True
|
+----+-------------+----------+-------+---------+--------+
+----+------+----------+------+---------------------------+---------+-------
--+
| No | name |
host
| port |
work_dir
|
state
|
role
|
+----+------+----------+------+---------------------------+---------+-------
--+
| 0
| gtm1 | 10.0.7.7 | 6666 | /home/gbase/data/gtm/gtm1 | running | primary
|
| 1
| gtm2 | 10.0.7.8 | 6666 | /home/gbase/data/gtm/gtm2 | running | standby
|
+----+------+----------+------+---------------------------+---------+-------
--+
+----+------+----------+------+----------------------------+---------+------
---+
| No | name |
host
| port |
work_dir
|
state
|
role
|
+----+------+----------+------+----------------------------+---------+------
---+
| 0
| cn1
| 10.0.7.7 | 5432 | /home/gbase/data/coord/cn1 | running | primary
|
| 1
| cn2
| 10.0.7.8 | 5432 | /home/gbase/data/coord/cn2 | running | primary
|
+----+------+----------+------+----------------------------+---------+------
---+
+----+-------+-------+----------+-------+----------------------------+------
---+---------+
| No | group |
name |
host
|
port |
work_dir
|
state
|
role
|
+----+-------+-------+----------+-------+----------------------------+------
---+---------+
| 0
|
dn1
| dn1_1 | 10.0.7.7 | 15432 | /home/gbase/data/dn1/dn1_1 | running
| primary |
| 1
|
dn1
| dn1_2 | 10.0.7.8 | 15432 | /home/gbase/data/dn1/dn1_2 | running
| standby |
+----+-------+-------+----------+-------+----------------------------+------
---+---------+
+----+----------------------+--------+---------+----------+
| No |
url
|
name
|
state
| isLeader |

GBase 8c 管理员指南
南大通用数据技术股份有限公司
117
+----+----------------------+--------+---------+----------+
| 0
| http://10.0.7.7:2379 | node_0 | healthy |
True
|
| 1
| http://10.0.7.8:2379 | node_1 | healthy |
False
|
| 2
| http://10.0.7.9:2379 | node_2 | healthy |
False
|
+----+----------------------+--------+---------+----------+



sword GCIThreadMutexDestroy (
void *hndl,
GCIError *err,
GCIThreadMutex **mutex
);

销毁和解除分配互斥锁。
每个互斥锁在不再需要后必须销毁。
销毁未初始化或当前由线程持有的互斥锁是不合法的。
销毁互斥锁不得与对互斥锁执行任何其他操作同时进行。互斥锁在销毁后不得使用。

参数
输入
/输出


hndl
输入/输出
GCI 环境或用户会话句柄
err
输入/输出
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上
mutex
输入/输出
要销毁的互斥锁

如果执行成功,返回 GCI_SUCCESS,否则返回 GCI_ERROR。