Set mds_checkpoint_scn when creating split dst tablets

This commit is contained in:
Hongqin-Li 2024-10-29 10:18:15 +00:00 committed by ob-robot
parent 53885e9d56
commit 0fa613ffd6
17 changed files with 53 additions and 24 deletions

View File

@ -253,7 +253,8 @@ TEST_F(TestLSMigrationParam, test_migrate_tablet_param)
SCN scn;
scn.convert_from_ts(ObTimeUtility::current_time());
ret = src_handle.get_obj()->init_for_first_time_creation(allocator_, src_key.ls_id_, src_key.tablet_id_, src_key.tablet_id_,
scn, 2022, create_tablet_schema, true/*need_create_empty_major_sstable*/, SCN::invalid_scn(), true/*micro_index_clustered*/, false/*need_generate_cs_replica_cg_array*/, false/*has_cs_replica*/, ls_handle.get_ls()->get_freezer());
scn, 2022, create_tablet_schema, true/*need_create_empty_major_sstable*/, SCN::invalid_scn()/*clog_checkpoint_scn*/,
SCN::invalid_scn()/*mds_checkpoint_scn*/, true/*micro_index_clustered*/, false/*need_generate_cs_replica_cg_array*/, false/*has_cs_replica*/, ls_handle.get_ls()->get_freezer());
ASSERT_EQ(common::OB_SUCCESS, ret);
share::SCN create_commit_scn;
@ -337,7 +338,8 @@ TEST_F(TestLSMigrationParam, test_migration_param_compat)
SCN scn;
scn.convert_from_ts(ObTimeUtility::current_time());
ret = src_handle.get_obj()->init_for_first_time_creation(allocator_, src_key.ls_id_, src_key.tablet_id_, src_key.tablet_id_,
scn, 2022, create_tablet_schema, true/*need_create_empty_major_sstable*/, SCN::invalid_scn(), true/*micro_index_clustered*/, false/*need_generate_cs_replica_cg_array*/, false/*has_cs_replica*/, ls_handle.get_ls()->get_freezer());
scn, 2022, create_tablet_schema, true/*need_create_empty_major_sstable*/, SCN::invalid_scn()/*clog_checkpoint_scn*/,
SCN::invalid_scn()/*mds_checkpoint_scn*/, true/*micro_index_clustered*/, false/*need_generate_cs_replica_cg_array*/, false/*has_cs_replica*/, ls_handle.get_ls()->get_freezer());
ASSERT_EQ(common::OB_SUCCESS, ret);
share::SCN create_commit_scn;

View File

@ -170,7 +170,8 @@ void TestLSTabletInfoWR::fill_tablet_meta()
SCN scn;
scn.convert_from_ts(ObTimeUtility::current_time());
ret = src_handle.get_obj()->init_for_first_time_creation(arena_allocator_, src_key.ls_id_, src_key.tablet_id_, src_key.tablet_id_,
scn, 2022, create_tablet_schema, true/*need_create_empty_major_sstable*/, share::SCN::invalid_scn(), false/*micro_index_clustered*/, false/*need_generate_cs_replica_cg_array*/, false/*has_cs_replica*/, ls_handle.get_ls()->get_freezer());
scn, 2022, create_tablet_schema, true/*need_create_empty_major_sstable*/, share::SCN::invalid_scn()/*clog_checkpoint_scn*/,
share::SCN::invalid_scn()/*mds_checkpoint_scn*/, false/*micro_index_clustered*/, false/*need_generate_cs_replica_cg_array*/, false/*has_cs_replica*/, ls_handle.get_ls()->get_freezer());
ASSERT_EQ(common::OB_SUCCESS, ret);
share::SCN create_commit_scn;

View File

