dtm client timeout variables
事务dtm 请求超时时间
参数 “greatdb_dtm_trx_timeout” 默认值6secs.
当事务向dtm server 发从请求后, 等待 从dtm server 收到回应的超时值.
这个值要大于“greatdb_dtm_server_wait_sync_time”, 在 dtm server
时钟发生漂移的情况下,dtm server 会等待时钟同步,这会增加处理时间,同时
“greatdb_dtm_trx_timeout” 超时会导致重连, 但是时钟漂移本身不是网络错误,
所以为避免无效的重连需要设置该值大于 “greatdb_dtm_server_wait_sync_time”。
这请求超时后, 会断开与dtm server的会话, 尝试重新连接到dtm server.
这个值主要时处理dtm client或者dtm server 相应的通信端口/网卡故障。
重连的配置由另外两个参数控制。
dtm client与server链接故障时 重连次数与间隔
“greatdb_dtm_client_con_count” 默认值1000
“greatdb_dtm_client_con_interval” 默认值 5000 毫秒
无论时因为可侦测的网络故障还是greatdb_dtm_trx_timeout超时了, dtm client的行为都是尝试重新连接到dtm server.
这两个参数控制重连的行为:在网络不稳定的情况下,dtm client 会尝试 greatdb_dtm_client_con_count次, 每次间隔greatdb_dtm_client_con_interval
重连到dtm server. 重连的行为如下:
在参数配置的范围内连接成功,可以继续提供服务。
在重连的过程中,可能会有新dtm server 选举成功, 这时放弃重连,用新的dtm server建立连接。
重连失败.
在重连期间dtm client TPS掉零。
dtm cient 与dtm server建立连接的重试次数
“greatdb_dtm_client_connect_tries” 默认值: 4
这个实际是设置dtm client socket 上的net.ipv4.tcp_syn_retries 参数值。linux系统默认值是6, 也就是默认要等 127(1+2+4+8+16+32+64) 秒, 才认为是connect 失败。
dtm client这个参数的默认值是4, 也就是说 在dtm server/client端口或者网卡down, 在网络不稳定的情况下, 导致不能建立网络连接时, 需要等待默认31秒 才认为连接失败。
与dtm server建立会话超时时间
处理 dtm client 与 server 建立连接的过程中,检测网路故障的超时值。 在dtm client与server 建立会话的过程中, 这两者的通信模式是同步的。在send/recv过程中出现网络故障的时候, 这两个函数send/recv会被block,若block的时间超过“greatdb_dtm_handshake_timeout” 则认为连接、建立会话失败。
若是建立会话失败:失败的dtm client上的TPS为零; 相应的dtm server是无效的。




