struct CassCluster
A cluster object describes the configuration of the Cassandra cluster and is used to construct a session instance. Unlike other DataStax drivers the cluster object does not maintain the control connection.
Functions
CassCluster *
cass_cluster_new
( )Creates a new cluster.
Frees a cluster instance.
Sets/Appends contact points. This MUST be set. The first call sets the contact points and any subsequent calls appends additional contact points. Passing an empty string will clear the contact points. White space is striped from the contact points.
Examples: “127.0.0.1” “127.0.0.1,127.0.0.2”, “server1.domain.com”
CassError
cass_cluster_set_contact_points_n
(CassCluster *
cluster, const char *
contact_points, size_t
contact_points_length )
Same as CassCluster::cass_cluster_set_contact_points
, but with lengths for string parameters.
Sets the port.
Default: 9042
Sets the SSL context and enables SSL.
Sets the protocol version. This will automatically downgrade if to protocol version 1.
Default: 2
Sets the number of IO threads. This is the number of threads that will handle query requests.
Default: 1
Sets the size of the the fixed size queue that stores pending requests.
Default: 4096
Sets the size of the the fixed size queue that stores events.
Default: 4096
Sets the size of the the fixed size queue that stores log messages.
Default: 4096
CassError
cass_cluster_set_core_connections_per_host
(CassCluster *
cluster, unsigned
num_connections )
Sets the number of connections made to each server in each IO thread.
Default: 1
CassError
cass_cluster_set_max_connections_per_host
(CassCluster *
cluster, unsigned
num_connections )
Sets the maximum number of connections made to each server in each IO thread.
Default: 2
Sets the amount of time to wait before attempting to reconnect.
Default: 2000 milliseconds
CassError
cass_cluster_set_max_concurrent_creation
(CassCluster *
cluster, unsigned
num_connections )
Sets the maximum number of connections that will be created concurrently. Connections are created when the current connections are unable to keep up with request throughput.
Default: 1
CassError
cass_cluster_set_max_concurrent_requests_threshold
(CassCluster *
cluster, unsigned
num_requests )
Sets the threshold for the maximum number of concurrent requests in-flight on a connection before creating a new connection. The number of new connections created will not exceed max_connections_per_host.
Default: 100
Sets the maximum number of requests processed by an IO worker per flush.
Default: 128
CassError
cass_cluster_set_write_bytes_high_water_mark
(CassCluster *
cluster, unsigned
num_bytes )
Sets the high water mark for the number of bytes outstanding on a connection. Disables writes to a connection if the number of bytes queued exceed this value.
Default: 64 KB
Sets the low water mark for number of bytes outstanding on a connection. After exceeding high water mark bytes, writes will only resume once the number of bytes fall below this value.
Default: 32 KB
CassError
cass_cluster_set_pending_requests_high_water_mark
(CassCluster *
cluster, unsigned
num_requests )
Sets the high water mark for the number of requests queued waiting for a connection in a connection pool. Disables writes to a host on an IO worker if the number of requests queued exceed this value.
Default: 128 * max_connections_per_host
CassError
cass_cluster_set_pending_requests_low_water_mark
(CassCluster *
cluster, unsigned
num_requests )
Sets the low water mark for the number of requests queued waiting for a connection in a connection pool. After exceeding high water mark requests, writes to a host will only resume once the number of requests fall below this value.
Default: 64 * max_connections_per_host
Sets the timeout for connecting to a node.
Default: 5000 milliseconds
Sets the timeout for waiting for a response from a node.
Default: 12000 milliseconds
void
cass_cluster_set_credentials
(CassCluster *
cluster, const char *
username, const char *
password )
Sets credentials for plain text authentication.
void
cass_cluster_set_credentials_n
(CassCluster *
cluster, const char *
username, size_t
username_length, const char *
password, size_t
password_length )
Same as CassCluster::cass_cluster_set_credentials
, but with lengths for string parameters.
Configures the cluster to use round-robin load balancing.
The driver discovers all nodes in a cluster and cycles through them per request. All are considered ‘local’.
CassError
cass_cluster_set_load_balance_dc_aware
(CassCluster *
cluster, const char *
local_dc, unsigned
used_hosts_per_remote_dc, cass_bool_t
allow_remote_dcs_for_local_cl )
Configures the cluster to use DC-aware load balancing. For each query, all live nodes in a primary ‘local’ DC are tried first, followed by any node from other DCs.
Note: This is the default, and does not need to be called unless switching an existing from another policy or changing settings. Without further configuration, a default local_dc is chosen from the first connected contact point, and no remote hosts are considered in query plans. If relying on this mechanism, be sure to use only contact points from the local DC.
CassError
cass_cluster_set_load_balance_dc_aware_n
(CassCluster *
cluster, const char *
local_dc, size_t
local_dc_length, unsigned
used_hosts_per_remote_dc, cass_bool_t
allow_remote_dcs_for_local_cl )
Same as CassCluster::cass_cluster_set_load_balance_dc_aware
, but with lengths for string parameters.
Configures the cluster to use token-aware request routing, or not.
Default is cass_true (enabled).
This routing policy composes the base routing policy, routing requests first to replicas on nodes considered ‘local’ by the base load balancing policy.
Configures the cluster to use latency-aware request routing, or not.
Default is cass_false (disabled).
This routing policy is a top-level routing policy. It uses the base routing policy to determine locality (dc-aware) and/or placement (token-aware) before considering the latency.
void
cass_cluster_set_latency_aware_routing_settings
(CassCluster *
cluster, cass_double_t
exclusion_threshold, cass_uint64_t
scale_ms, cass_uint64_t
retry_period_ms, cass_uint64_t
update_rate_ms, cass_uint64_t
min_measured )
Configures the settings for latency-aware request routing.
Defaults:
- exclusion_threshold: 2.0
- scale_ms: 100 milliseconds
- retry_period_ms: 10,000 milliseconds (10 seconds)
- update_rate_ms: 100 milliseconds
- min_measured: 50
Enable/Disable Nagel’s algorithm on connections.
Default: cass_false (disabled).
void
cass_cluster_set_tcp_keepalive
(CassCluster *
cluster, cass_bool_t
enabled, unsigned
delay_secs )
Enable/Disable TCP keep-alive
Default: cass_false (disabled).