@ -728,7 +728,8 @@ TEST_F(TestTenantMetaMemMgr, test_wash_tablet)
ObTabletID empty_tablet_id;
ret = tablet->init_for_first_time_creation(allocator_, ls_id_, tablet_id, tablet_id,
create_scn, create_scn.get_val_for_tx(), create_tablet_schema, true/*need_create_empty_major_sstable*/, SCN::invalid_scn(), false/*micro_index_clustered*/, false/*need_generate_cs_replica_cg_array*/, false/*has_cs_replica*/, &freezer);
create_scn, create_scn.get_val_for_tx(), create_tablet_schema, true/*need_create_empty_major_sstable*/,
SCN::invalid_scn()/*clog_checkpoint_scn*/, SCN::invalid_scn()/*mds_checkpoint_scn*/, false/*micro_index_clustered*/, false/*need_generate_cs_replica_cg_array*/, false/*has_cs_replica*/, &freezer);
ASSERT_EQ(common::OB_SUCCESS, ret);
ASSERT_EQ(1, tablet->get_ref());
const ObTabletPersisterParam persist_param(ls_id_, ls_handle.get_ls()->get_ls_epoch(), tablet_id, tablet->get_transfer_seq());
@ -829,7 +830,7 @@ TEST_F(TestTenantMetaMemMgr, test_wash_inner_tablet)
bool make_empty_co_sstable = true;
ret = tablet->init_for_first_time_creation(allocator_, ls_id_, tablet_id, tablet_id,
create_scn, create_scn.get_val_for_tx(), create_tablet_schema,
make_empty_co_sstable/*need_create_empty_major_sstable*/, share::SCN::invalid_scn(), false/*micro_index_clustered*/, false/*need_generate_cs_replica_cg_array*/, false/*has_cs_replica*/, &freezer);
make_empty_co_sstable/*need_create_empty_major_sstable*/, share::SCN::invalid_scn()/*clog_checkpoint_scn*/, SCN::invalid_scn()/*mds_checkpoint_scn*/, false/*micro_index_clustered*/, false/*need_generate_cs_replica_cg_array*/, false/*has_cs_replica*/, &freezer);
ASSERT_EQ(common::OB_SUCCESS, ret);
ASSERT_EQ(1, tablet->get_ref());
@ -942,7 +943,8 @@ TEST_F(TestTenantMetaMemMgr, test_wash_no_sstable_tablet)
bool make_empty_co_sstable = false;
ret = tablet->init_for_first_time_creation(allocator_, ls_id_, tablet_id, tablet_id,
create_scn, create_scn.get_val_for_tx(), create_tablet_schema,
make_empty_co_sstable/*need_create_empty_major_sstable*/, share::SCN::invalid_scn(), false/*micro_index_clustered*/, false/*need_generate_cs_replica_cg_array*/, false/*has_cs_replica*/, &freezer);
make_empty_co_sstable/*need_create_empty_major_sstable*/, share::SCN::invalid_scn()/*clog_checkpoint_scn*/,
share::SCN::invalid_scn()/*mds_checkpoint_scn*/, false/*micro_index_clustered*/, false/*need_generate_cs_replica_cg_array*/, false/*has_cs_replica*/, &freezer);
ASSERT_EQ(common::OB_SUCCESS, ret);
ASSERT_EQ(1, tablet->get_ref());
@ -1041,7 +1043,8 @@ TEST_F(TestTenantMetaMemMgr, test_get_tablet_with_allocator)
bool make_empty_co_sstable = true;
ret = tablet->init_for_first_time_creation(allocator_, ls_id_, tablet_id, tablet_id,
create_scn, create_scn.get_val_for_tx(), create_tablet_schema,
make_empty_co_sstable/*need_create_empty_major_sstable*/, share::SCN::invalid_scn(), false/*micro_index_clustered*/, false/*need_generate_cs_replica_cg_array*/, false/*has_cs_replica*/, &freezer);
make_empty_co_sstable/*need_create_empty_major_sstable*/, share::SCN::invalid_scn()/*clog_checkpoint_scn*/,
share::SCN::invalid_scn()/*mds_checkpoint_scn*/, false/*micro_index_clustered*/, false/*need_generate_cs_replica_cg_array*/, false/*has_cs_replica*/, &freezer);
ASSERT_EQ(common::OB_SUCCESS, ret);
ASSERT_EQ(1, tablet->get_ref());
@ -1173,7 +1176,8 @@ TEST_F(TestTenantMetaMemMgr, test_wash_mem_tablet)
bool make_empty_co_sstable = false;
ret = tablet->init_for_first_time_creation(allocator_, ls_id_, tablet_id, tablet_id,
create_scn, create_scn.get_val_for_tx(), create_tablet_schema,
make_empty_co_sstable/*need_create_empty_major_sstable*/, share::SCN::invalid_scn(), false/*micro_index_clustered*/, false/*need_generate_cs_replica_cg_array*/, false/*has_cs_replica*/, &freezer);
make_empty_co_sstable/*need_create_empty_major_sstable*/, share::SCN::invalid_scn()/*clog_checkpoint_scn*/,
share::SCN::invalid_scn()/*mds_checkpoint_scn*/, false/*micro_index_clustered*/, false/*need_generate_cs_replica_cg_array*/, false/*has_cs_replica*/, &freezer);
ASSERT_EQ(common::OB_SUCCESS, ret);
ASSERT_EQ(1, tablet->get_ref());

