The xSQL configuration file can be used to define eXtremeDB Cluster parameters corresponding to the C API
structure.mco_cluster_params_tFor an overview see page Configuration File Parameters
The
cluster_paramssection consists of a set of "name : value" pairs enclosed within braces. For example:cluster_params : { mem_page_size : 256, nodes : [ { addr : "127.0.0.1:5000", qrank : 0 }, ], node_id : 0, ... }The following table lists the possible options for the
cluster_paramssection with the corresponding C API structures and values specified in the comment:
Option name : example value Comment nodes : [ { ...} ] List (array) of cluster nodes (
andmco_cluster_node_params_t.addrmco_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 : 0, Current node ID ( mco_cluster_params_t::node_id), unsignedconn_pool_factor: 50, Size of connection pool in percents of db_max_connections(mco_cluster_params_t::conn_pool_factor)n_listener_threads : 5, The number of cluster listener threads. Default value is 1; larger values allow to increase performance while handling remote transactions sync_msg_objects : 100, Max number of objects per message during synchronization ( mco_cluster_params_t::sync_msg_objects), unsignedsync_msg_size : 100k, Max size of message in bytes during synchronization ( mco_cluster_params_t::sync_msg_size), unsignedwindow : {...} Transaction window parameters (
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 : 2k, Internal send buffer size in bytes ( mco_cluster_params_t::cl_sndbuf), unsignedcl_rcvbuf : 2k, Internal receive buffer size in bytes ( mco_cluster_params_t::cl_rcvbuf), unsignedmode_mask : binary_evolution, Cluster mode mask (
mco_cluster_params_t::mode_mask), combination of
binary_evolution(MCO_CLUSTER_MODE_BINARY_EVOLUTION) and
early_data_send(MCO_CLUSTER_MODE_EARLY_DATA_SEND)quorum_policy : qrank_based, Custom quorum policies. Possible values are :
qrank_based- default policy based on node's qrank;
always_writable- allows WRITE transactions on the node regardless of state of other nodes
all_nodes_required- WRITE transactions are allowed only if all other nodes are alive and connected to the current nodeauto_detach : true, Detach node from cluster on exit, boolean. Default value is falsessl_params : {...} Cluster-specific SSL settings. See the global ssl_paramssection for the description of the parameters and their default values. These parameters override the global settings. To inherit the globalssl_paramssettings, leave thessl_paramssection empty. (They have the same parameters and default values as the global section, except forca_pathandca_file, which are only allowed in the global section.)nw_tcp : {...} TCP/IP parameters (
mco_cluster_params_t::nw::tcp)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 : {...} MPI parameters (
mco_cluster_params_t::nw::mpi)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 },