CUBRID Engine  latest
broker_shm.h
Go to the documentation of this file.
1 /*
2  * Copyright 2008 Search Solution Corporation
3  * Copyright 2016 CUBRID Corporation
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 
19 /*
20  * broker_shm.h -
21  */
22 
23 #ifndef _BROKER_SHM_H_
24 #define _BROKER_SHM_H_
25 
26 #ident "$Id$"
27 
28 #include <sys/types.h>
29 #if defined(WINDOWS)
30 #include <winsock2.h>
31 #include <windows.h>
32 #else
33 #include <semaphore.h>
34 #endif
35 
36 #include "porting.h"
37 #include "broker_env_def.h"
38 #include "broker_config.h"
39 #include "broker_max_heap.h"
40 #include "cas_protocol.h"
41 
42 #define STATE_KEEP_TRUE 1
43 #define STATE_KEEP_FALSE 0
44 
45 #define UTS_STATUS_BUSY 1
46 #define UTS_STATUS_IDLE 0
47 #define UTS_STATUS_RESTART 2
48 #define UTS_STATUS_START 3
49 #if defined(WINDOWS)
50 #define UTS_STATUS_BUSY_WAIT 4
51 #endif
52 #define UTS_STATUS_CON_WAIT 5
53 #define UTS_STATUS_STOP 6
54 
55 #define PROXY_STATUS_BUSY 1
56 #define PROXY_STATUS_RESTART 2
57 #define PROXY_STATUS_START 3
58 
59 #define MAX_NUM_UTS_ADMIN 10
60 
61 #define DEFAULT_SHM_KEY 0x3f5d1c0a
62 
63 #define SHM_APPL_SERVER 0
64 #define SHM_BROKER 1
65 #define SHM_PROXY 2
66 
67 /* definition for mutex variable */
68 #define SHM_MUTEX_BROKER 0
69 #define SHM_MUTEX_ADMIN 1
70 
71 /* con_status lock/unlock */
72 #define CON_STATUS_LOCK_BROKER 0
73 #define CON_STATUS_LOCK_CAS 1
74 #if defined(WINDOWS)
75 #define CON_STATUS_LOCK_INIT(AS_INFO) \
76  do { \
77  (AS_INFO)->con_status_lock[CON_STATUS_LOCK_BROKER] = FALSE; \
78  (AS_INFO)->con_status_lock[CON_STATUS_LOCK_CAS] = FALSE; \
79  (AS_INFO)->con_status_lock_turn = CON_STATUS_LOCK_BROKER; \
80  } \
81  while (0)
82 
83 #define CON_STATUS_LOCK_DESTROY(AS_INFO)
84 
85 #define CON_STATUS_LOCK(AS_INFO, LOCK_OWNER) \
86  do { \
87  int LOCK_WAITER = (LOCK_OWNER == CON_STATUS_LOCK_BROKER) ? CON_STATUS_LOCK_CAS : CON_STATUS_LOCK_BROKER; \
88  (AS_INFO)->con_status_lock[LOCK_OWNER] = TRUE; \
89  (AS_INFO)->con_status_lock_turn = LOCK_WAITER; \
90  while (((AS_INFO)->con_status_lock[LOCK_WAITER] == TRUE) && \
91  ((AS_INFO)->con_status_lock_turn == LOCK_WAITER)) \
92  { \
93  SLEEP_MILISEC(0, 10); \
94  } \
95  } while (0)
96 
97 #define CON_STATUS_UNLOCK(AS_INFO, LOCK_OWNER) \
98  (AS_INFO)->con_status_lock[LOCK_OWNER] = FALSE
99 #else /* WINDOWS */
100 #define CON_STATUS_LOCK_INIT(AS_INFO) \
101  uw_sem_init (&((AS_INFO)->con_status_sem));
102 
103 #define CON_STATUS_LOCK_DESTROY(AS_INFO) \
104  uw_sem_destroy (&((AS_INFO)->con_status_sem));
105 
106 #define CON_STATUS_LOCK(AS_INFO, LOCK_OWNER) \
107  uw_sem_wait (&(AS_INFO)->con_status_sem);
108 
109 #define CON_STATUS_UNLOCK(AS_INFO, LOCK_OWNER) \
110  uw_sem_post (&(AS_INFO)->con_status_sem);
111 #endif /* WINDOWS */
112 #define SHM_LOG_MSG_SIZE 256
113 
114 #define APPL_NAME_LENGTH 128
115 
116 #define JOB_QUEUE_MAX_SIZE 2048
117 
118 #define MAX_CRYPT_STR_LENGTH 32
119 
120 #define APPL_SERVER_NAME_MAX_SIZE 32
121 
122 #define CAS_LOG_RESET_REOPEN 0x01
123 #define CAS_LOG_RESET_REMOVE 0x02
124 #define PROXY_LOG_RESET_REOPEN 0x01
125 
126 #define MAX_DBNAME_LENGTH (64) /* maximum length of mysql database name and '\0' */
127 #define MAX_CONN_INFO_LENGTH ((CUB_MAXHOSTNAMELEN + 1) * 2) /* host1:host2 */
128 
129 #define IP_BYTE_COUNT 5
130 #define ACL_MAX_ITEM_COUNT 50
131 #define ACL_MAX_IP_COUNT 256
132 #define ACL_MAX_DBNAME_LENGTH (SRV_CON_DBNAME_SIZE)
133 #define ACL_MAX_DBUSER_LENGTH (SRV_CON_DBUSER_SIZE)
134 
135 #define MAX_PROXY_NUM 8
136 
137 #define APPL_SERVER_NUM_LIMIT 4096
138 
139 #define SHM_BROKER_PATH_MAX (PATH_MAX)
140 #define SHM_PROXY_NAME_MAX (SHM_BROKER_PATH_MAX)
141 #define SHM_APPL_SERVER_NAME_MAX (SHM_BROKER_PATH_MAX)
142 
143 #define MAX_SHARD_USER (4)
144 #define MAX_SHARD_KEY (2)
145 #define MAX_SHARD_CONN (256)
146 
147 #define SHARD_KEY_COLUMN_LEN (32)
148 #define SHARD_KEY_RANGE_MAX (256)
149 
150 #define UNUSABLE_DATABASE_MAX (200)
151 #define PAIR_LIST (2)
152 
153 /*
154  * proxy need to reserve FD for
155  * broker, cas, log etc..
156  */
157 #if defined(LINUX)
158 #define PROXY_RESERVED_FD (256)
159 #else /* LINUX */
160 #define PROXY_RESERVED_FD (128)
161 #endif /* !LINUX */
162 
163 #define MAX_QUERY_TIMEOUT_LIMIT 86400 /* seconds; 1 day */
164 #define LONG_QUERY_TIME_LIMIT (MAX_QUERY_TIMEOUT_LIMIT)
165 #define LONG_TRANSACTION_TIME_LIMIT (MAX_QUERY_TIMEOUT_LIMIT)
166 #define MAX_PROXY_TIMEOUT_LIMIT (MAX_QUERY_TIMEOUT_LIMIT)
167 
168 #if defined (WINDOWS)
169 #define MAKE_ACL_SEM_NAME(BUF, BROKER_NAME) \
170  snprintf(BUF, BROKER_NAME_LEN, "%s_acl_sem", BROKER_NAME)
171 #endif
172 
173 #define MIN_MYSQL_KEEPALIVE_INTERVAL 60 /* 60s */
174 
175 #define SEQ_NUMBER 1
176 #define MAGIC_NUMBER (MAJOR_VERSION * 1000000 + MINOR_VERSION * 10000 + SEQ_NUMBER)
177 
178 typedef enum
179 {
185 
187 {
192 };
194 
195 #if defined(WINDOWS)
196 typedef INT64 int64_t;
197 #endif
198 
199 typedef struct ip_info IP_INFO;
200 struct ip_info
201 {
204  int num_list;
205 };
206 
207 typedef struct access_list ACCESS_INFO;
209 {
212  char ip_files[LINE_MAX + 1]; /* reserve buffer for '\0' */
214 };
215 
218 {
220  char db_host[MAX_CONN_INFO_LENGTH];
221  char db_user[SRV_CON_DBUSER_SIZE];
222  char db_password[SRV_CON_DBPASSWD_SIZE];
223 };
224 
225 /* NOTE: Be sure not to include any pointer type in shared memory segment
226  * since the processes will not care where the shared memory segment is
227  * attached
228  */
229 
230 /* SHARD USER */
231 typedef struct t_shard_user T_SHARD_USER;
233 {
235  char db_user[SRV_CON_DBUSER_SIZE];
236  char db_password[SRV_CON_DBPASSWD_SIZE];
237 };
238 
241 {
243  T_SHARD_USER shard_user[1];
244 };
245 
246 /* SHARD KEY */
249 {
252 
253  int min;
254  int max;
255  int shard_id;
256 };
257 
258 typedef struct t_shard_key T_SHARD_KEY;
260 {
261  char key_column[SHARD_KEY_COLUMN_LEN];
264 };
265 
268 {
271 };
272 
273 /* SHARD CONN */
274 typedef struct t_shard_conn T_SHARD_CONN;
276 {
277  int shard_id;
279  char db_conn_info[MAX_CONN_INFO_LENGTH];
280 };
281 
284 {
287 };
288 
289 /* appl_server information */
292 {
293  int num_request; /* number of request */
294  int pid; /* the process id */
295  int psize;
296  time_t psize_time;
302  char uts_status; /* flag whether the uts is busy or idle */
304  char driver_info[SRV_CON_CLIENT_INFO_SIZE];
305  char driver_version[SRV_CON_VER_STR_MAX_SIZE];
314 #if defined(WINDOWS)
315  char close_flag;
316 #endif
317  time_t last_access_time; /* last access time */
319  time_t claimed_alive_time; /* to check if the cas hangs */
320 #ifdef UNIXWARE711
321  int clt_sock_fd;
322 #endif
323  unsigned char cas_clt_ip[4];
324  unsigned short cas_clt_port;
325 #if defined(WINDOWS)
326  int as_port;
327  int pdh_pid;
328  int pdh_workset;
329  float pdh_pct_cpu;
330  int cpu_time;
331 #endif
332  char clt_appl_name[APPL_NAME_LENGTH];
333  char clt_req_path_info[APPL_NAME_LENGTH];
334  char mutex_flag[2]; /* for mutex */
336 #if defined (WINDOWS)
337  char con_status_lock[2];
338  char con_status_lock_turn;
339 #else
341 #endif
342  char log_msg[SHM_LOG_MSG_SIZE];
353  char database_host[CUB_MAXHOSTNAMELEN];
363 
368 
372 
373  short proxy_id;
374  short shard_id;
376  short as_id;
377  unsigned int session_id;
379 
380  int advance_activate_flag; /* it is used only in shard */
381  int proxy_conn_wait_timeout; /* it is used only in shard */
382  bool force_reconnect; /* it is used only in shard */
383 };
384 
387 {
388  int client_id; /* client id */
389  int client_ip; /* client ip address */
390  time_t connect_time; /* first connect time */
391  char driver_info[SRV_CON_CLIENT_INFO_SIZE];
392  char driver_version[SRV_CON_VER_STR_MAX_SIZE];
393 
394  int func_code; /* current request function code */
395 
396  /* SHARD TODO : not implemented yet */
397 #if 0
398  int shard_id; /* scheduled shard id */
399  int cas_id; /* scheduled cas id */
400 #endif
401 
402  time_t req_time; /* current request receive from client time */
403  time_t res_time; /* current response receive from cas time */
404 
405  /* TODO : MORE STATISTICS INFOMATION per Client INT64 num_queries_processed; INT64 num_error_queries; */
408 };
409 
410 typedef struct t_shard_info T_SHARD_INFO;
412 {
413  int shard_id;
414 
418 
419  /* shard queue stat */
421 
423 };
424 
427 {
428  int shard_id;
429 
433 };
434 
437 {
438  int min;
439  int max;
440  int shard_id;
441 
443 };
444 
447 {
449 
451 };
452 
453 /* NOTICE :
454  * If you want to add struct member,
455  * you must modify shard_shm_get_shard_info_offset too.
456  */
457 typedef struct t_proxy_info T_PROXY_INFO;
459 {
460  int proxy_id;
461  int pid;
462  int service_flag; /* SERVICE_OFF | SERVICE_ON */
463  int status; /* SHARD TODO : not defined yet */
469 
470  char appl_server; /* APPL_SERVER_CAS | APPL_SERVER_CAS_MYSQL | APPL_SERVER_CAS_ORACLE */
471 
472  /* MOVE FROM T_APPL_SERVER_INFO */
473 #if defined(WINDOWS)
474  int proxy_port;
475 #else
476  int dummy; /* for align */
477 #endif
478 
481 
484 
487 
488  char port_name[SHM_PROXY_NAME_MAX];
490 
491  /* MOVE FROM T_BROKER_INFO */
492  char access_log_file[CONF_LOG_FILE_LEN];
493 
494  /* statistics information */
500 
502 
505 
509 
510  /* hang check info */
512 
513  int num_shard_key; /* size : T_SHM_SHARD_KEY->num_shard_key */
514  int num_shard_conn; /* size : T_SHM_SHARD_CONN->num_shard_conn */
515 
519 
522 };
523 
524 typedef struct t_shm_proxy T_SHM_PROXY;
526 {
527 #ifdef USE_MUTEX
528  int lock;
529 #endif /* USE_MUTEX */
530  int magic;
531 
535 
536  /* SHARD SHARD_KEY_ID */
538  char shard_key_library_name[SHM_PROXY_NAME_MAX];
539  char shard_key_function_name[SHM_PROXY_NAME_MAX];
540 
544 
546 };
547 
548 /* database server */
549 typedef struct t_db_server T_DB_SERVER;
551 {
553  char database_host[CUB_MAXHOSTNAMELEN];
554  int state;
555 };
556 
559 {
566  char sql_log2;
578  int max_num_delayed_hosts_lookup; /* max num of HA delayed hosts to lookup */
579  char trigger_action_flag; /* enable or disable trigger action */
580 
581 #if defined(WINDOWS)
582  int as_port;
583  int use_pdh_flag;
584 #endif
585  char log_dir[CONF_LOG_FILE_LEN];
586  char slow_log_dir[CONF_LOG_FILE_LEN];
587  char err_log_dir[CONF_LOG_FILE_LEN];
589  char appl_server_name[APPL_SERVER_NAME_MAX_SIZE];
590  char preferred_hosts[SHM_APPL_SERVER_NAME_MAX];
591 
592  char access_log_file[CONF_LOG_FILE_LEN];
593  char db_connection_file[BROKER_INFO_PATH_MAX];
594  unsigned char local_ip_addr[4];
595 
596  /* from br_info */
597  /* from here, these are used only in shard */
598  char source_env[CONF_LOG_FILE_LEN];
599  char error_log_file[CONF_LOG_FILE_LEN];
600  char proxy_log_dir[CONF_LOG_FILE_LEN];
601  char port_name[SHM_APPL_SERVER_NAME_MAX];
604  /* to here, these are used only in shard */
605 
606 #ifdef USE_MUTEX
607  int lock;
608 #endif /* USE_MUTEX */
609  int magic;
621  int long_query_time; /* msec */
622  int long_transaction_time; /* msec */
625  int acl_chn;
626  int cas_rctime; /* sec */
627  int unusable_databases_cnt[PAIR_LIST];
631 #if !defined(WINDOWS)
632  sem_t acl_sem;
633 #endif
634 
636 
638 
639  T_SHARD_CONN_INFO shard_conn_info[SHARD_INFO_SIZE_LIMIT]; /* it is used only in shard */
640 
642 
644 };
645 
646 /* shared memory information */
647 typedef struct t_shm_broker T_SHM_BROKER;
649 {
650 #ifdef USE_MUTEX
651  int lock; /* shared variable for mutual excl */
652 #endif /* USE_MUTEX */
653  int magic; /* the magic number */
654  unsigned char my_ip_addr[4];
655 #if !defined(WINDOWS)
656  uid_t owner_uid;
657 #endif /* !WINDOWS */
658  int num_broker; /* number of broker */
659  char access_control_file[SHM_BROKER_PATH_MAX];
661  T_BROKER_INFO br_info[1];
662 };
663 
665 {
668 };
669 typedef enum t_shm_mode T_SHM_MODE;
670 
671 void *uw_shm_open (int shm_key, int which_shm, T_SHM_MODE shm_mode);
672 void *uw_shm_create (int shm_key, int size, int which_shm);
673 int uw_shm_destroy (int shm_key);
674 void uw_shm_detach (void *);
675 #if defined(WINDOWS)
676 int uw_shm_get_magic_number ();
677 #endif
678 
679 #if defined(WINDOWS)
680 int uw_sem_init (char *sem_name);
681 int uw_sem_wait (char *sem_name);
682 int uw_sem_post (char *sem_name);
683 int uw_sem_destroy (char *sem_name);
684 #else
685 int uw_sem_init (sem_t * sem_t);
686 int uw_sem_wait (sem_t * sem_t);
687 int uw_sem_post (sem_t * sem_t);
688 int uw_sem_destroy (sem_t * sem_t);
689 #endif
690 T_SHM_BROKER *broker_shm_initialize_shm_broker (int master_shm_id, T_BROKER_INFO * br_info, int br_num, int acl_flag,
691  char *acl_file);
693 
694 #endif /* _BROKER_SHM_H_ */
INT64 num_long_transactions
Definition: broker_shm.h:347
unsigned char address_list[ACL_MAX_IP_COUNT *IP_BYTE_COUNT]
Definition: broker_shm.h:202
void * uw_shm_open(int shm_key, int which_shm, T_SHM_MODE shm_mode)
Definition: broker_shm.c:139
#define UNUSABLE_DATABASE_MAX
Definition: broker_shm.h:150
static char * dbuser
int num_shard_key
Definition: broker_shm.h:513
int uw_sem_destroy(sem_t *sem_t)
Definition: broker_shm.c:919
#define SRV_CON_CLIENT_INFO_SIZE
Definition: cas_protocol.h:34
#define SHM_APPL_SERVER_NAME_MAX
Definition: broker_shm.h:141
int max_prepared_stmt_count
Definition: broker_shm.h:623
#define SHM_LOG_MSG_SIZE
Definition: broker_shm.h:112
void uw_shm_detach(void *)
Definition: broker_shm.c:700
enum t_con_status T_CON_STATUS
Definition: broker_shm.h:193
INT64 num_no_hint_queries_requested
Definition: broker_shm.h:432
char ignore_shard_hint
Definition: broker_shm.h:483
#define ACL_MAX_IP_COUNT
Definition: broker_shm.h:131
INT64 num_hint_id_queries_processed
Definition: broker_shm.h:497
#define JOB_QUEUE_MAX_SIZE
Definition: broker_shm.h:116
T_BROKER_VERSION clt_version
Definition: broker_shm.h:303
time_t last_access_time
Definition: broker_shm.h:317
char broker_name[BROKER_NAME_LEN]
Definition: cas.c:148
static T_BROKER_INFO * br_info_p
Definition: broker.c:312
int max_prepared_stmt_count
Definition: broker_shm.h:482
int num_key_range
Definition: broker_shm.h:262
static T_SHM_PROXY * shm_proxy_p
Definition: broker.c:313
IP_INFO ip_info
Definition: broker_shm.h:213
#define MAX_CONN_INFO_LENGTH
Definition: broker_shm.h:127
INT64 num_unique_error_queries
Definition: broker_shm.h:369
INT64 num_queries_processed
Definition: broker_shm.h:345
INT64 num_delete_queries
Definition: broker_shm.h:367
#define SRV_CON_DBPASSWD_SIZE
Definition: cas_protocol.h:56
ACCESS_INFO access_info[ACL_MAX_ITEM_COUNT]
Definition: broker_acl.c:39
#define CLIENT_INFO_SIZE_LIMIT
#define SHARD_CONN_STAT_SIZE_LIMIT
int max_appl_server
Definition: broker_shm.h:416
int appl_server_hard_limit
Definition: broker_shm.h:612
char jdbc_cache_only_hint
Definition: broker_shm.h:570
#define SHARD_KEY_COLUMN_LEN
Definition: broker_shm.h:147
#define SRV_CON_DBNAME_SIZE
int max_client
Definition: broker_shm.h:533
#define BROKER_INFO_PATH_MAX
#define SRV_CON_VER_STR_MAX_SIZE
Definition: cas_protocol.h:59
INT64 num_update_queries
Definition: broker_shm.h:366
char cci_default_autocommit
Definition: broker_shm.h:572
time_t connect_time
Definition: broker_shm.h:390
#define MAX_DBNAME_LENGTH
Definition: broker_shm.h:126
INT64 num_insert_queries
Definition: broker_shm.h:365
char cur_statement_pooling
Definition: broker_shm.h:313
INT64 num_connect_requests
Definition: broker_shm.h:506
int max_context
Definition: broker_shm.h:534
time_t req_time
Definition: broker_shm.h:402
#define ACL_MAX_DBNAME_LENGTH
Definition: broker_shm.h:132
int min_appl_server
Definition: broker_shm.h:415
unsigned short cas_clt_port
Definition: broker_shm.h:324
T_SHM_APPL_SERVER * broker_shm_initialize_shm_as(T_BROKER_INFO *br_info_p, T_SHM_PROXY *shm_proxy_p)
Definition: broker_shm.c:471
unsigned int unusable_databases_seq
Definition: broker_shm.h:628
T_SHM_SHARD_USER shm_shard_user
Definition: broker_shm.h:541
int mysql_keepalive_interval
Definition: broker_shm.h:616
INT64 num_hint_all_queries_processed
Definition: broker_shm.h:498
t_con_status
Definition: broker_shm.h:186
INT64 num_connect_requests
Definition: broker_shm.h:358
INT64 num_hint_err_queries_processed
Definition: broker_shm.h:499
int as_info_index_base
Definition: broker_shm.h:422
int uw_shm_destroy(int shm_key)
Definition: broker_shm.c:391
int num_shard_conn
Definition: broker_shm.h:514
int isolation_level
Definition: broker_shm.h:406
#define PAIR_LIST
Definition: broker_shm.h:151
int service_flag
Definition: broker_shm.h:462
enum t_shm_mode T_SHM_MODE
Definition: broker_shm.h:669
char cci_default_autocommit
Definition: broker_shm.h:356
INT64 stmt_waiter_count
Definition: broker_shm.h:480
#define APPL_NAME_LENGTH
Definition: broker_shm.h:114
#define SHARD_KEY_RANGE_MAX
Definition: broker_shm.h:148
#define SHARD_INFO_SIZE_LIMIT
char appl_server
Definition: broker_shm.h:470
INT64 num_restarts
Definition: broker_shm.h:508
time_t transaction_start_time
Definition: broker_shm.h:318
bool fixed_shard_user
Definition: broker_shm.h:489
int appl_server_shm_id
Definition: broker_shm.h:516
#define SHM_PROXY_NAME_MAX
Definition: broker_shm.h:140
#define BROKER_NAME_LEN
Definition: broker_config.h:87
INT64 num_connect_rejected
Definition: broker_shm.h:507
static char * dbname
#define SHARD_KEY_STAT_SIZE_LIMIT
char trigger_action_flag
Definition: broker_shm.h:579
INT64 num_transactions_processed
Definition: broker_shm.h:344
INT64 num_hint_none_queries_processed
Definition: broker_shm.h:495
uid_t owner_uid
Definition: broker_shm.h:656
INT64 num_hint_key_queries_requested
Definition: broker_shm.h:430
#define ACL_MAX_ITEM_COUNT
Definition: broker_shm.h:130
char * db_name
static char database_passwd[SRV_CON_DBPASSWD_SIZE]
Definition: cas_execute.c:389
T_SHM_SHARD_CONN shm_shard_conn
Definition: broker_shm.h:542
time_t res_time
Definition: broker_shm.h:403
unsigned int session_id
Definition: broker_shm.h:377
INT64 num_request_stmt_in_pool
Definition: broker_shm.h:504
int proxy_access_log_reset
Definition: broker_shm.h:486
#define ACL_MAX_DBUSER_LENGTH
Definition: broker_shm.h:133
int proxy_log_reset
Definition: broker_shm.h:485
#define PROXY_RESERVED_FD
Definition: broker_shm.h:160
T_SHM_BROKER * broker_shm_initialize_shm_broker(int master_shm_id, T_BROKER_INFO *br_info, int br_num, int acl_flag, char *acl_file)
Definition: broker_shm.c:416
static char database_name[MAX_HA_DBINFO_LENGTH]
Definition: cas_execute.c:387
int max_num_delayed_hosts_lookup
Definition: broker_shm.h:578
time_t last_connect_time
Definition: broker_shm.h:357
#define MAX_SHARD_KEY
Definition: broker_shm.h:144
INT64 num_request_stmt
Definition: broker_shm.h:503
bool monitor_server_flag
Definition: broker_shm.h:630
INT64 num_requests_received
Definition: broker_shm.h:343
time_t claimed_alive_time
Definition: broker_shm.h:319
INT64 waiter_count
Definition: broker_shm.h:420
t_shm_mode
Definition: broker_shm.h:664
INT64 num_hint_id_queries_requested
Definition: broker_shm.h:431
int num_list
Definition: broker_shm.h:204
#define MAX_SHARD_CONN
Definition: broker_shm.h:145
#define SRV_CON_DBUSER_SIZE
Definition: cas_protocol.h:55
T_BROKER_SERVICE_STATUS
Definition: broker_shm.h:178
void * uw_shm_create(int shm_key, int size, int which_shm)
Definition: broker_shm.c:334
#define MAX_PROXY_NUM
Definition: broker_shm.h:135
int T_BROKER_VERSION
Definition: cas_protocol.h:342
T_APPL_SERVER_INFO * as_info
Definition: cas.c:153
int shard_key_modular
Definition: broker_shm.h:537
int wait_timeout
Definition: broker_shm.h:479
int num_appl_server
Definition: broker_shm.h:417
#define CONF_LOG_FILE_LEN
Definition: broker_config.h:52
INT64 num_select_queries
Definition: broker_shm.h:364
INT64 num_proxy_error_processed
Definition: broker_shm.h:501
int uw_sem_init(sem_t *sem_t)
Definition: broker_shm.c:834
static char database_user[SRV_CON_DBUSER_SIZE]
Definition: cas_execute.c:388
#define APPL_SERVER_NAME_MAX_SIZE
Definition: broker_shm.h:120
char stripped_column_name
Definition: broker_shm.h:563
#define SHM_BROKER_PATH_MAX
Definition: broker_shm.h:139
bool access_control
Definition: broker_shm.h:660
T_SHM_SHARD_KEY shm_shard_key
Definition: broker_shm.h:543
INT64 num_hint_key_queries_processed
Definition: broker_shm.h:496
#define CUB_MAXHOSTNAMELEN
Definition: porting.h:379
time_t claimed_alive_time
Definition: broker_shm.h:511
int uw_sem_post(sem_t *sem_t)
Definition: broker_shm.c:893
time_t last_access_time[ACL_MAX_IP_COUNT]
Definition: broker_shm.h:203
#define IP_BYTE_COUNT
Definition: broker_shm.h:129
INT64 num_connect_rejected
Definition: broker_shm.h:359
int uw_sem_wait(sem_t *sem_t)
Definition: broker_shm.c:867
#define APPL_SERVER_NUM_LIMIT
Definition: broker_shm.h:137
int cur_proxy_log_mode
Definition: broker_shm.h:464