View File

@ -736,7 +736,7 @@ int ObSplitPartitionHelper::start_dst_(
// create dst tablets
if (OB_FAIL(ret)) {
} else if (OB_FAIL(tablet_creator->modify_batch_args(storage::ObTabletMdsUserDataType::START_SPLIT_DST, data_end_scn, true/*clear_auto_part_size*/))) {
} else if (OB_FAIL(tablet_creator->modify_batch_args(storage::ObTabletMdsUserDataType::START_SPLIT_DST, data_end_scn, data_end_scn, true/*clear_auto_part_size*/))) {
LOG_WARN("failed to set clog checkpoint scn of tablet creator args", KR(ret));
} else if (OB_FAIL(tablet_creator->execute())) {
LOG_WARN("execute create partition failed", KR(ret));

View File

@ -390,6 +390,7 @@ int ObTabletCreator::add_create_tablet_arg(const ObTabletCreatorArg &arg)
int ObTabletCreator::modify_batch_args(
const storage::ObTabletMdsUserDataType &create_type,
const SCN &clog_checkpoint_scn,
const SCN &mds_checkpoint_scn,
const bool clear_auto_part_size)
{
int ret = OB_SUCCESS;
@ -405,6 +406,7 @@ int ObTabletCreator::modify_batch_args(
} else {
while (OB_SUCC(ret) && OB_NOT_NULL(batch_arg)) {
batch_arg->batch_arg_.clog_checkpoint_scn_ = clog_checkpoint_scn;
batch_arg->batch_arg_.mds_checkpoint_scn_ = mds_checkpoint_scn;
batch_arg->batch_arg_.create_type_ = create_type;
if (clear_auto_part_size) {
batch_arg->auto_part_size_arr_.reset();

View File

@ -140,7 +140,10 @@ const static int64_t BATCH_ARG_SIZE = 1024 * 1024; // 1M
int execute();
bool need_retry(int ret);
int add_create_tablet_arg(const ObTabletCreatorArg &arg);
int modify_batch_args(const storage::ObTabletMdsUserDataType &create_type, const share::SCN &clog_checkpoint_scn, const bool clear_auto_part_size);
int modify_batch_args(const storage::ObTabletMdsUserDataType &create_type,
const share::SCN &clog_checkpoint_scn,
const share::SCN &mds_checkpoint_scn,
const bool clear_auto_part_size);
void reset();
private:
int find_leader_of_ls(const share::ObLSID &id, ObAddr &addr);

View File

@ -10385,6 +10385,7 @@ void ObBatchCreateTabletArg::reset()
allocator_.reset();
tablet_extra_infos_.reset();
clog_checkpoint_scn_.reset();
mds_checkpoint_scn_.reset();
create_type_ = ObTabletMdsUserDataType::CREATE_TABLET;
}
@ -10433,6 +10434,7 @@ int ObBatchCreateTabletArg::assign(const ObBatchCreateTabletArg &arg)
need_check_tablet_cnt_ = arg.need_check_tablet_cnt_;
is_old_mds_ = arg.is_old_mds_;
clog_checkpoint_scn_ = arg.clog_checkpoint_scn_;
mds_checkpoint_scn_ = arg.mds_checkpoint_scn_;
create_type_ = arg.create_type_;
}
return ret;
@ -10640,7 +10642,7 @@ int ObBatchCreateTabletArg::is_old_mds(const char *buf,
DEF_TO_STRING(ObBatchCreateTabletArg)
{
int64_t pos = 0;
J_KV(K_(id), K_(major_frozen_scn), K_(need_check_tablet_cnt), K_(is_old_mds), K_(tablets), K_(tablet_extra_infos), K_(clog_checkpoint_scn), K_(create_type));
J_KV(K_(id), K_(major_frozen_scn), K_(need_check_tablet_cnt), K_(is_old_mds), K_(tablets), K_(tablet_extra_infos), K_(clog_checkpoint_scn), K_(create_type), K_(mds_checkpoint_scn));
return pos;
}
@ -10654,7 +10656,7 @@ OB_DEF_SERIALIZE(ObBatchCreateTabletArg)
} else {
OB_UNIS_ENCODE_ARRAY(tablet_extra_infos_, tablet_extra_infos_.count());
}
LST_DO_CODE(OB_UNIS_ENCODE, clog_checkpoint_scn_, create_type_);
LST_DO_CODE(OB_UNIS_ENCODE, clog_checkpoint_scn_, create_type_, mds_checkpoint_scn_);
return ret;
}
@ -10664,7 +10666,7 @@ OB_DEF_SERIALIZE_SIZE(ObBatchCreateTabletArg)
LST_DO_CODE(OB_UNIS_ADD_LEN, id_, major_frozen_scn_, tablets_, table_schemas_, need_check_tablet_cnt_, is_old_mds_);
len += get_serialize_size_for_create_tablet_schemas();
OB_UNIS_ADD_LEN_ARRAY(tablet_extra_infos_, tablet_extra_infos_.count());
LST_DO_CODE(OB_UNIS_ADD_LEN, clog_checkpoint_scn_, create_type_);
LST_DO_CODE(OB_UNIS_ADD_LEN, clog_checkpoint_scn_, create_type_, mds_checkpoint_scn_);
return len;
}
@ -10708,7 +10710,7 @@ OB_DEF_DESERIALIZE(ObBatchCreateTabletArg)
}
}
}
LST_DO_CODE(OB_UNIS_DECODE, clog_checkpoint_scn_, create_type_);
LST_DO_CODE(OB_UNIS_DECODE, clog_checkpoint_scn_, create_type_, mds_checkpoint_scn_);
return ret;
}

