hhdb数据库介绍(9-24)
计算节点参数说明
failoverAutoresetslave
参数说明:
Property | Value |
---|---|
参数值 | failoverAutoresetslave |
是否可见 | 是 |
参数说明 | 故障切换时,是否自动重置主从复制关系 |
默认值 | false |
Reload是否生效 | 否 |
参数设置:
<property name="failoverAutoresetslave">false</property><!-- 故障切换时,是否自动重置主从复制关系 -->
参数作用:
此参数用于保障存储节点发生故障切换后的数据正确性。开启参数,故障切换后,会暂停原主从之间IO线程,等原主库恢复正常后,检测原从库(现主库)是否仍存在未接收的事务,若存在,则自动重置主从复制关系。
frontConnectionTrxIsoLevel
参数说明:
Property | Value |
---|---|
参数值 | frontConnectionTrxIsoLevel |
是否可见 | 否 |
参数说明 | 前端连接默认隔离级别 |
默认值 | 2 |
Reload是否生效 | 是 |
参数设置:
<property name="frontConnectionTrxIsoLevel">2</property>
参数作用:
用于设置计算节点的前端连接的默认初始时的隔离级别,五种隔离级别选择:
0=read-uncommitted; 1=read-committed; 2=repeatable-read; 3=serializable;4=read-semi-committed
frontWriteBlockTimeout
参数说明:
Property | Value |
---|---|
参数值 | 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
参数说明:
Property | Value |
---|---|
参数值 | 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
参数说明:
Property | Value |
---|---|
参数值 | generatePrefetchCostRatio |
是否可见 | 否 |
参数说明 | 触发提前预取的已消耗比例 |
默认值 | 90 |
最小值 | 50 |
最大值 | 100 |
Reload是否生效 | 是 |
参数设置:
<property name="generatePrefetchCostRatio">70</property>
参数作用:
隐藏参数,配置批次已消耗比例,已消耗比例是指当前自增值占当前批次大小的比例,例如当前自增值为89,当前批次大小为100,则已消耗比例为89%。
若批次使用率达到已消耗比例,则会触发提前预取新的批次。例如参数设置为70,若批次使用率达到70%,则开始预取下一批次。
globalUniqueConstraint
参数说明:
Property | Value |
---|---|
参数值 | globalUniqueConstraint |
是否可见 | 否 |
参数说明 | 新增表是否默认开启全局唯一约束 |
默认值 | false |
Reload是否生效 | 是 |
参数设置:
server.xml中globalUniqueConstraint参数配置 如下配置:
<property name="globalUniqueConstraint">false</property><!--新增表是否默认开启全局唯一约束-->
参数作用:
新增表是否默认开启全局唯一约束,修改为true后可默认为添加的表开启全局唯一约束。
开启全局唯一约束保证有唯一约束(UNIQUE、PRIMARY KEY)的列在所有数据节点上唯一。注意:开启该功能后,可能对SQL语句INSERT、UPDATE、DELETE执行效率有较大影响,可能导致SQL操作延迟增大;还可能导致锁等待和死锁的情况增加。
haMode
参数说明:
Property | Value |
---|---|
参数值 | 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
参数说明:
Property | Value |
---|---|
参数值 | haState |
是否可见 | 是 |
参数说明 | 计算节点高可用模式下的主备角色配置,主计算节点配置为:master,备计算节点配置为:backup(集群模式下,此项无效) |
默认值 | master |
Reload是否生效 | 否 |
Property | Value |
---|---|
参数值 | 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
参数说明:
Property | Value |
---|---|
参数值 | 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
参数说明:
Property | Value |
---|---|
参数值 | 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
参数说明:
Property | Value |
---|---|
参数值 | 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秒超时失败