diff --git a/src/gausskernel/ddes/adapter/ss_dms_callback.cpp b/src/gausskernel/ddes/adapter/ss_dms_callback.cpp index 3daa03fbf3c56a5ddb03ebf56e5894e99899426f..f958ad2d71bc736cd9fa5256f1f25a51abfa2306 100644 --- a/src/gausskernel/ddes/adapter/ss_dms_callback.cpp +++ b/src/gausskernel/ddes/adapter/ss_dms_callback.cpp @@ -1053,6 +1053,27 @@ static char *CBDisplayBufferTag(char *displayBuf, unsigned int count, char *page return displayBuf; } +static int CBRemoveBufLoadStatus(dms_buf_ctrl_t *buf_ctrl, dms_buf_load_status_t dms_buf_load_status) +{ + switch (dms_buf_load_status) { + case DMS_BUF_NEED_LOAD: + buf_ctrl->state &= ~BUF_NEED_LOAD; + break; + case DMS_BUF_IS_LOADED: + buf_ctrl->state &= ~BUF_IS_LOADED; + break; + case DMS_BUF_LOAD_FAILED: + buf_ctrl->state &= ~BUF_LOAD_FAILED; + break; + case DMS_BUF_NEED_TRANSFER: + buf_ctrl->state &= ~BUF_NEED_TRANSFER; + break; + default: + Assert(0); + } + return DMS_SUCCESS; +} + static int CBSetBufLoadStatus(dms_buf_ctrl_t *buf_ctrl, dms_buf_load_status_t dms_buf_load_status) { switch (dms_buf_load_status) { @@ -2569,6 +2590,7 @@ void DmsInitCallback(dms_callback_t *callback) callback->page_is_dirty = CBPageDirty; callback->get_page = CBGetPage; callback->set_buf_load_status = CBSetBufLoadStatus; + callback->remove_buf_load_status = CBRemoveBufLoadStatus; callback->invalidate_page = CBInvalidatePage; callback->get_db_handle = CBGetHandle; callback->release_db_handle = CBReleaseHandle; diff --git a/src/gausskernel/ddes/ddes_commit_id b/src/gausskernel/ddes/ddes_commit_id index f35247229a0a15a202df5b3acbb8aaf1f3f109f3..5efef49fa41a0c7134dd94df258985295816d92e 100644 --- a/src/gausskernel/ddes/ddes_commit_id +++ b/src/gausskernel/ddes/ddes_commit_id @@ -1,3 +1,3 @@ -dms_commit_id=a83ad9aae9ca0ca01942d9100b174b9c1c516f94 +dms_commit_id=2de2ea6b4b38dd053757a30fe7fd59dd6e817eaa dss_commit_id=43fdadc37c967214e10a3d58e459ec482cdc7fa4 cbb_commit_id=0a9fe182799f7cff7a4943b3c09c87a05326de0c \ No newline at end of file diff --git a/src/include/ddes/dms/dms_api.h b/src/include/ddes/dms/dms_api.h index c43746908c1937cd972ee57c76b69d317c6170b8..0ce64364b6814654eeec48fef6783351664cd6aa 100644 --- a/src/include/ddes/dms/dms_api.h +++ b/src/include/ddes/dms/dms_api.h @@ -36,7 +36,7 @@ extern "C" { #define DMS_LOCAL_MINOR_VER_WEIGHT 1000 #define DMS_LOCAL_MAJOR_VERSION 0 #define DMS_LOCAL_MINOR_VERSION 0 -#define DMS_LOCAL_VERSION 179 +#define DMS_LOCAL_VERSION 178 #define DMS_SUCCESS 0 #define DMS_ERROR (-1) @@ -841,6 +841,7 @@ typedef unsigned int(*dms_inc_and_get_srsn)(unsigned int sess_id); typedef unsigned long long(*dms_get_page_lsn)(const dms_buf_ctrl_t *dms_ctrl); typedef int(*dms_set_buf_load_status)(dms_buf_ctrl_t *dms_ctrl, dms_buf_load_status_t dms_buf_load_status); typedef void(*dms_stats_buf)(void *db_handle, dms_buf_ctrl_t *dms_ctrl, dms_buf_stats_type_e stats_type); +typedef int(*dms_remove_buf_load_status)(dms_buf_ctrl_t *dms_ctrl, dms_buf_load_status_t dms_buf_load_status); typedef void(*dms_update_global_lsn)(void *db_handle, unsigned long long lamport_lsn); typedef void(*dms_update_global_scn)(void *db_handle, unsigned long long lamport_scn); typedef void(*dms_update_node_lfn)(void *db_handle, unsigned char node_id, unsigned long long node_lfn); @@ -850,6 +851,7 @@ typedef void(*dms_update_replay_lfns)(void *db_handle, unsigned long long *node_ typedef void(*dms_get_replay_lfns)(void *db_handle, unsigned long long *node_data, unsigned int len); typedef void(*dms_update_page_lfn)(dms_buf_ctrl_t *dms_ctrl, unsigned long long lastest_lfn); typedef unsigned long long (*dms_get_page_lfn)(dms_buf_ctrl_t *dms_ctrl); +typedef unsigned long long (*dms_get_page_scn)(dms_buf_ctrl_t *dms_ctrl); typedef unsigned long long(*dms_get_global_lfn)(void *db_handle); typedef unsigned long long(*dms_get_global_scn)(void *db_handle); typedef unsigned long long(*dms_get_global_lsn)(void *db_handle); @@ -921,6 +923,7 @@ typedef void (*dms_check_if_build_complete)(void *db_handle, unsigned int *build typedef void (*dms_check_if_restore_recover)(void *db_handle, unsigned int *rst_recover); typedef void (*dms_set_switchover_result)(void *db_handle, int result); typedef int (*dms_mount_to_recovery)(void *db_handle, unsigned int *has_offline); +typedef int(*dms_get_open_status)(void *db_handle); typedef void (*dms_reform_set_dms_role)(void *db_handle, unsigned int reformer_id); typedef void (*dms_reset_user)(void *db_handle, unsigned long long list_in); typedef int (*dms_drc_xa_res_rebuild)(void *db_handle, unsigned char thread_index, unsigned char parall_num); @@ -984,6 +987,7 @@ typedef void (*dms_set_current_point)(void *db_handle); typedef void (*dms_get_db_role)(void *db_handle, unsigned int *role); typedef int (*dms_sync_node_lfn)(void *db_handle, int reform_type, unsigned long long online_list); +typedef void (*dms_check_lrpl_takeover)(void *db_handle, unsigned int *need_takeover); typedef void (*dms_reset_link)(void *db_handle); typedef void (*dms_set_online_list)(void *db_handle, unsigned long long online_list, unsigned int reformer_id); typedef int (*dms_standby_update_remove_node_ctrl)(void *db_handle, unsigned long long online_list); @@ -1036,6 +1040,7 @@ typedef struct st_dms_callback { dms_dw_recovery dw_recovery; dms_df_recovery df_recovery; dms_space_reload space_reload; + dms_get_open_status get_open_status; dms_undo_init undo_init; dms_tx_area_init tx_area_init; dms_tx_area_load tx_area_load; @@ -1070,6 +1075,7 @@ typedef struct st_dms_callback { dms_get_page_hash_val get_page_hash_val; dms_get_page_lsn get_page_lsn; dms_set_buf_load_status set_buf_load_status; + dms_remove_buf_load_status remove_buf_load_status; dms_update_global_scn update_global_scn; dms_update_global_lsn update_global_lsn; dms_update_page_lfn update_page_lfn; @@ -1077,6 +1083,7 @@ typedef struct st_dms_callback { dms_get_global_lsn get_global_lsn; dms_get_global_lfn get_global_lfn; dms_get_page_lfn get_page_lfn; + dms_get_page_scn get_page_scn; dms_get_global_flushed_lfn get_global_flushed_lfn; dms_read_local_page4transfer read_local_page4transfer; dms_page_is_dirty page_is_dirty; @@ -1192,6 +1199,7 @@ typedef struct st_dms_callback { dms_get_db_role get_db_role; dms_sync_node_lfn sync_node_lfn; + dms_check_lrpl_takeover check_lrpl_takeover; dms_reset_link reset_link; dms_set_online_list set_online_list; dms_standby_update_remove_node_ctrl standby_update_remove_node_ctrl; @@ -1251,8 +1259,6 @@ typedef struct st_dms_profile { unsigned int page_size; unsigned long long recv_msg_buf_size; unsigned int log_level; - unsigned long long log_max_file_size; - unsigned int log_backup_file_count; dms_conn_mode_t pipe_type; // Inter-instance communication mode. Currently, only TCP and RDMA are supported. unsigned int inst_cnt; // Number of cluster instances @@ -1431,7 +1437,6 @@ typedef struct st_mem_info_stat { typedef enum en_dms_param_index { DMS_PARAM_SS_INTERCONNECT_URL = 0, DMS_PARAM_SS_ELAPSED_SWITCH, - DMS_PARAM_SS_DRC_MEM_MAX_SIZE, #if defined(_DEBUG) || defined(DEBUG) || defined(DB_DEBUG_VERSION) DMS_PARAM_SS_FI_PACKET_LOSS_ENTRIES, DMS_PARAM_SS_FI_NET_LATENCY_ENTRIES,