View File

@ -4419,6 +4419,7 @@ public:
common::ObSArray<ObCreateTabletExtraInfo> tablet_extra_infos_;
share::SCN clog_checkpoint_scn_;
storage::ObTabletMdsUserDataType create_type_;
share::SCN mds_checkpoint_scn_;
};
struct ObBatchRemoveTabletArg

View File

@ -2408,6 +2408,7 @@ int ObLSTabletService::create_tablet(
const lib::Worker::CompatMode &compat_mode,
const bool need_create_empty_major_sstable,
const share::SCN &clog_checkpoint_scn,
const share::SCN &mds_checkpoint_scn,
const bool micro_index_clustered,
const bool has_cs_replica,
ObTabletHandle &tablet_handle)
@ -2437,7 +2438,7 @@ int ObLSTabletService::create_tablet(
ret = OB_ERR_UNEXPECTED;
LOG_ERROR("new tablet is null", K(ret), KP(tablet), KP(allocator), K(tablet_handle));
} else if (OB_FAIL(tablet->init_for_first_time_creation(*allocator, ls_id, tablet_id, data_tablet_id,
create_scn, snapshot_version, create_tablet_schema, need_create_empty_major_sstable, clog_checkpoint_scn, micro_index_clustered, need_generate_cs_replica_cg_array, has_cs_replica, freezer))) {
create_scn, snapshot_version, create_tablet_schema, need_create_empty_major_sstable, clog_checkpoint_scn, mds_checkpoint_scn, micro_index_clustered, need_generate_cs_replica_cg_array, has_cs_replica, freezer))) {
LOG_WARN("failed to init tablet", K(ret), K(ls_id), K(tablet_id), K(data_tablet_id),
K(create_scn), K(snapshot_version), K(create_tablet_schema));
} else if (OB_FAIL(tablet->get_updating_tablet_pointer_param(param))) {
@ -2489,6 +2490,7 @@ int ObLSTabletService::create_inner_tablet(
const ObTabletPersisterParam param(ls_id, ls_->get_ls_epoch(), tablet_id, ObTabletTransferInfo::TRANSFER_INIT_SEQ);
ObTimeGuard time_guard("ObLSTabletService::create_inner_tablet", 10_ms);
const share::SCN clog_checkpoint_scn = ObTabletMeta::INIT_CLOG_CHECKPOINT_SCN;
const share::SCN mds_checkpoint_scn = ObTabletMeta::INIT_CLOG_CHECKPOINT_SCN;
ObBucketHashWLockGuard lock_guard(bucket_lock_, tablet_id.hash());
if (OB_FAIL(ObTabletCreateDeleteHelper::create_tmp_tablet(key, allocator, tmp_tablet_hdl))) {
@ -2498,7 +2500,7 @@ int ObLSTabletService::create_inner_tablet(
LOG_ERROR("new tablet is null", K(ret), KPC(tmp_tablet), K(tmp_tablet_hdl));
} else if (FALSE_IT(time_guard.click("CreateTablet"))) {
} else if (OB_FAIL(tmp_tablet->init_for_first_time_creation(allocator, ls_id, tablet_id, data_tablet_id,
create_scn, snapshot_version, create_tablet_schema, true/*need_create_empty_major_sstable*/, clog_checkpoint_scn, false/*micro_index_clustered*/, false/*need_generate_cs_replica_cg_array*/, false/*has_cs_replica*/, freezer))) {
create_scn, snapshot_version, create_tablet_schema, true/*need_create_empty_major_sstable*/, clog_checkpoint_scn, mds_checkpoint_scn, false/*micro_index_clustered*/, false/*need_generate_cs_replica_cg_array*/, false/*has_cs_replica*/, freezer))) {
LOG_WARN("failed to init tablet", K(ret), K(ls_id), K(tablet_id), K(data_tablet_id),
K(create_scn), K(snapshot_version), K(create_tablet_schema));
} else if (FALSE_IT(time_guard.click("InitTablet"))) {

View File

@ -172,6 +172,7 @@ public:
const lib::Worker::CompatMode &compat_mode,
const bool need_create_empty_major_sstable,
const share::SCN &clog_checkpoint_scn,
const share::SCN &mds_checkpoint_scn,
const bool micro_index_clustered,
const bool has_cs_replica,
ObTabletHandle &tablet_handle);

View File

@ -343,6 +343,7 @@ int ObTablet::init_for_first_time_creation(
const ObCreateTabletSchema &create_tablet_schema,
const bool need_create_empty_major_sstable,
const share::SCN &clog_checkpoint_scn,
const share::SCN &mds_checkpoint_scn,
const bool micro_index_clustered,
const bool need_generate_cs_replica_cg_array,
const bool has_cs_replica,
@ -379,7 +380,7 @@ int ObTablet::init_for_first_time_creation(
LOG_WARN("failed to init shared params", K(ret), K(ls_id), K(tablet_id), K(compat_mode), KP(freezer));
} else if (OB_FAIL(tablet_meta_.init(ls_id, tablet_id, data_tablet_id,
create_scn, snapshot_version, compat_mode, table_store_flag, create_tablet_schema.get_schema_version()/*create_schema_version*/,
clog_checkpoint_scn, micro_index_clustered, has_cs_replica, need_generate_cs_replica_cg_array))) {
clog_checkpoint_scn, mds_checkpoint_scn, micro_index_clustered, has_cs_replica, need_generate_cs_replica_cg_array))) {
LOG_WARN("failed to init tablet meta", K(ret), K(ls_id), K(tablet_id), K(data_tablet_id),
K(create_scn), K(snapshot_version), K(compat_mode), K(table_store_flag));
} else if (OB_FAIL(pull_memtables(allocator))) {
@ -602,6 +603,7 @@ int ObTablet::init_for_shared_merge(
old_tablet.tablet_meta_.table_store_flag_,
old_tablet.tablet_meta_.create_schema_version_,
SCN::invalid_scn()/*clog_checkpoint_scn*/,
SCN::invalid_scn()/*mds_checkpoint_scn*/,
old_tablet.tablet_meta_.micro_index_clustered_,
false /*has_cs_replica*/,
false /*need_generate_cs_replica_cg_array*/))) {

View File

@ -197,6 +197,7 @@ public:
const ObCreateTabletSchema &storage_schema,
const bool need_create_empty_major_sstable,
const share::SCN &clog_checkpoint_scn,
const share::SCN &mds_checkpoint_scn,
const bool micro_index_clustered,
const bool need_generate_cs_replica_cg_array,
const bool has_cs_replica,

View File

@ -676,6 +676,7 @@ int ObTabletCreateMdsHelper::build_pure_data_tablet(
const lib::Worker::CompatMode &compat_mode = info.compat_mode_;
const int64_t snapshot_version = arg.major_frozen_scn_.get_val_for_tx();
const share::SCN &clog_checkpoint_scn = arg.clog_checkpoint_scn_;
const share::SCN &mds_checkpoint_scn = arg.mds_checkpoint_scn_;
const bool has_cs_replica = info.has_cs_replica_;
ObTabletHandle tablet_handle;
bool exist = false;
@ -719,7 +720,7 @@ int ObTabletCreateMdsHelper::build_pure_data_tablet(
LOG_WARN("check and get create tablet schema_info failed", K(ret));
} else if (CLICK_FAIL(ls->get_tablet_svr()->create_tablet(ls_id, data_tablet_id, data_tablet_id,
scn, snapshot_version, *create_tablet_schema, compat_mode,
need_create_empty_major_sstable, clog_checkpoint_scn, micro_index_clustered, has_cs_replica, tablet_handle))) {
need_create_empty_major_sstable, clog_checkpoint_scn, mds_checkpoint_scn, micro_index_clustered, has_cs_replica, tablet_handle))) {
LOG_WARN("failed to do create tablet", K(ret), K(ls_id), K(data_tablet_id), "arg", PRETTY_ARG(arg));
}
@ -751,6 +752,7 @@ int ObTabletCreateMdsHelper::build_mixed_tablets(
const ObSArray<obrpc::ObCreateTabletExtraInfo> &create_tablet_extra_infos = arg.tablet_extra_infos_;
const int64_t snapshot_version = arg.major_frozen_scn_.get_val_for_tx();
const share::SCN &clog_checkpoint_scn = arg.clog_checkpoint_scn_;
const share::SCN &mds_checkpoint_scn = arg.mds_checkpoint_scn_;
const bool has_cs_replica = info.has_cs_replica_;
ObTabletHandle data_tablet_handle;
ObTabletHandle tablet_handle;
@ -808,7 +810,7 @@ int ObTabletCreateMdsHelper::build_mixed_tablets(
LOG_WARN("failed to push back tablet id", K(ret), K(ls_id), K(tablet_id));
} else if (CLICK_FAIL(ls->get_tablet_svr()->create_tablet(ls_id, tablet_id, data_tablet_id,
scn, snapshot_version, *create_tablet_schema, compat_mode,
need_create_empty_major_sstable, clog_checkpoint_scn, micro_index_clustered, has_cs_replica, tablet_handle))) {
need_create_empty_major_sstable, clog_checkpoint_scn, mds_checkpoint_scn, micro_index_clustered, has_cs_replica, tablet_handle))) {
LOG_WARN("failed to do create tablet", K(ret), K(ls_id), K(tablet_id), K(data_tablet_id), "arg", PRETTY_ARG(arg));
}
@ -858,6 +860,7 @@ int ObTabletCreateMdsHelper::build_pure_aux_tablets(
const ObSArray<obrpc::ObCreateTabletExtraInfo> &create_tablet_extra_infos = arg.tablet_extra_infos_;
const int64_t snapshot_version = arg.major_frozen_scn_.get_val_for_tx();
const share::SCN &clog_checkpoint_scn = arg.clog_checkpoint_scn_;
const share::SCN &mds_checkpoint_scn = arg.mds_checkpoint_scn_;
const bool has_cs_replica = info.has_cs_replica_;
ObTabletHandle tablet_handle;
bool exist = false;
@ -905,7 +908,7 @@ int ObTabletCreateMdsHelper::build_pure_aux_tablets(
LOG_WARN("check and get create tablet schema_info failed", K(ret));
} else if (CLICK_FAIL(ls->get_tablet_svr()->create_tablet(ls_id, tablet_id, data_tablet_id,
scn, snapshot_version, *create_tablet_schema, compat_mode,
need_create_empty_major_sstable, clog_checkpoint_scn, micro_index_clustered, has_cs_replica, tablet_handle))) {
need_create_empty_major_sstable, clog_checkpoint_scn, mds_checkpoint_scn, micro_index_clustered, has_cs_replica, tablet_handle))) {
LOG_WARN("failed to do create tablet", K(ret), K(ls_id), K(tablet_id), K(data_tablet_id), "arg", PRETTY_ARG(arg));
}
@ -940,6 +943,7 @@ int ObTabletCreateMdsHelper::build_bind_hidden_tablets(
const ObSArray<obrpc::ObCreateTabletExtraInfo> &create_tablet_extra_infos = arg.tablet_extra_infos_;
const int64_t snapshot_version = arg.major_frozen_scn_.get_val_for_tx();
const share::SCN &clog_checkpoint_scn = arg.clog_checkpoint_scn_;
const share::SCN &mds_checkpoint_scn = arg.mds_checkpoint_scn_;
const bool has_cs_replica = info.has_cs_replica_;
ObTabletHandle tablet_handle;
int64_t aux_info_idx = -1;
@ -1010,7 +1014,7 @@ int ObTabletCreateMdsHelper::build_bind_hidden_tablets(
LOG_WARN("failed to push back tablet id", K(ret), K(ls_id), K(tablet_id));
} else if (CLICK_FAIL(ls->get_tablet_svr()->create_tablet(ls_id, tablet_id, tablet_id,
scn, snapshot_version, *create_tablet_schema, compat_mode,
need_create_empty_major_sstable, clog_checkpoint_scn, micro_index_clustered, has_cs_replica, tablet_handle))) {
need_create_empty_major_sstable, clog_checkpoint_scn, mds_checkpoint_scn, micro_index_clustered, has_cs_replica, tablet_handle))) {
LOG_WARN("failed to do create tablet", K(ret), K(ls_id), K(tablet_id), K(orig_tablet_id), "arg", PRETTY_ARG(arg));
}

