All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Data Fields | Private Attributes
as_cluster Struct Reference

Detailed Description

Cluster of server nodes.

Definition at line 101 of file as_cluster.h.

#include "as_cluster.h"

+ Collaboration diagram for as_cluster:

Data Fields

as_cluster_event_callback event_callback
 
void * event_callback_udata
 
as_event_stateevent_state
 

Private Attributes

uint32_t async_max_conns_per_node
 
uint32_t async_min_conns_per_node
 
bool auth_enabled
 
as_auth_mode auth_mode
 
char * cluster_name
 
uint32_t conn_pools_per_node
 
uint32_t conn_timeout_ms
 
uint32_t error_rate_window
 
bool fail_if_not_connected
 
as_vectorgc
 
bool has_partition_query
 
uint32_t invalid_node_count
 
as_vectorip_map
 
uint32_t login_timeout_ms
 
uint32_t max_conns_per_node
 
uint32_t max_error_rate
 
uint64_t max_socket_idle_ns_tran
 
uint64_t max_socket_idle_ns_trim
 
uint32_t min_conns_per_node
 
uint16_t n_partitions
 
uint32_t node_index
 
as_nodesnodes
 
as_partition_tables partition_tables
 
char * password
 
char * password_hash
 
uint32_t pipe_max_conns_per_node
 
bool rack_aware
 
int * rack_ids
 
uint32_t rack_ids_size
 
pthread_mutex_t seed_lock
 
as_vectorseeds
 
struct as_shm_info_s * shm_info
 
pthread_cond_t tend_cond
 
uint32_t tend_count
 
uint32_t tend_interval
 
pthread_mutex_t tend_lock
 
pthread_t tend_thread
 
int tend_thread_cpu
 
as_thread_pool thread_pool
 
as_tls_contexttls_ctx
 
bool use_services_alternate
 
char * user
 
volatile bool valid
 

Field Documentation

uint32_t as_cluster::async_max_conns_per_node
private

Maximum async (non-pipeline) connections per node.

Definition at line 291 of file as_cluster.h.

uint32_t as_cluster::async_min_conns_per_node
private

Minimum async connections per node.

Definition at line 285 of file as_cluster.h.

bool as_cluster::auth_enabled
private

Is authentication enabled

Definition at line 363 of file as_cluster.h.

as_auth_mode as_cluster::auth_mode
private

Authentication mode.

Definition at line 339 of file as_cluster.h.

char* as_cluster::cluster_name
private

Expected cluster name for all nodes. May be null.

Definition at line 148 of file as_cluster.h.

uint32_t as_cluster::conn_pools_per_node
private

Number of synchronous connection pools used for each node.

Definition at line 303 of file as_cluster.h.

uint32_t as_cluster::conn_timeout_ms
private

Initial connection timeout in milliseconds.

Definition at line 309 of file as_cluster.h.

uint32_t as_cluster::error_rate_window
private

Number of tend iterations defining window for max_error_rate.

Definition at line 255 of file as_cluster.h.

as_cluster_event_callback as_cluster::event_callback

Cluster event function that will be called when nodes are added/removed from the cluster.

Definition at line 153 of file as_cluster.h.

void* as_cluster::event_callback_udata

Cluster event user data that will be passed back to event_callback.

Definition at line 158 of file as_cluster.h.

as_event_state* as_cluster::event_state

Cluster state for all event loops.

Definition at line 163 of file as_cluster.h.

bool as_cluster::fail_if_not_connected
private

Fail on cluster init if seed node and all peers are not reachable.

Definition at line 375 of file as_cluster.h.

as_vector* as_cluster::gc
private

Nodes to be garbage collected.

Definition at line 118 of file as_cluster.h.

bool as_cluster::has_partition_query
private

Does cluster support partition queries.

Definition at line 369 of file as_cluster.h.

uint32_t as_cluster::invalid_node_count
private

Count of add node failures in the most recent cluster tend iteration.

Definition at line 327 of file as_cluster.h.

as_vector* as_cluster::ip_map
private

A IP translation table is used in cases where different clients use different server IP addresses. This may be necessary when using clients from both inside and outside a local area network. Default is no translation.

The key is the IP address returned from friend info requests to other servers. The value is the real IP address used to connect to the server.

