集群参数
xSQL 配置文件可用于定义与 C API 的 mco_cluster_params_t 结构相对应的 SmartEDB 集群参数。
“cluster_params”部分由一组用大括号括起来的“名称:值”对组成。例如:
cluster_params : {
mem_page_size : 256,
nodes : [
{
addr : "127.0.0.1:5000",
qrank : 0
},
],
node_id : 0,
...
}
以下列出了 cluster_params 部分的可能选项,以及注释中指定的相应 C API 结构和值:
nodes
nodes : [ { ...} ]
集群节点列表(mco_cluster_node_params_t.addr 和 mco_cluster_node_params_t.qrank)
nodes : [
{
# Node address in form <IP/hostname>:<port> (mco_cluster_node_params_t::addr)
addr : "127.0.0.1:5000",
# Quorum rank (mco_cluster_node_params_t::qrank), unsigned
qrank : 0
},
]
node_id
node_id : 0,
当前节点 ID(mco_cluster_params_t::node_id),无符号型
conn_pool_factor
conn_pool_factor: 50,
连接池大小占最大数据库连接数的百分比(mco_cluster_params_t::conn_pool_factor)
n_listener_threads
n_listener_threads : 5,
集群监听器线程的数量。默认值为 1;较大的值可在处理远程事务时提高性能。
sync_msg_objects
sync_msg_objects : 100,
同步期间每条消息的最大对象数(mco_cluster_params_t::sync_msg_objects),无符号数
sync_msg_size
sync_msg_size : 100k,
同步期间消息的最大字节大小(mco_cluster_params_t::sync_msg_size),无符号数
window
window : {...}
事务窗口参数(mco_cluster_params_t::window)
window : {
# Size of window buffer in bytes (mco_cluster_window_t::bsize), unsigned
bsize : 100k
# Number of transactions (mco_cluster_window_t::length), unsigned
length : 4,
# Window timeout in milliseconds (mco_cluster_window_t::timeout), unsigned
timeout : 10,
},
cl_sndbuf
cl_sndbuf : 2k,
内部发送缓冲区大小(以字节为单位)(mco_cluster_params_t::cl_sndbuf),无符号整数
cl_rcvbuf
cl_rcvbuf : 2k,
内部接收缓冲区大小(以字节为单位)(mco_cluster_params_t::cl_rcvbuf),无符号整数
mode_mask
mode_mask : binary_evolution,
集群模式掩码(mco_cluster_params_t::mode_mask),二进制演进(MCO_CLUSTER_MODE_BINARY_EVOLUTION)和早期数据发送(MCO_CLUSTER_MODE_EARLY_DATA_SEND)的组合
quorum_policy
quorum_policy : qrank_based,
自定义仲裁策略。可能的值为: qrank_based - 默认基于节点的 qrank 的策略; always_writable - 无论其他节点的状态如何,都允许在该节点上执行写入事务; all_nodes_required - 只有当所有其他节点都处于活动状态并连接到当前节点时,才允许执行写入事务。
auto_detach
auto_detach : true,
退出时从集群中分离节点,布尔值。默认值为 false 。
ssl_params
ssl_params : {...}
集群特定的 SSL 设置。有关参数及其默认值的描述,请参阅全局 ssl_params 部分。这些参数会覆盖全局设置。若要继承全局 ssl_params 设置,请将 ssl_params 部分留空。(它们具有与全局部分相同的参数和默认值,但 ca_path 和 ca_file 仅允许在全局部分中使用。)
nw_tcp
nw_tcp : {...}
TCP/IP 参数(mco_cluster_params_ttcp)
nw_tcp : {
# Maximum socket send buffer in bytes (mco_clnw_tcp_params_t::so_sndbuf), unsigned
so_sndbuf : 16k,
# Maximum socket receive buffer in bytes (mco_clnw_tcp_params_t::so_rcvbuf), unsigned
so_rcvbuf : 16k,
# Timeout for connecting nodes to each other in milliseconds
# (mco_clnw_tcp_params_t::connect_timeout), unsigned
connect_timeout : 5000,
# Time between attempts to connect to other nodes in milliseconds
# (mco_clnw_tcp_params_t::connect_interval), unsigned
connect_interval : 500,
# Number of milliseconds between keep-alive messages in milliseconds
# (mco_clnw_tcp_params_t::keepalive_time), unsigned
keepalive_time : 1000,
# Number of keep-alive probes to send before node disconnects
# (mco_clnw_tcp_params_t::keepalive_probes), unsigned
keepalive_probes : 5,
# The level of compression: 0 = no compression; 1 = best speed,
# 9 - best compression. Default value is 0
compression_level : 9,
# mco_clnw_tcp_params_t::socket_domain, one of
# 'inet' (MCO_SOCK_INET_DOMAIN), 'local' (MCO_SOCK_LOCAL_DOMAIN) or
# 'sdp' (MCO_SOCK_SDP_DOMAIN)
socket_domain : inet,
},
nw_mpi
nw_mpi : {...}
MPI 参数(mco_cluster_params_tmpi)
nw_mpi : {
# MPI mode flags (mco_clnw_mpi_params_t::flags). combination of
# 'busywait' (MCO_CLUSTER_MPI_BUSYWAIT) and
# 'serialized_send' (MCO_CLUSTER_MPI_SERIALIZED_SEND)
flags : busywait
},