View File

@ -88,6 +88,7 @@ int ObTabletMeta::init(
const ObTabletTableStoreFlag &table_store_flag,
const int64_t create_schema_version,
const share::SCN &clog_checkpoint_scn,
const share::SCN &mds_checkpoint_scn,
const bool micro_index_clustered,
const bool has_cs_replica,
const bool need_generate_cs_replica_cg_array)
@ -129,7 +130,7 @@ int ObTabletMeta::init(
ddl_snapshot_version_ = 0;
max_sync_storage_schema_version_ = create_schema_version;
ddl_data_format_version_ = 0;
mds_checkpoint_scn_ = INIT_CLOG_CHECKPOINT_SCN;
mds_checkpoint_scn_ = mds_checkpoint_scn.is_valid() ? mds_checkpoint_scn : INIT_CLOG_CHECKPOINT_SCN;
report_status_.merge_snapshot_version_ = snapshot_version;
report_status_.cur_report_version_ = snapshot_version;
report_status_.data_checksum_ = 0;

View File

@ -71,6 +71,7 @@ public:
const ObTabletTableStoreFlag &table_store_flag,
const int64_t create_schema_version,
const share::SCN &clog_checkpoint_scn,
const share::SCN &mds_checkpoint_scn,
const bool micro_index_clustered,
const bool has_cs_replica,
const bool need_generate_cs_replica_cg_array);