Definition at line 180 of file as_cluster.h.

uint32_t as_cluster::login_timeout_ms
private

Node login timeout in milliseconds.

Definition at line 315 of file as_cluster.h.

uint32_t as_cluster::max_conns_per_node
private

Maximum sync connections per node.

Definition at line 279 of file as_cluster.h.

uint32_t as_cluster::max_error_rate
private

Max errors per node per error_rate_window.

Definition at line 249 of file as_cluster.h.

uint64_t as_cluster::max_socket_idle_ns_tran
private

Maximum socket idle to validate connections in transactions.

Definition at line 225 of file as_cluster.h.

uint64_t as_cluster::max_socket_idle_ns_trim
private

Maximum socket idle to trim peak connections to min connections.

Definition at line 231 of file as_cluster.h.

uint32_t as_cluster::min_conns_per_node
private

Minimum sync connections per node.

Definition at line 273 of file as_cluster.h.

uint16_t as_cluster::n_partitions
private

Total number of data partitions used by cluster.

Definition at line 345 of file as_cluster.h.

uint32_t as_cluster::node_index
private

Random node index.

Definition at line 321 of file as_cluster.h.

as_nodes* as_cluster::nodes
private

Active nodes in cluster.

Definition at line 106 of file as_cluster.h.

as_partition_tables as_cluster::partition_tables
private

Hints for best node for a partition.

Definition at line 112 of file as_cluster.h.

char* as_cluster::password
private

Password in clear text.

Definition at line 136 of file as_cluster.h.

char* as_cluster::password_hash
private

Password in hashed format.

Definition at line 142 of file as_cluster.h.

uint32_t as_cluster::pipe_max_conns_per_node
private

Maximum pipeline connections per node.

Definition at line 297 of file as_cluster.h.

bool as_cluster::rack_aware
private

Request server rack ids.

Definition at line 357 of file as_cluster.h.

int* as_cluster::rack_ids
private

Rack ids

Definition at line 237 of file as_cluster.h.

uint32_t as_cluster::rack_ids_size
private

Rack ids size

Definition at line 243 of file as_cluster.h.

pthread_mutex_t as_cluster::seed_lock
private

Lock for adding/removing seeds.

Definition at line 204 of file as_cluster.h.

as_vector* as_cluster::seeds
private

Initial seed hosts specified by user.

Definition at line 169 of file as_cluster.h.

struct as_shm_info_s* as_cluster::shm_info
private

Shared memory implementation of cluster.

Definition at line 124 of file as_cluster.h.

pthread_cond_t as_cluster::tend_cond
private

Tend thread identifier to be used with tend_lock.

Definition at line 219 of file as_cluster.h.

uint32_t as_cluster::tend_count
private

Cluster tend counter.

Definition at line 267 of file as_cluster.h.

uint32_t as_cluster::tend_interval
private

Milliseconds between cluster tends.

Definition at line 261 of file as_cluster.h.

pthread_mutex_t as_cluster::tend_lock
private

Lock for the tend thread to wait on with the tend interval as timeout. Normally locked, resulting in waiting a full interval between tend iterations. Upon cluster shutdown, unlocked by the main thread, allowing a fast termination of the tend thread.

Definition at line 213 of file as_cluster.h.

pthread_t as_cluster::tend_thread
private

Cluster tend thread.

Definition at line 198 of file as_cluster.h.

int as_cluster::tend_thread_cpu
private

Assign tend thread to this specific CPU ID.

Definition at line 333 of file as_cluster.h.

as_thread_pool as_cluster::thread_pool
private

Pool of threads used to query server nodes in parallel for batch, scan and query.

Definition at line 192 of file as_cluster.h.

as_tls_context* as_cluster::tls_ctx
private

TLS parameters

Definition at line 186 of file as_cluster.h.

bool as_cluster::use_services_alternate
private

If "services-alternate" should be used instead of "services"

Definition at line 351 of file as_cluster.h.

char* as_cluster::user
private

User name in UTF-8 encoded bytes.

Definition at line 130 of file as_cluster.h.

volatile bool as_cluster::valid
private

Should continue to tend cluster.

Definition at line 381 of file as_cluster.h.


The documentation for this struct was generated from the following file: