Unify tablet creation to use ObCreateTabletSchema

This commit is contained in:
JiahuaChen
2024-02-06 17:08:57 +00:00
committed by ob-robot
parent 600495620c
commit 034f8a27bb
14 changed files with 95 additions and 199 deletions

View File

@ -388,6 +388,8 @@ int TestCompactionPolicy::mock_tablet(
ObLSHandle ls_handle;
ObLSService *ls_svr = nullptr;
ObArenaAllocator arena_allocator;
ObCreateTabletSchema create_tablet_schema;
if (OB_ISNULL(t3m)) {
ret = OB_ERR_UNEXPECTED;
@ -401,8 +403,11 @@ int TestCompactionPolicy::mock_tablet(
} else if (OB_FAIL(ObTabletCreateDeleteHelper::create_tmp_tablet(key, allocator, tablet_handle))) {
LOG_WARN("failed to acquire tablet", K(ret), K(key));
} else if (FALSE_IT(tablet = tablet_handle.get_obj())) {
} else if (OB_FAIL(create_tablet_schema.init(arena_allocator, table_schema, compat_mode,
false/*skip_column_info*/, ObCreateTabletSchema::STORAGE_SCHEMA_VERSION_V3))) {
LOG_WARN("failed to init storage schema", KR(ret), K(table_schema));
} else if (OB_FAIL(tablet->init_for_first_time_creation(allocator, ls_id, tablet_id, tablet_id,
SCN::min_scn(), snapshot_version, table_schema, compat_mode, need_empty_major_table, ls_handle.get_ls()->get_freezer()))) {
SCN::min_scn(), snapshot_version, create_tablet_schema, need_empty_major_table, 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

@ -110,17 +110,22 @@ inline int TestTabletHelper::create_tablet(
int ret = OB_SUCCESS;
ObTenantMetaMemMgr *t3m = MTL(ObTenantMetaMemMgr*);
ObLSTabletService *ls_tablet_svr = ls_handle.get_ls()->get_tablet_svr();
const lib::Worker::CompatMode compat_mode = lib::Worker::CompatMode::MYSQL;
ObArenaAllocator schema_allocator;
ObCreateTabletSchema create_tablet_schema;
ObTabletCreateSSTableParam param;
prepare_sstable_param(tablet_id, table_schema, param);
void *buff = nullptr;
if (OB_FAIL(ObSSTableMergeRes::fill_column_checksum_for_empty_major(param.column_cnt_, param.column_checksums_))) {
if (OB_FAIL(create_tablet_schema.init(schema_allocator, table_schema, compat_mode,
false/*skip_column_info*/, ObCreateTabletSchema::STORAGE_SCHEMA_VERSION_V3))) {
STORAGE_LOG(WARN, "failed to init storage schema", KR(ret), K(table_schema));
} else if (OB_FAIL(ObSSTableMergeRes::fill_column_checksum_for_empty_major(param.column_cnt_, param.column_checksums_))) {
STORAGE_LOG(WARN, "fill column checksum failed", K(ret), K(param));
} else {
const int64_t snapshot_version = 1;
const share::ObLSID &ls_id = ls_handle.get_ls()->get_ls_id();
ObFreezer *freezer = ls_handle.get_ls()->get_freezer();
const lib::Worker::CompatMode compat_mode = lib::Worker::CompatMode::MYSQL;
ObTabletHandle tablet_handle;
const ObTabletMapKey key(ls_id, tablet_id);
if (OB_FAIL(t3m->create_msd_tablet(WashTabletPriority::WTP_HIGH, key, ls_handle, tablet_handle))) {
@ -128,7 +133,7 @@ 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, table_schema, compat_mode, true, freezer))){
snapshot_version, create_tablet_schema, true, 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;