23 #ifndef _BROKER_SHM_H_ 24 #define _BROKER_SHM_H_ 28 #include <sys/types.h> 33 #include <semaphore.h> 42 #define STATE_KEEP_TRUE 1 43 #define STATE_KEEP_FALSE 0 45 #define UTS_STATUS_BUSY 1 46 #define UTS_STATUS_IDLE 0 47 #define UTS_STATUS_RESTART 2 48 #define UTS_STATUS_START 3 50 #define UTS_STATUS_BUSY_WAIT 4 52 #define UTS_STATUS_CON_WAIT 5 53 #define UTS_STATUS_STOP 6 55 #define PROXY_STATUS_BUSY 1 56 #define PROXY_STATUS_RESTART 2 57 #define PROXY_STATUS_START 3 59 #define MAX_NUM_UTS_ADMIN 10 61 #define DEFAULT_SHM_KEY 0x3f5d1c0a 63 #define SHM_APPL_SERVER 0 68 #define SHM_MUTEX_BROKER 0 69 #define SHM_MUTEX_ADMIN 1 72 #define CON_STATUS_LOCK_BROKER 0 73 #define CON_STATUS_LOCK_CAS 1 75 #define CON_STATUS_LOCK_INIT(AS_INFO) \ 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; \ 83 #define CON_STATUS_LOCK_DESTROY(AS_INFO) 85 #define CON_STATUS_LOCK(AS_INFO, LOCK_OWNER) \ 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)) \ 93 SLEEP_MILISEC(0, 10); \ 97 #define CON_STATUS_UNLOCK(AS_INFO, LOCK_OWNER) \ 98 (AS_INFO)->con_status_lock[LOCK_OWNER] = FALSE 100 #define CON_STATUS_LOCK_INIT(AS_INFO) \ 101 uw_sem_init (&((AS_INFO)->con_status_sem)); 103 #define CON_STATUS_LOCK_DESTROY(AS_INFO) \ 104 uw_sem_destroy (&((AS_INFO)->con_status_sem)); 106 #define CON_STATUS_LOCK(AS_INFO, LOCK_OWNER) \ 107 uw_sem_wait (&(AS_INFO)->con_status_sem); 109 #define CON_STATUS_UNLOCK(AS_INFO, LOCK_OWNER) \ 110 uw_sem_post (&(AS_INFO)->con_status_sem); 112 #define SHM_LOG_MSG_SIZE 256 114 #define APPL_NAME_LENGTH 128 116 #define JOB_QUEUE_MAX_SIZE 2048 118 #define MAX_CRYPT_STR_LENGTH 32 120 #define APPL_SERVER_NAME_MAX_SIZE 32 122 #define CAS_LOG_RESET_REOPEN 0x01 123 #define CAS_LOG_RESET_REMOVE 0x02 124 #define PROXY_LOG_RESET_REOPEN 0x01 126 #define MAX_DBNAME_LENGTH (64) 127 #define MAX_CONN_INFO_LENGTH ((CUB_MAXHOSTNAMELEN + 1) * 2) 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) 135 #define MAX_PROXY_NUM 8 137 #define APPL_SERVER_NUM_LIMIT 4096 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) 143 #define MAX_SHARD_USER (4) 144 #define MAX_SHARD_KEY (2) 145 #define MAX_SHARD_CONN (256) 147 #define SHARD_KEY_COLUMN_LEN (32) 148 #define SHARD_KEY_RANGE_MAX (256) 150 #define UNUSABLE_DATABASE_MAX (200) 151 #define PAIR_LIST (2) 158 #define PROXY_RESERVED_FD (256) 160 #define PROXY_RESERVED_FD (128) 163 #define MAX_QUERY_TIMEOUT_LIMIT 86400 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) 168 #if defined (WINDOWS) 169 #define MAKE_ACL_SEM_NAME(BUF, BROKER_NAME) \ 170 snprintf(BUF, BROKER_NAME_LEN, "%s_acl_sem", BROKER_NAME) 173 #define MIN_MYSQL_KEEPALIVE_INTERVAL 60 176 #define MAGIC_NUMBER (MAJOR_VERSION * 1000000 + MINOR_VERSION * 10000 + SEQ_NUMBER) 196 typedef INT64 int64_t;
212 char ip_files[LINE_MAX + 1];
323 unsigned char cas_clt_ip[4];
336 #if defined (WINDOWS) 337 char con_status_lock[2];
338 char con_status_lock_turn;
594 unsigned char local_ip_addr[4];
631 #if !defined(WINDOWS) 654 unsigned char my_ip_addr[4];
655 #if !defined(WINDOWS) 676 int uw_shm_get_magic_number ();
INT64 num_long_transactions
unsigned char address_list[ACL_MAX_IP_COUNT *IP_BYTE_COUNT]
void * uw_shm_open(int shm_key, int which_shm, T_SHM_MODE shm_mode)
#define UNUSABLE_DATABASE_MAX
int uw_sem_destroy(sem_t *sem_t)
#define SRV_CON_CLIENT_INFO_SIZE
#define SHM_APPL_SERVER_NAME_MAX
int max_prepared_stmt_count
void uw_shm_detach(void *)
enum t_con_status T_CON_STATUS
INT64 num_no_hint_queries_requested
int proxy_conn_wait_timeout
INT64 num_hint_id_queries_processed
#define JOB_QUEUE_MAX_SIZE
int advance_activate_flag
T_BROKER_VERSION clt_version
char broker_name[BROKER_NAME_LEN]
static T_BROKER_INFO * br_info_p
int max_prepared_stmt_count
static T_SHM_PROXY * shm_proxy_p
#define MAX_CONN_INFO_LENGTH
INT64 num_unique_error_queries
INT64 num_queries_processed
#define SRV_CON_DBPASSWD_SIZE
ACCESS_INFO access_info[ACL_MAX_ITEM_COUNT]
#define CLIENT_INFO_SIZE_LIMIT
#define SHARD_CONN_STAT_SIZE_LIMIT
int appl_server_hard_limit
char jdbc_cache_only_hint
#define SHARD_KEY_COLUMN_LEN
#define SRV_CON_DBNAME_SIZE
#define BROKER_INFO_PATH_MAX
#define SRV_CON_VER_STR_MAX_SIZE
char cci_default_autocommit
#define MAX_DBNAME_LENGTH
char cur_statement_pooling
INT64 num_connect_requests
#define ACL_MAX_DBNAME_LENGTH
int long_transaction_time
unsigned short cas_clt_port
T_SHM_APPL_SERVER * broker_shm_initialize_shm_as(T_BROKER_INFO *br_info_p, T_SHM_PROXY *shm_proxy_p)
unsigned int unusable_databases_seq
T_SHM_SHARD_USER shm_shard_user
int mysql_keepalive_interval
INT64 num_hint_all_queries_processed
INT64 num_connect_requests
INT64 num_hint_err_queries_processed
int uw_shm_destroy(int shm_key)
enum t_shm_mode T_SHM_MODE
char cci_default_autocommit
#define SHARD_KEY_RANGE_MAX
#define SHARD_INFO_SIZE_LIMIT
time_t transaction_start_time
#define SHM_PROXY_NAME_MAX
INT64 num_connect_rejected
#define SHARD_KEY_STAT_SIZE_LIMIT
INT64 num_transactions_processed
INT64 num_hint_none_queries_processed
INT64 num_hint_key_queries_requested
#define ACL_MAX_ITEM_COUNT
static char database_passwd[SRV_CON_DBPASSWD_SIZE]
T_SHM_SHARD_CONN shm_shard_conn
INT64 num_request_stmt_in_pool
int proxy_access_log_reset
#define ACL_MAX_DBUSER_LENGTH
#define PROXY_RESERVED_FD
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)
static char database_name[MAX_HA_DBINFO_LENGTH]
INT64 num_range_queries_requested
int max_num_delayed_hosts_lookup
INT64 num_requests_received
time_t claimed_alive_time
INT64 num_hint_id_queries_requested
#define SRV_CON_DBUSER_SIZE
void * uw_shm_create(int shm_key, int size, int which_shm)
T_APPL_SERVER_INFO * as_info
#define CONF_LOG_FILE_LEN
INT64 num_proxy_error_processed
int uw_sem_init(sem_t *sem_t)
static char database_user[SRV_CON_DBUSER_SIZE]
#define APPL_SERVER_NAME_MAX_SIZE
char stripped_column_name
#define SHM_BROKER_PATH_MAX
T_SHM_SHARD_KEY shm_shard_key
INT64 num_hint_key_queries_processed
#define CUB_MAXHOSTNAMELEN
time_t claimed_alive_time
int uw_sem_post(sem_t *sem_t)
time_t last_access_time[ACL_MAX_IP_COUNT]
INT64 num_connect_rejected
int uw_sem_wait(sem_t *sem_t)
#define APPL_SERVER_NUM_LIMIT