Bootstrap

hhdb数据库介绍(9-24)

计算节点参数说明

failoverAutoresetslave

参数说明:

PropertyValue
参数值failoverAutoresetslave
是否可见
参数说明故障切换时,是否自动重置主从复制关系
默认值false
Reload是否生效

参数设置:

<property name="failoverAutoresetslave">false</property><!-- 故障切换时,是否自动重置主从复制关系 -->

参数作用:
此参数用于保障存储节点发生故障切换后的数据正确性。开启参数,故障切换后,会暂停原主从之间IO线程,等原主库恢复正常后,检测原从库(现主库)是否仍存在未接收的事务,若存在,则自动重置主从复制关系。

frontConnectionTrxIsoLevel

参数说明:

PropertyValue
参数值frontConnectionTrxIsoLevel
是否可见
参数说明前端连接默认隔离级别
默认值2
Reload是否生效

参数设置:

<property name="frontConnectionTrxIsoLevel">2</property>

参数作用:
用于设置计算节点的前端连接的默认初始时的隔离级别,五种隔离级别选择:

0=read-uncommitted; 1=read-committed; 2=repeatable-read; 3=serializable;4=read-semi-committed

frontWriteBlockTimeout

参数说明:

PropertyValue
参数值frontWriteBlockTimeout
是否可见
参数说明前端连接写阻塞超时时间
默认值10000ms
最小值2000ms
最大值600000ms
Reload是否生效Y

参数作用:
在计算节点到客户端存在网络延迟过大或者网络不可达,客户端接收数据慢等情况下,可能会出现前端写阻塞。

前端连接写阻塞超时时,会关闭前端连接,然后输出对应的日志提示" closed, due to write block timeout",如下:

2018-06-14 13:46:48.355 [INFO] [] [TimerExecutor1] FrontendConnection(695) -- [thread=TimerExecutori,id=9,user=cara,host=192.168.200.82,port=8883,localport=61893,schema=TEST_LGG] closed, due to write block timeout, executing SQL: select * from customer_auto_1

forwardFunction

参数说明:

PropertyValue
参数值forwardFunction
是否可见
参数说明非单库逻辑库,开启后可下发函数DDL
默认值false
Reload是否生效

参数设置:

<property name="forwardFunction">false</property><!--  下发函数DDL(forward function operation to datasource)  -->

参数作用:

forwardFunction参数开启后支持非单库函数DDL语句下发。 参数为false时,非单库的逻辑库,禁止执行函数DDL(CREATE\ALTER\DROP):
在这里插入图片描述

参数为true时,非单库的逻辑库,可以执行函数DDL(CREATE\ALTER\DROP)
在这里插入图片描述

generatePrefetchCostRatio

参数说明:

PropertyValue
参数值generatePrefetchCostRatio
是否可见
参数说明触发提前预取的已消耗比例
默认值90
最小值50
最大值100
Reload是否生效

参数设置:

<property name="generatePrefetchCostRatio">70</property>

参数作用:
隐藏参数,配置批次已消耗比例,已消耗比例是指当前自增值占当前批次大小的比例,例如当前自增值为89,当前批次大小为100,则已消耗比例为89%。

若批次使用率达到已消耗比例,则会触发提前预取新的批次。例如参数设置为70,若批次使用率达到70%,则开始预取下一批次。

globalUniqueConstraint

参数说明:

PropertyValue
参数值globalUniqueConstraint
是否可见
参数说明新增表是否默认开启全局唯一约束
默认值false
Reload是否生效

参数设置:
server.xml中globalUniqueConstraint参数配置 如下配置:

<property name="globalUniqueConstraint">false</property><!--新增表是否默认开启全局唯一约束-->

参数作用:
新增表是否默认开启全局唯一约束,修改为true后可默认为添加的表开启全局唯一约束。

开启全局唯一约束保证有唯一约束(UNIQUE、PRIMARY KEY)的列在所有数据节点上唯一。注意:开启该功能后,可能对SQL语句INSERT、UPDATE、DELETE执行效率有较大影响,可能导致SQL操作延迟增大;还可能导致锁等待和死锁的情况增加。

haMode

参数说明:

PropertyValue
参数值haMode
是否可见
参数说明高可用模式, 0:HA, 1:集群, 2:HA模式中心机房, 3:HA模式容灾机房,4:集群模式中心机房,5:集群模式容灾机房
默认值0
Reload是否生效

参数设置:
server.xml中haMode参数配置 如下配置:

<property name="haMode">0</property><!-- 高可用模式, 0:HA, 1:集群, 2:HA模式中心机房, 3:HA模式容灾机房,4:集群模式中心机房,5:集群模式容灾机房 -->

参数作用:
haMode可设置为0,1,2,3,4,5。对于单机房模式下的计算节点集群,与低版本的使用方法相同,将haMode设置为0或1,表示单机房模式下的单节点、高可用以及集群模式。对于容灾模式下的计算节点集群,在中心机房将此参数设置为2,在容灾机房将此参数设置为3,表示容灾模式下的单节点或高可用模式。容灾模式的计算节点集群不支持集群模式。其中4为开启容灾模式后,计算节点为多计算节点集群模式的中心机房;5为开启容灾模式后,计算节点为多计算节点集群模式的容灾机房。

haState & haNodeHost

参数说明:

PropertyValue
参数值haState
是否可见
参数说明计算节点高可用模式下的主备角色配置,主计算节点配置为:master,备计算节点配置为:backup(集群模式下,此项无效)
默认值master
Reload是否生效
PropertyValue
参数值haNodeHost
是否可见
参数说明计算节点高可用模式下需配置当前主计算节点管理端口连接信息;集群模式下,需配置所有成员的集群通信端口连接信息(集群在同一网段且集群端口相同时,可以不配置该参数)
默认值(空)
Reload是否生效

参数设置:
server.xml中haMode参数配置,如下配置:

<property name="haState">master</property>!-- 计算节点高可用模式下的主备角色配置,主计算节点配置为:master,备计算节点配置为:backup(集群模式下,此项无效) -->
<property name="haNodeHost"></property><!-- 计算节点高可用模式下需配置当前主计算节点管理端口连接信息;集群模式下,需配置所有成员的集群通信端口连接信息,且集群模式下,只有当集群内所有计算节点在同一网段且集群端口相同时,可以不配置该参数,否则必须配置所有成员的集群通信信息。例:192.168.220.1:3326,192.168.200.1:3327,192.168.200.1:3328 -->

参数作用:
haState与haNodeHost属于配套参数。

当计算节点为高可用模式时,haState为主节点(master)角色,haNodeHost配置为空;haState为备节点(backup)角色,haNodeHost可配置为对端当前主计算节点管理端连接信息,即IP:PORT,此处PORT为管理端口;当backup角色的计算节点被keepalived触发启动(online)时,会主动往haNodeHost上的原master服务发送offline命令以尽可能减少多活场景的出现。例如192.168.200.51:3325与192.168.200.52:3325属于计算节点高可用的环境,该组参数是用户使用计算节点高可用关系的关键配置,主计算节点haState角色为master, 备计算节点haState角色为backup , 并且haNodeHost需要指定配置与之关联的主服务的IP和管理端口。

当计算节点为多节点集群模式时,haState无实际意义,但haNodeHost需要注意:只有当集群内所有计算节点在同一网段且集群端口相同时,可以不配置该参数(此时需要正确配置clusterNetwork参数),否则必须配置所有成员的集群通信信息。例如:192.168.220.1:3326,192.168.200.1:3327,192.168.200.1:3328属于多计算节点,需要指定配置该集群的所有计算节点的IP和通信端口。

单计算节点服务可忽略该参数。

高可用模式主节点示例:

<property name="haState">master</property><!-- 计算节点高可用模式下的主备角色配置,主计算节点配置为:master,备计算节点配置为:backup(集群模式下,此项无效) -->
<property name="haNodeHost"/><!-- 当前主计算节点节点连接信息,IP:PORT (主备模式下使用,PORT表示管理端口,例:192.168.200.2:3325)-->

高可用模式备节点示例:

<property name="haState">backup</property><!-- 计算节点高可用模式下的主备角色配置,主计算节点配置为:master,备计算节点配置为:backup(集群模式下,此项无效) -->
<property name="haNodeHost"/>192.168.200.51:3325<!-- HA角色,其他节点IP:PORT (主备模式下使用,PORT表示管理端口,例:192.168.200.2:3325)-->

