[资源池化]6.17修复DMS版本的更新

This commit is contained in:
dongning12
2023-06-17 14:32:44 +08:00
parent 3d96b41656
commit 371a3d6f5a
3 changed files with 16 additions and 8 deletions

View File

@ -425,7 +425,7 @@ static int SetPrimaryIdOnStandby(int primary_id)
/* called on both new primary and all standby nodes to refresh status */
static int CBSaveStableList(void *db_handle, unsigned long long list_stable, unsigned char reformer_id,
unsigned int save_ctrl)
unsigned long long list_in, unsigned int save_ctrl)
{
int primary_id = (int)reformer_id;
g_instance.dms_cxt.SSReformerControl.primaryInstId = primary_id;
@ -827,7 +827,7 @@ static int CBSetBufLoadStatus(dms_buf_ctrl_t *buf_ctrl, dms_buf_load_status_t dm
return DMS_SUCCESS;
}
static void *CBGetHandle(unsigned int *db_handle_index)
static void *CBGetHandle(unsigned int *db_handle_index, dms_session_type_e session_type)
{
void *db_handle = g_instance.proc_base->allProcs[g_instance.dms_cxt.dmsProcSid];
*db_handle_index = pg_atomic_fetch_add_u32(&g_instance.dms_cxt.dmsProcSid, 1);

View File

@ -1,2 +1,2 @@
dms_commit_id=1ecf0da9c6bafe2731d75fbddac09e54cc7bfd44
dms_commit_id=8f11876adedc59140b721663c9a6fad1e1f5a723
dss_commit_id=a62ccb6571d5448df3e91b95f788501836779625

View File

@ -190,6 +190,7 @@ typedef struct st_dms_xmap_ctx {
typedef struct st_dms_context {
unsigned int inst_id; // current instance id
unsigned int sess_id; // current session id
unsigned int rmid; // current rm id
dms_session_e sess_type; // request page: recovery session flag
void *db_handle;
unsigned char is_try;
@ -236,9 +237,9 @@ typedef struct dms_opengauss_txn_snapshot {
} dms_opengauss_txn_snapshot_t;
typedef struct dms_opengauss_txn_sw_info {
unsigned long long sxid;
unsigned int scid;
unsigned int server_proc_slot;
unsigned long long sxid; // transaction id of master, used for standby write feature
unsigned int scid; // command id of master, used for standby write feature
unsigned int server_proc_slot; // backend slot of master, used for standby write feature
} dms_opengauss_txn_sw_info_t;
typedef enum dms_opengauss_lock_req_type {
@ -489,6 +490,13 @@ typedef enum en_dms_status {
DMS_STATUS_IN = 3
} dms_status_t; // used in database startup
typedef enum st_dms_session_type {
DMS_SESSION_TYPE_NONE = 0,
DMS_SESSION_TYPE_WORKER = 1,
DMS_SESSION_TYPE_FULL_RCY = 2,
DMS_SESSION_TYPE_FULL_RCY_PARAL = 3,
}dms_session_type_e;
#define DCS_BATCH_BUF_SIZE (1024 * 30)
#define DCS_RLS_OWNER_BATCH_SIZE (DCS_BATCH_BUF_SIZE / DMS_PAGEID_SIZE)
typedef struct st_dcs_batch_buf {
@ -499,7 +507,7 @@ typedef struct st_dcs_batch_buf {
typedef int(*dms_get_list_stable)(void *db_handle, unsigned long long *list_stable, unsigned char *reformer_id);
typedef int(*dms_save_list_stable)(void *db_handle, unsigned long long list_stable, unsigned char reformer_id,
unsigned int save_ctrl);
unsigned long long list_in, unsigned int save_ctrl);
typedef int(*dms_get_dms_status)(void *db_handle);
typedef void(*dms_set_dms_status)(void *db_handle, int status);
typedef int(*dms_confirm_converting)(void *db_handle, char *pageid, unsigned char smon_chk,
@ -544,7 +552,7 @@ typedef void(*dms_leave_local_page)(void *db_handle, dms_buf_ctrl_t *buf_ctrl);
typedef void(*dms_get_pageid)(dms_buf_ctrl_t *buf_ctrl, char **pageid, unsigned int *size);
typedef char *(*dms_get_page)(dms_buf_ctrl_t *buf_ctrl);
typedef int (*dms_invalidate_page)(void *db_handle, char pageid[DMS_PAGEID_SIZE], unsigned char invld_owner);
typedef void *(*dms_get_db_handle)(unsigned int *db_handle_index);
typedef void *(*dms_get_db_handle)(unsigned int *db_handle_index, dms_session_type_e session_type);
typedef void (*dms_release_db_handle)(void *db_handle);
typedef void *(*dms_stack_push_cr_cursor)(void *db_handle);
typedef void (*dms_stack_pop_cr_cursor)(void *db_handle);