CUBRID Engine
latest
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <assert.h>
#include "dbi.h"
#include "dlfcn.h"
#include "cas_common.h"
#include "broker_filename.h"
#include "broker_admin_pub.h"
#include "broker_util.h"
#include "shard_metadata.h"
Go to the source code of this file.
Macros | |
#define | SHARD_QUERY_BUFFER_SIZE 1024 |
#define | SHARD_METADATA_USER_TABLE_NAME "shard_user" |
#define | SHARD_METADATA_KEY_RANGE_TABLE_NAME "shard_range" |
#define | SHARD_METADATA_CONN_TABLE_NAME "shard_conn" |
#define | DEFAULT_NUM_USER 1 |
#define | DEFAULT_NUM_KEY 1 |
#define | DEFAULT_NUM_CONN 4 |
Variables | |
FN_GET_SHARD_KEY | fn_get_shard_key = NULL |
void * | handle = NULL |
#define DEFAULT_NUM_CONN 4 |
Definition at line 59 of file shard_metadata.c.
Referenced by shard_metadata_read_conn().
#define DEFAULT_NUM_KEY 1 |
Definition at line 58 of file shard_metadata.c.
Referenced by shard_metadata_read_key().
#define DEFAULT_NUM_USER 1 |
Definition at line 57 of file shard_metadata.c.
#define SHARD_METADATA_CONN_TABLE_NAME "shard_conn" |
Definition at line 55 of file shard_metadata.c.
#define SHARD_METADATA_KEY_RANGE_TABLE_NAME "shard_range" |
Definition at line 54 of file shard_metadata.c.
#define SHARD_METADATA_USER_TABLE_NAME "shard_user" |
Definition at line 53 of file shard_metadata.c.
#define SHARD_QUERY_BUFFER_SIZE 1024 |
Definition at line 51 of file shard_metadata.c.
void close_shard_key_function | ( | void | ) |
Definition at line 934 of file shard_metadata.c.
References fn_get_shard_key, handle, and NULL.
Referenced by register_fn_get_shard_key(), and shard_metadata_validate_key_function().
Definition at line 909 of file shard_metadata.c.
References fn_get_shard_key, handle, and NULL.
Referenced by register_fn_get_shard_key(), and shard_metadata_validate_key_function().
T_SHARD_KEY* shard_metadata_bsearch_key | ( | T_SHM_SHARD_KEY * | shm_key_p, |
const char * | keycolumn | ||
) |
Definition at line 798 of file shard_metadata.c.
References t_shard_key::key_column, max, min, NULL, t_shm_shard_key::num_shard_key, and t_shm_shard_key::shard_key.
Referenced by shard_metadata_find_shard_range().
T_SHARD_KEY_RANGE* shard_metadata_bsearch_range | ( | T_SHARD_KEY * | key_p, |
unsigned int | hash_res | ||
) |
Definition at line 832 of file shard_metadata.c.
References max, t_shard_key_range::max, min, t_shard_key_range::min, NULL, t_shard_key::num_key_range, and t_shard_key::range.
Referenced by shard_metadata_find_shard_range().
Definition at line 360 of file shard_metadata.c.
References t_shard_conn::shard_id.
Referenced by shard_metadata_sort_conn().
void shard_metadata_dump | ( | FILE * | fp, |
int | shmid | ||
) |
Definition at line 596 of file shard_metadata.c.
References NULL, SHARD_ERR, shard_metadata_dump_internal(), SHM_MODE_MONITOR, SHM_PROXY, shm_proxy_p, uw_shm_detach(), and uw_shm_open().
Referenced by broker_config_dump().
|
static |
Definition at line 542 of file shard_metadata.c.
References assert, t_shard_conn::db_conn_info, t_shard_conn::db_name, i, t_shm_shard_conn::num_shard_conn, t_shm_shard_conn::shard_conn, t_shard_conn::shard_id, shard_println_1(), and shard_println_2().
Referenced by shard_metadata_dump_internal(), and shard_metadata_initialize().
void shard_metadata_dump_internal | ( | FILE * | fp, |
T_SHM_PROXY * | shm_proxy_p | ||
) |
Definition at line 566 of file shard_metadata.c.
References assert, shard_metadata_dump_conn(), shard_metadata_dump_key(), shard_metadata_dump_user(), shard_metadata_get_conn(), shard_metadata_get_key(), shard_metadata_get_user(), shm_conn_p, shm_key_p, and shm_user_p.
Referenced by shard_metadata_dump().
|
static |
Definition at line 511 of file shard_metadata.c.
References assert, i, t_shard_key::key_column, t_shard_key_range::max, t_shard_key_range::min, t_shard_key::num_key_range, t_shm_shard_key::num_shard_key, t_shard_key::range, t_shard_key_range::shard_id, t_shm_shard_key::shard_key, shard_println_1(), and shard_println_2().
Referenced by shard_metadata_dump_internal(), and shard_metadata_initialize().
|
static |
Definition at line 486 of file shard_metadata.c.
References assert, t_shard_user::db_name, t_shard_user::db_user, i, t_shm_shard_user::num_shard_user, shard_println_1(), shard_println_2(), and t_shm_shard_user::shard_user.
Referenced by shard_metadata_dump_internal().
T_SHARD_KEY_RANGE* shard_metadata_find_shard_range | ( | T_SHM_SHARD_KEY * | shm_key_p, |
const char * | key, | ||
unsigned int | hash_res | ||
) |
Definition at line 865 of file shard_metadata.c.
References NULL, shard_metadata_bsearch_key(), and shard_metadata_bsearch_range().
Referenced by admin_getid_cmd(), proxy_get_range_by_param(), and shard_stmt_change_shard_val_to_id().
T_SHM_SHARD_CONN* shard_metadata_get_conn | ( | T_SHM_PROXY * | shm_proxy_p | ) |
Definition at line 426 of file shard_metadata.c.
References assert, shm_conn_p, and t_shm_proxy::shm_shard_conn.
Referenced by admin_getid_cmd(), metadata_monitor(), proxy_shm_initialize(), shard_metadata_dump_internal(), shard_metadata_read_conn(), shard_metadata_validate(), and shard_shm_initialize_shm_proxy().
T_SHM_SHARD_KEY* shard_metadata_get_key | ( | T_SHM_PROXY * | shm_proxy_p | ) |
Definition at line 414 of file shard_metadata.c.
References assert, shm_key_p, and t_shm_proxy::shm_shard_key.
Referenced by admin_getid_cmd(), metadata_monitor(), proxy_shm_initialize(), shard_metadata_dump_internal(), shard_metadata_read_key(), shard_metadata_validate(), and shard_shm_initialize_shm_proxy().
T_SHARD_USER* shard_metadata_get_shard_user | ( | T_SHM_SHARD_USER * | shm_user_p | ) |
Definition at line 877 of file shard_metadata.c.
References assert, NULL, t_shm_shard_user::num_shard_user, and t_shm_shard_user::shard_user.
Referenced by proxy_check_authorization().
T_SHARD_USER* shard_metadata_get_shard_user_from_shm | ( | T_SHM_PROXY * | shm_proxy_p | ) |
Definition at line 889 of file shard_metadata.c.
References assert, NULL, shard_metadata_get_user(), t_shm_shard_user::shard_user, and shm_user_p.
T_SHM_SHARD_USER* shard_metadata_get_user | ( | T_SHM_PROXY * | shm_proxy_p | ) |
Definition at line 402 of file shard_metadata.c.
References assert, t_shm_proxy::shm_shard_user, and shm_user_p.
Referenced by metadata_monitor(), proxy_shm_initialize(), shard_metadata_dump_internal(), shard_metadata_get_shard_user_from_shm(), shard_metadata_read_user(), and shard_metadata_validate().
int shard_metadata_initialize | ( | T_BROKER_INFO * | br_info, |
T_SHM_PROXY * | shm_proxy_p | ||
) |
Definition at line 438 of file shard_metadata.c.
References assert, t_broker_info::name, t_shm_shard_conn::num_shard_conn, t_shm_shard_key::num_shard_key, t_shm_shard_user::num_shard_user, t_broker_info::shard_connection_file, t_broker_info::shard_db_name, t_broker_info::shard_db_password, t_broker_info::shard_db_user, SHARD_INF, t_broker_info::shard_key_file, shard_metadata_dump_conn(), shard_metadata_dump_key(), shard_metadata_read_conn(), shard_metadata_read_key(), shard_metadata_read_user(), shard_metadata_sort_conn(), shard_metadata_sort_key(), shard_metadata_validate(), shm_conn_p, shm_key_p, t_shm_proxy::shm_shard_conn, t_shm_proxy::shm_shard_key, and shm_user_p.
Referenced by shard_shm_initialize_shm_proxy().
Definition at line 340 of file shard_metadata.c.
References t_shard_key_range::min.
Referenced by shard_metadata_sort_key().
|
static |
Definition at line 264 of file shard_metadata.c.
References assert, BROKER_PATH_MAX, t_shard_conn::db_conn_info, t_shard_conn::db_name, DEFAULT_NUM_CONN, envvar_confdir_file(), MAX_SHARD_CONN, NULL, t_shm_shard_conn::num_shard_conn, p, t_shm_shard_conn::shard_conn, t_shard_conn::shard_id, SHARD_INF, shard_metadata_get_conn(), shm_conn_p, strlen, and trim().
Referenced by shard_metadata_initialize().
|
static |
Definition at line 141 of file shard_metadata.c.
References assert, BROKER_PATH_MAX, DEFAULT_NUM_KEY, envvar_confdir_file(), t_shard_key::key_column, t_shard_key_range::key_index, t_shard_key_range::max, t_shard_key_range::min, NULL, t_shard_key::num_key_range, t_shm_shard_key::num_shard_key, p, t_shard_key::range, t_shard_key_range::range_index, t_shard_key_range::shard_id, SHARD_INF, t_shm_shard_key::shard_key, SHARD_KEY_COLUMN_LEN, SHARD_KEY_RANGE_MAX, shard_metadata_get_key(), shm_key_p, strlen, strncpy_bufsize, and trim().
Referenced by shard_metadata_initialize().
|
static |
Definition at line 114 of file shard_metadata.c.
References t_shard_user::db_name, t_shard_user::db_password, t_shard_user::db_user, NULL, t_shm_shard_user::num_shard_user, SHARD_INF, shard_metadata_get_user(), t_shm_shard_user::shard_user, shm_user_p, and strncpy_bufsize.
Referenced by shard_metadata_initialize().
|
static |
Definition at line 394 of file shard_metadata.c.
References t_shm_shard_conn::num_shard_conn, t_shm_shard_conn::shard_conn, and shard_metadata_conn_comp().
Referenced by shard_metadata_initialize().
|
static |
Definition at line 380 of file shard_metadata.c.
References i, t_shard_key::num_key_range, t_shm_shard_key::num_shard_key, t_shard_key::range, t_shm_shard_key::shard_key, and shard_metadata_key_range_comp().
Referenced by shard_metadata_initialize().
|
static |
Definition at line 615 of file shard_metadata.c.
References error(), t_broker_info::shard_key_function_name, t_broker_info::shard_key_library_name, t_broker_info::shard_key_modular, shard_metadata_get_conn(), shard_metadata_get_key(), shard_metadata_get_user(), shard_metadata_validate_conn(), shard_metadata_validate_key(), shard_metadata_validate_key_function(), and shard_metadata_validate_user().
Referenced by shard_metadata_initialize().
|
static |
Definition at line 759 of file shard_metadata.c.
References assert, i, NULL, t_shm_shard_conn::num_shard_conn, t_shm_shard_conn::shard_conn, SHARD_ERR, and t_shard_conn::shard_id.
Referenced by shard_metadata_validate().
|
static |
Definition at line 725 of file shard_metadata.c.
References assert, error(), i, t_shard_key::key_column, NULL, t_shm_shard_key::num_shard_key, SHARD_ERR, t_shm_shard_key::shard_key, and shard_metadata_validate_key_range_internal().
Referenced by shard_metadata_validate().
|
static |
Definition at line 782 of file shard_metadata.c.
References close_shard_key_function(), load_shard_key_function(), and SHARD_ERR.
Referenced by shard_metadata_validate().
|
static |
Definition at line 667 of file shard_metadata.c.
References assert, i, t_shard_key::key_column, t_shard_key_range::max, t_shard_key_range::min, NULL, t_shard_key::num_key_range, t_shm_shard_conn::num_shard_conn, t_shard_key::range, t_shm_shard_conn::shard_conn, SHARD_ERR, t_shard_key_range::shard_id, and t_shard_conn::shard_id.
Referenced by shard_metadata_validate_key().
|
static |
Definition at line 655 of file shard_metadata.c.
Referenced by shard_metadata_validate().
|
static |
Definition at line 98 of file shard_metadata.c.
References assert.
Referenced by shard_metadata_dump_conn(), shard_metadata_dump_key(), and shard_metadata_dump_user().
|
static |
Definition at line 106 of file shard_metadata.c.
References assert.
Referenced by shard_metadata_dump_conn(), shard_metadata_dump_key(), and shard_metadata_dump_user().
FN_GET_SHARD_KEY fn_get_shard_key = NULL |
Definition at line 62 of file shard_metadata.c.
Referenced by close_shard_key_function(), load_shard_key_function(), and register_fn_get_shard_key().
void* handle = NULL |
Definition at line 67 of file shard_metadata.c.
Referenced by ci_stmt_execute_batch_impl(), close_shard_key_function(), create_resultset_impl(), fe_alloc_handle(), lazy_bind_pstmt_pmeta(), lazy_bind_qres_rmeta(), load_shard_key_function(), main(), and sm_free_function_nlist().