集群模式实例:

<property name="haState">backup</property><!-- 集群模式下,此项无实际意义-->
<property name="haNodeHost"/>192.168.220.1:3326,192.168.220.1:3327,192.168.200.1:3328<! 集群模式下,若集群所有成员在同一网段且集群端口相同时,可以不配置该参数,否则必须配置所有成员的连接信息,IP:PORT 逗号间隔,此处PORT为监听端口-->

highCostSqlConcurrency

参数说明:

PropertyValue
参数值highCostSqlConcurrency
是否可见
参数说明高消耗语句的并发数
默认值32
最小值1
最大值2048
Reload是否生效Y

参数作用:
此参数为计算节点过载保护相关参数,用于控制高消耗语句的并发数(包括跨库join、union、update/delete…limit等),当前端执行并发数超过设置时,相关连接会被hold住,等待前面执行完后,才能执行下一批。

Show processlist中的flow control为lock状态,等待下一批执行。

可从管理端口中查看当前剩余可用的并发数。

+-----+----------------------+----------------------+----------+---------+------+--------------+-----------------------------------------------------------------------+
| Id  | User                 | Host                 | db       | Command | Time | State        | Info                                                                  |
+-----+----------------------+----------------------+----------+---------+------+--------------+-----------------------------------------------------------------------+
| 150 | _HotDB_Cluster_USER_| 192.168.210.31:51428 | TEST_LGG | Query   | 0    | Sending data | select a.*,b.x from customer_auto_1 a join customer_auto_2 on ...省略 |
| 126 | _HotDB_Cluster_USER_| 192.168.210.31:51412 | TEST_LGG | Query   | 0    | Flow control | select a.*,b.x from customer_auto_1 a join customer_auto_2 on ...省略 |
| 222 | _HotDB_Cluster_USER_| 192.168.210.32:16636 | TEST_LGG | Query   | 0    | optimizing   | select a.*,b.x from customer_auto_1 a join customer_auto_2 on ...省略 |
| 174 | _HotDB_Cluster_USER_| 192.168.210.32:16604 | TEST_LGG | Query   | 0    | Sending data | select a.*,b.x from customer_auto_1 a join customer_auto_2 on ...省略 |
| 129 | _HotDB_Cluster_USER_| 192.168.210.31:51414 | TEST_LGG | Query   | 0    | Flow control | select a.*,b.x from customer_auto_1 a join customer_auto_2 on ...省略 |
...省略更多...

mysql> show @@debug;
+------------+------------+
| join_limit | committing |
+------------+------------+
| 32         | 0          |
+------------+------------+
1 row in set (0.00 sec)

highCostSqlThreshold

参数说明:

PropertyValue
参数值highCostSqlThreshold
是否可见
参数说明触发高内存消耗SQL流控的缓存行数阈值
默认值100000
最小值0
最大值100000000
Reload是否生效

参数设置:

<property name="highCostSqlThreshold">0</property><!-- 触发高内存消耗SQL流控的缓存行数阈值,默认100000, 0为不触发流控(Threshold of cached lines that trigger flow control of high memory cost SQL. The default value is 100000, and 0 means that all queries will not trigger flow control) -->

参数作用:
触发高内存消耗SQL流控的缓存行数阈值,当SQL消耗的缓存行数超过该值,将会触发流控。默认100000,0表示不触发流控。

holdCommitTimeout

参数说明:

PropertyValue
参数值holdCommitTimeout
是否可见
参数说明Hold Commit操作超时(秒)
默认值60
最小值5
最大值300
Reload是否生效

参数设置:

<property name="holdCommitTimeout">5</property><!-- Hold Commit操作超时(秒)(Timeout(second) for hold commit command) -->

参数作用:
管理端执行hold commit命令,执行时间超过参数设置的时间时会报错。 设置计算节点与存储节点的网络延迟为7000ms,设置该参数的超时时间为5秒。手动开启一个事务,执行commit时,在管理端执行 hold commit命令,命令执行超过5秒超时失败
在这里插入图片描述
在这里插入图片描述

;