View File

@ -443,7 +443,8 @@ int TestCompactionPolicy::mock_tablet(
LOG_WARN("failed to init storage schema", KR(ret), K(table_schema));
} else if (FALSE_IT(need_generate_cs_replica_cg_array = ls_handle.get_ls()->is_cs_replica() && create_tablet_schema.is_row_store() && create_tablet_schema.is_user_data_table())) {
} else if (OB_FAIL(tablet->init_for_first_time_creation(allocator, ls_id, tablet_id, tablet_id,
SCN::min_scn(), snapshot_version, create_tablet_schema, need_empty_major_table, SCN::invalid_scn(), false/*micro_index_clustered*/, need_generate_cs_replica_cg_array, false/*has_cs_replica*/, ls_handle.get_ls()->get_freezer()))) {
SCN::min_scn(), snapshot_version, create_tablet_schema, need_empty_major_table, SCN::invalid_scn()/*clog_checkpoint_scn*/,
SCN::invalid_scn()/*mds_checkpoint_scn*/, false/*micro_index_clustered*/, need_generate_cs_replica_cg_array, false/*has_cs_replica*/, ls_handle.get_ls()->get_freezer()))) {
LOG_WARN("failed to init tablet", K(ret), K(ls_id), K(tablet_id), K(snapshot_version),
K(table_schema), K(compat_mode));
} else {

View File

@ -138,7 +138,8 @@ inline int TestTabletHelper::create_tablet(
} else if (OB_FAIL(tablet_handle.get_obj()->init_for_first_time_creation(
*tablet_handle.get_allocator(),
ls_id, tablet_id, tablet_id, share::SCN::base_scn(),
snapshot_version, create_tablet_schema, need_create_empty_major_sstable, share::SCN::invalid_scn(), false/*micro_index_clustered*/, need_generate_cs_replica_cg_array, false/*has_cs_replica*/, freezer))){
snapshot_version, create_tablet_schema, need_create_empty_major_sstable, share::SCN::invalid_scn()/*clog_checkpoint_scn*/,
share::SCN::invalid_scn()/*mds_checkpoint_scn*/, false/*micro_index_clustered*/, need_generate_cs_replica_cg_array, false/*has_cs_replica*/, freezer))){
STORAGE_LOG(WARN, "failed to init tablet", K(ret), K(ls_id), K(tablet_id));
} else if (ObTabletStatus::Status::MAX != tablet_status) {
ObTabletCreateDeleteMdsUserData data;