Couchbase C Client  3.0.3
Asynchronous C Client for Couchbase
vbucket.h
Go to the documentation of this file.
1 /* -*- Mode: C; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2 /*
3  * Copyright 2014-2020 Couchbase, Inc.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 #ifndef LCB_VBUCKET_H
19 #define LCB_VBUCKET_H
20 #include <libcouchbase/visibility.h>
21 #include <libcouchbase/sysdefs.h>
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
47 typedef enum {
56 /* for backward compatiblity */
57 #define LCBVB_SVCTYPE_CBAS LCBVB_SVCTYPE_ANALYTICS
58  LCBVB_SVCTYPE__MAX
60 
63 typedef enum {
66  LCBVB_SVCMODE__MAX
68 
73 typedef struct {
74  lcb_U16 data;
75  lcb_U16 mgmt;
76  lcb_U16 views;
77  lcb_U16 ixquery;
78  lcb_U16 ixadmin;
79  lcb_U16 n1ql;
80  lcb_U16 fts;
81  lcb_U16 cbas;
82  char *views_base_;
83  char *query_base_;
84  char *fts_base_;
85  char *cbas_base_;
86  char *hoststrs[LCBVB_SVCTYPE__MAX];
88 
96 typedef struct {
99  char *authority;
100  char *hostname;
101  char *viewpath;
102  char *querypath;
103  char *ftspath;
104  char *cbaspath;
105  unsigned nvbs;
106  char *alt_hostname;
109 } lcbvb_SERVER;
110 
112 typedef struct {
113  int servers[4];
114 } lcbvb_VBUCKET;
115 
117 typedef struct {
118  lcb_U32 index;
119  lcb_U32 point;
121 
124 typedef enum {
127  LCBVB_DIST_UNKNOWN = 2
129 
130 typedef enum {
131  LCBVB_CAP_XATTR = 1 << 0,
132  LCBVB_CAP_CBHELLO = 1 << 1,
133  LCBVB_CAP_CCCP = 1 << 2,
134  LCBVB_CAP_COUCHAPI = 1 << 3,
135  LCBVB_CAP_DCP = 1 << 4,
136  LCBVB_CAP_NODES_EXT = 1 << 5,
137  LCBVB_CAP_TOUCH = 1 << 6,
138  LCBVB_CAP_XDCR_CHECKPOINTING = 1 << 7,
139  LCBVB_CAP_COLLECTIONS = 1 << 8,
140  LCBVB_CAP_DURABLE_WRITE = 1 << 9
141 } lcbvb_BUCKET_CAPABILITIES;
142 
143 typedef enum {
144  LCBVB_CCAP_N1QL_ENHANCED_PREPARED_STATEMENTS = 1 << 0,
145 } lcbvb_CLUSTER_CAPABILITIES;
146 
149 typedef struct lcbvb_CONFIG_st {
151  unsigned nvb;
152  unsigned ndatasrv;
153  unsigned nsrv;
154  unsigned nrepl;
155  unsigned ncontinuum; /* number of continuum points */
156  unsigned is3x; /* whether server 3.0 config semantics are in place */
157  int revid; /* revision ID from the config (-1 if not present) */
158  char *buuid; /* bucket UUID */
159  char *bname; /* bucket name */
160  size_t bname_len; /* bucket name */
161  const char *errstr; /* last error */
162  lcbvb_SERVER *servers; /* nodes */
163  lcbvb_VBUCKET *vbuckets; /* vbucket map */
164  lcbvb_VBUCKET *ffvbuckets; /* fast-forward map */
165  lcbvb_CONTINUUM *continuum; /* ketama continuums */
166  int *randbuf; /* Used for random server selection */
167  uint64_t caps;
168  uint64_t ccaps;
169 } lcbvb_CONFIG;
170 
171 #define LCBVB_BUCKET_NAME(cfg) (cfg)->bname
172 #define LCBVB_NSERVERS(cfg) (cfg)->nsrv
173 #define LCBVB_NDATASERVERS(cfg) (cfg)->ndatasrv
174 #define LCBVB_NREPLICAS(cfg) (cfg)->nrepl
175 #define LCBVB_DISTTYPE(cfg) (cfg)->dtype
176 #define LCBVB_CAPS(cfg) (cfg)->caps
177 #define LCBVB_CCAPS(cfg) (cfg)->ccaps
178 #define LCBVB_GET_SERVER(conf, ix) ((conf)->servers + ix)
179 
193 LIBCOUCHBASE_API
195 
202 LIBCOUCHBASE_API
203 lcbvb_CONFIG *lcbvb_parse_json(const char *data);
204 
222 LIBCOUCHBASE_API
223 int lcbvb_load_json(lcbvb_CONFIG *vbc, const char *data);
224 
228 LIBCOUCHBASE_API
229 int lcbvb_load_json_ex(lcbvb_CONFIG *vbc, const char *data, const char *source, char **network);
230 
236 LIBCOUCHBASE_API
238 
244 LIBCOUCHBASE_API
245 const char *lcbvb_get_error(const lcbvb_CONFIG *vbc);
246 
257 LIBCOUCHBASE_API
258 void lcbvb_replace_host(lcbvb_CONFIG *cfg, const char *hostname);
259 
265 LIBCOUCHBASE_API
267 
278 LIBCOUCHBASE_API
279 int lcbvb_vbmaster(lcbvb_CONFIG *cfg, int vbid);
280 
294 LIBCOUCHBASE_API
295 int lcbvb_vbreplica(lcbvb_CONFIG *cfg, int vbid, unsigned ix);
296 
303 #define lcbvb_vbserver(cfg, vbid, ix) ((ix == 0) ? lcbvb_vbmaster(cfg, vbid) : lcbvb_vbreplica(cfg, vbid, ix - 1))
304 
312 #define lcbvb_nmv_remap(cfg, vbid, bad) lcbvb_nmv_remap_ex(cfg, vbid, bad, 0)
313 
329 int lcbvb_nmv_remap_ex(lcbvb_CONFIG *cfg, int vbid, int bad, int use_heuristics);
330 
342 LIBCOUCHBASE_API
343 int lcbvb_map_key(lcbvb_CONFIG *cfg, const void *key, lcb_SIZE n, int *vbid, int *srvix);
344 
354 LIBCOUCHBASE_API
355 int lcbvb_k2vb(lcbvb_CONFIG *cfg, const void *key, lcb_SIZE n);
356 
367 LIBCOUCHBASE_API
368 int lcbvb_has_vbucket(lcbvb_CONFIG *vbc, int vbid, int ix);
369 
376 LIBCOUCHBASE_API
377 unsigned lcbvb_get_nservers(const lcbvb_CONFIG *cfg);
378 
385 LIBCOUCHBASE_API
386 unsigned lcbvb_get_nreplicas(const lcbvb_CONFIG *cfg);
387 
392 LIBCOUCHBASE_API
393 unsigned lcbvb_get_nvbuckets(const lcbvb_CONFIG *cfg);
394 
400 LIBCOUCHBASE_API
402 
416 LIBCOUCHBASE_API
418 
429 LIBCOUCHBASE_API
430 unsigned lcbvb_get_port(lcbvb_CONFIG *cfg, unsigned ix, lcbvb_SVCTYPE type, lcbvb_SVCMODE mode);
431 
447 LIBCOUCHBASE_API
448 const char *lcbvb_get_hostport(lcbvb_CONFIG *cfg, unsigned ix, lcbvb_SVCTYPE type, lcbvb_SVCMODE mode);
449 
462 LIBCOUCHBASE_API
463 const char *lcbvb_get_hostname(const lcbvb_CONFIG *cfg, unsigned ix);
464 
476 LIBCOUCHBASE_API
477 const char *lcbvb_get_resturl(lcbvb_CONFIG *cfg, unsigned ix, lcbvb_SVCTYPE type, lcbvb_SVCMODE mode);
478 
484 LIBCOUCHBASE_API
486 
500 LIBCOUCHBASE_API
501 int lcbvb_get_randhost_ex(const lcbvb_CONFIG *cfg, lcbvb_SVCTYPE type, lcbvb_SVCMODE mode, int *used);
502 
504 typedef struct {
514 
516 typedef enum {
519  LCBVB_MAP_MODIFIED = 1 << 1
521  VBUCKET_CHANGE_STATUS;
522 
533 LIBCOUCHBASE_API
535 
537 LIBCOUCHBASE_API
539 
543 LIBCOUCHBASE_API
545 
560 LIBCOUCHBASE_API
561 int lcbvb_genconfig_ex(lcbvb_CONFIG *vb, const char *name, const char *uuid, const lcbvb_SERVER *servers,
562  unsigned nservers, unsigned nreplica, unsigned nvbuckets);
563 
579 LIBCOUCHBASE_API
580 int lcbvb_genconfig(lcbvb_CONFIG *vb, unsigned nservers, unsigned nreplica, unsigned nvbuckets);
581 
587 LIBCOUCHBASE_API
589 
595 LIBCOUCHBASE_API
597 
607 LIBCOUCHBASE_API
608 const char *lcbvb_get_capibase(lcbvb_CONFIG *cfg, unsigned ix, lcbvb_SVCMODE mode);
611 /*the rest of these symbols are deprecated and should not be touched by
612  * doxygen */
613 
614 typedef enum { LIBVBUCKET_SOURCE_FILE, LIBVBUCKET_SOURCE_MEMORY } vbucket_source_t;
615 
618 #define VBUCKET_DISTRIBUTION_VBUCKET LCBVB_DIST_VBUCKET
619 #define VBUCKET_DISTRIBUTION_KETAMA LCBVB_DIST_KETAMA
620 #define VBUCKET_NO_CHANGES LCBVB_NO_CHANGES
621 #define VBUCKET_SERVERS_MODIFIED LCBVB_SERVERS_MODIFIED
622 #define VBUCKET_MAP_MODIFIED LCVBVB_MAP_MODIFIED
623 
624 LIBCOUCHBASE_API int vbucket_config_parse(lcbvb_CONFIG *, vbucket_source_t, const char *);
625 LIBCOUCHBASE_API const char *vbucket_get_error_message(lcbvb_CONFIG *);
626 LIBCOUCHBASE_API lcbvb_CONFIG *vbucket_config_create(void);
627 LIBCOUCHBASE_API void vbucket_config_destroy(lcbvb_CONFIG *);
628 LIBCOUCHBASE_API int vbucket_config_get_num_replicas(lcbvb_CONFIG *);
629 LIBCOUCHBASE_API int vbucket_config_get_num_vbuckets(lcbvb_CONFIG *);
630 LIBCOUCHBASE_API int vbucket_config_get_num_servers(lcbvb_CONFIG *);
631 LIBCOUCHBASE_API const char *vbucket_config_get_server(lcbvb_CONFIG *, int);
632 LIBCOUCHBASE_API const char *vbucket_config_get_couch_api_base(lcbvb_CONFIG *, int);
633 LIBCOUCHBASE_API const char *vbucket_config_get_rest_api_server(lcbvb_CONFIG *, int);
634 LIBCOUCHBASE_API lcbvb_DISTMODE vbucket_config_get_distribution_type(lcbvb_CONFIG *);
635 LIBCOUCHBASE_API int vbucket_map(lcbvb_CONFIG *, const void *, lcb_SIZE, int *, int *);
636 LIBCOUCHBASE_API int vbucket_get_vbucket_by_key(lcbvb_CONFIG *, const void *, lcb_SIZE);
637 LIBCOUCHBASE_API int vbucket_get_master(lcbvb_CONFIG *, int);
638 LIBCOUCHBASE_API int vbucket_get_replica(lcbvb_CONFIG *, int, int);
639 LIBCOUCHBASE_API lcbvb_CONFIGDIFF *vbucket_compare(lcbvb_CONFIG *, lcbvb_CONFIG *);
640 LIBCOUCHBASE_API void vbucket_free_diff(lcbvb_CONFIGDIFF *);
641 LIBCOUCHBASE_API int vbucket_config_get_revision(lcbvb_CONFIG *);
642 LIBCOUCHBASE_API lcbvb_CHANGETYPE vbucket_what_changed(lcbvb_CONFIGDIFF *diff);
643 LIBCOUCHBASE_API int vbucket_config_generate(lcbvb_CONFIG *vb, unsigned, unsigned, unsigned);
644 
645 #ifdef __cplusplus
646 }
647 #endif
648 #endif
lcbvb_CONFIGDIFF::n_vb_changes
int n_vb_changes
How many vBuckets have had an ownership change.
Definition: vbucket.h:510
lcbvb_CONFIG::ndatasrv
unsigned ndatasrv
Number of data (memcached) servers.
Definition: vbucket.h:152
lcbvb_replace_host
void lcbvb_replace_host(lcbvb_CONFIG *cfg, const char *hostname)
Replace hostname placeholders with specific host string This function shall replace hostname placehol...
lcbvb_get_nreplicas
unsigned lcbvb_get_nreplicas(const lcbvb_CONFIG *cfg)
Get the number of replicas the bucket is configured with Note that not all replicas may necessarily b...
lcbvb_save_json
char * lcbvb_save_json(lcbvb_CONFIG *vbc)
Serialize the current config as a JSON string.
lcbvb_SERVICES::n1ql
lcb_U16 n1ql
Query port.
Definition: vbucket.h:79
lcbvb_SERVER::alt_hostname
char * alt_hostname
selected alternative hostname for the node
Definition: vbucket.h:106
lcbvb_genffmap
void lcbvb_genffmap(lcbvb_CONFIG *vb)
lcbvb_get_nvbuckets
unsigned lcbvb_get_nvbuckets(const lcbvb_CONFIG *cfg)
Get the number of vbuckets the bucket is configured with.
lcbvb_CONFIGDIFF
Structure representing changes between two configurations.
Definition: vbucket.h:504
lcbvb_SERVICES::mgmt
lcb_U16 mgmt
Port for adminsitrative operations (HTTP)
Definition: vbucket.h:75
lcbvb_destroy
void lcbvb_destroy(lcbvb_CONFIG *conf)
lcbvb_SERVER::hostname
char * hostname
Hostname for the node.
Definition: vbucket.h:100
LCBVB_MAP_MODIFIED
@ LCBVB_MAP_MODIFIED
vBuckets have been transferred
Definition: vbucket.h:519
lcbvb_vbreplica
int lcbvb_vbreplica(lcbvb_CONFIG *cfg, int vbid, unsigned ix)
LCBVB_SVCTYPE_DATA
@ LCBVB_SVCTYPE_DATA
memcached/Data port
Definition: vbucket.h:48
LCBVB_DIST_KETAMA
@ LCBVB_DIST_KETAMA
Ketama hashing ("memcached") bucket.
Definition: vbucket.h:126
lcbvb_get_distmode
lcbvb_DISTMODE lcbvb_get_distmode(const lcbvb_CONFIG *cfg)
Get the distribution mode (AKA bucket type) of the bucket.
lcbvb_map_key
int lcbvb_map_key(lcbvb_CONFIG *cfg, const void *key, lcb_SIZE n, int *vbid, int *srvix)
lcbvb_get_hostport
const char * lcbvb_get_hostport(lcbvb_CONFIG *cfg, unsigned ix, lcbvb_SVCTYPE type, lcbvb_SVCMODE mode)
Return a string for the given service This is like lcbvb_get_port but returns a string in the form of...
LCBVB_SVCTYPE_VIEWS
@ LCBVB_SVCTYPE_VIEWS
Views/CAPI port.
Definition: vbucket.h:49
LCBVB_SVCMODE_PLAIN
@ LCBVB_SVCMODE_PLAIN
Plain transport.
Definition: vbucket.h:64
lcbvb_CONFIG::ccaps
uint64_t ccaps
Cluster capabilities.
Definition: vbucket.h:168
lcbvb_SERVER::nvbs
unsigned nvbs
Total number of vbuckets the server has assigned.
Definition: vbucket.h:105
lcbvb_SERVER::svc_ssl
lcbvb_SERVICES svc_ssl
SSL Services.
Definition: vbucket.h:98
lcbvb_VBUCKET
Definition: vbucket.h:112
lcbvb_genconfig_ex
int lcbvb_genconfig_ex(lcbvb_CONFIG *vb, const char *name, const char *uuid, const lcbvb_SERVER *servers, unsigned nservers, unsigned nreplica, unsigned nvbuckets)
Generate a sample configuration.
lcbvb_CONFIG::nrepl
unsigned nrepl
Number of servers.
Definition: vbucket.h:154
lcbvb_has_vbucket
int lcbvb_has_vbucket(lcbvb_CONFIG *vbc, int vbid, int ix)
lcbvb_nmv_remap_ex
int lcbvb_nmv_remap_ex(lcbvb_CONFIG *cfg, int vbid, int bad, int use_heuristics)
LCBVB_NO_CHANGES
@ LCBVB_NO_CHANGES
No changes between configs.
Definition: vbucket.h:517
lcbvb_SERVICES::ixadmin
lcb_U16 ixadmin
Indexing admin port (HTTP)
Definition: vbucket.h:78
lcbvb_CONFIG::nvb
unsigned nvb
Number of vbuckets.
Definition: vbucket.h:151
lcbvb_SERVER::svc
lcbvb_SERVICES svc
Plain services.
Definition: vbucket.h:97
lcbvb_SERVER::viewpath
char * viewpath
Path prefix for view queries.
Definition: vbucket.h:101
lcbvb_DISTMODE
lcbvb_DISTMODE
Type of algorithm used to distribute keys.
Definition: vbucket.h:124
lcbvb_CONFIG::caps
uint64_t caps
Bucket capabilities.
Definition: vbucket.h:167
lcbvb_CONFIGDIFF::servers_added
char ** servers_added
List of strings of servers added (via host:data_port)
Definition: vbucket.h:506
lcbvb_SERVICES::ixquery
lcb_U16 ixquery
Indexing query port.
Definition: vbucket.h:77
lcbvb_get_capibase
const char * lcbvb_get_capibase(lcbvb_CONFIG *cfg, unsigned ix, lcbvb_SVCMODE mode)
lcbvb_parse_json
lcbvb_CONFIG * lcbvb_parse_json(const char *data)
LCBVB_SVCMODE_SSL
@ LCBVB_SVCMODE_SSL
SSL Transport.
Definition: vbucket.h:65
LCBVB_SVCTYPE_IXQUERY
@ LCBVB_SVCTYPE_IXQUERY
Index query.
Definition: vbucket.h:51
lcbvb_create
lcbvb_CONFIG * lcbvb_create(void)
Allocate a new config This can be used to create new config object and load it with a JSON config,...
LCBVB_DIST_VBUCKET
@ LCBVB_DIST_VBUCKET
vBucket hashing ("couchbase") bucket
Definition: vbucket.h:125
LCBVB_SVCTYPE_IXADMIN
@ LCBVB_SVCTYPE_IXADMIN
Index administration.
Definition: vbucket.h:52
lcbvb_get_port
unsigned lcbvb_get_port(lcbvb_CONFIG *cfg, unsigned ix, lcbvb_SVCTYPE type, lcbvb_SVCMODE mode)
Gets the port associated with a given service of a given mode on a given server.
lcbvb_get_randhost_ex
int lcbvb_get_randhost_ex(const lcbvb_CONFIG *cfg, lcbvb_SVCTYPE type, lcbvb_SVCMODE mode, int *used)
Get random node, excluding nodes already tried.
lcbvb_SERVER::cbaspath
char * cbaspath
Path prefix for analytics queries.
Definition: vbucket.h:104
lcbvb_get_changetype
lcbvb_CHANGETYPE lcbvb_get_changetype(lcbvb_CONFIGDIFF *diff)
Get a quick summary of the changes in the passed object.
lcbvb_SERVER::querypath
char * querypath
Path prefix for n1ql queries.
Definition: vbucket.h:102
lcbvb_CONFIGDIFF::sequence_changed
int sequence_changed
Whether the ordering of the nodes has changed as well.
Definition: vbucket.h:512
lcbvb_get_hostname
const char * lcbvb_get_hostname(const lcbvb_CONFIG *cfg, unsigned ix)
Get the hostname of a given server index. This may be used if all nodes reside on different hostnames...
lcbvb_make_ketama
void lcbvb_make_ketama(lcbvb_CONFIG *vb)
lcbvb_SERVER::ftspath
char * ftspath
Path prefix for fulltext queries.
Definition: vbucket.h:103
lcbvb_vbmaster
int lcbvb_vbmaster(lcbvb_CONFIG *cfg, int vbid)
lcbvb_SERVER::alt_svc
lcbvb_SERVICES alt_svc
selected alternative plain services
Definition: vbucket.h:107
LCBVB_SVCTYPE_SEARCH
@ LCBVB_SVCTYPE_SEARCH
Fulltext.
Definition: vbucket.h:54
lcbvb_CONFIG::dtype
lcbvb_DISTMODE dtype
Type of bucket/distribution.
Definition: vbucket.h:150
lcbvb_SERVICES::query_base_
char * query_base_
N1QL base URL.
Definition: vbucket.h:83
lcbvb_SVCTYPE
lcbvb_SVCTYPE
This enum functions as a 'key' to indicate a specific service offered by a node.
Definition: vbucket.h:47
lcbvb_compare
lcbvb_CONFIGDIFF * lcbvb_compare(lcbvb_CONFIG *from, lcbvb_CONFIG *to)
Compare two configurations and return information on the changes.
lcbvb_load_json
int lcbvb_load_json(lcbvb_CONFIG *vbc, const char *data)
lcbvb_load_json_ex
int lcbvb_load_json_ex(lcbvb_CONFIG *vbc, const char *data, const char *source, char **network)
lcbvb_genconfig
int lcbvb_genconfig(lcbvb_CONFIG *vb, unsigned nservers, unsigned nreplica, unsigned nvbuckets)
Generate a sample configuration used for testing.
lcbvb_CONFIGDIFF::servers_removed
char ** servers_removed
List of strings of servers removed (via host:data_port)
Definition: vbucket.h:508
lcbvb_SERVER::alt_svc_ssl
lcbvb_SERVICES alt_svc_ssl
selected alternative SSL Services
Definition: vbucket.h:108
lcbvb_SERVICES::fts
lcb_U16 fts
CBFT.
Definition: vbucket.h:80
lcbvb_get_error
const char * lcbvb_get_error(const lcbvb_CONFIG *vbc)
Return a string indicating why parsing the configuration failed.
lcbvb_SERVICES::data
lcb_U16 data
Data port for key-value operations (memcached protocol)
Definition: vbucket.h:74
lcbvb_SERVICES
Services which may be provided by a node.
Definition: vbucket.h:73
LCBVB_SVCTYPE_QUERY
@ LCBVB_SVCTYPE_QUERY
N1QL Query.
Definition: vbucket.h:53
LCBVB_DIST_UNKNOWN
@ LCBVB_DIST_UNKNOWN
Unknown distribution (cluster config)
Definition: vbucket.h:127
lcbvb_get_nservers
unsigned lcbvb_get_nservers(const lcbvb_CONFIG *cfg)
Get the number of servers in the bucket. Note that not all servers may actually be available.
lcbvb_get_revision
int lcbvb_get_revision(const lcbvb_CONFIG *cfg)
Get the revision for this configuration.
lcbvb_CONFIG
Structure containing the configuration.
Definition: vbucket.h:149
LCBVB_SVCTYPE_MGMT
@ LCBVB_SVCTYPE_MGMT
Administrative/'REST' UI.
Definition: vbucket.h:50
lcbvb_SERVICES::views_base_
char * views_base_
Views base URL.
Definition: vbucket.h:82
lcbvb_CONTINUUM
Definition: vbucket.h:117
lcbvb_SERVICES::views
lcb_U16 views
Port for view queries (HTTP)
Definition: vbucket.h:76
lcbvb_SERVER::authority
char * authority
host:dataport for comparison
Definition: vbucket.h:99
lcbvb_SERVICES::cbas
lcb_U16 cbas
CBAS (Analytics)
Definition: vbucket.h:81
lcbvb_get_resturl
const char * lcbvb_get_resturl(lcbvb_CONFIG *cfg, unsigned ix, lcbvb_SVCTYPE type, lcbvb_SVCMODE mode)
Function to return the URL prefix for a REST service.
lcbvb_free_diff
void lcbvb_free_diff(lcbvb_CONFIGDIFF *diff)
Free the structure returned by lcbvb_compare()
LCBVB_SERVERS_MODIFIED
@ LCBVB_SERVERS_MODIFIED
Servers have been added or removed.
Definition: vbucket.h:518
lcbvb_k2vb
int lcbvb_k2vb(lcbvb_CONFIG *cfg, const void *key, lcb_SIZE n)
lcbvb_CHANGETYPE
lcbvb_CHANGETYPE
Convenience enum to determine the mode of change.
Definition: vbucket.h:516
LCBVB_SVCTYPE_ANALYTICS
@ LCBVB_SVCTYPE_ANALYTICS
Analytics Query.
Definition: vbucket.h:55
lcbvb_get_randhost
int lcbvb_get_randhost(const lcbvb_CONFIG *cfg, lcbvb_SVCTYPE type, lcbvb_SVCMODE mode)
Convenience function to select a random node for a service.
lcbvb_SERVER
Node in the cluster This structure represents a node in the cluster. The node has a hostname (hostnam...
Definition: vbucket.h:96
lcbvb_SVCMODE
lcbvb_SVCMODE
This enum functions to indicate the 'mode' of the service.
Definition: vbucket.h:63