optimize ddl kv dump scheduler and ddl commit
This commit is contained in:
@ -1177,8 +1177,10 @@ int ObTenantTabletScheduler::schedule_tablet_ddl_major_merge(
|
||||
int ret = OB_SUCCESS;
|
||||
ObDDLTableMergeDagParam param;
|
||||
ObTabletDirectLoadMgrHandle direct_load_mgr_handle;
|
||||
ObDDLKvMgrHandle ddl_kv_mgr_handle;
|
||||
ObTenantDirectLoadMgr *tenant_direct_load_mgr = MTL(ObTenantDirectLoadMgr *);
|
||||
bool is_major_sstable_exist = false;
|
||||
bool has_freezed_ddl_kv = false;
|
||||
if (OB_UNLIKELY(!ls_id.is_valid() || !tablet_handle.is_valid())) {
|
||||
ret = OB_INVALID_ARGUMENT;
|
||||
LOG_WARN("invalid argument", K(ret), K(ls_id), K(tablet_handle));
|
||||
@ -1200,13 +1202,19 @@ int ObTenantTabletScheduler::schedule_tablet_ddl_major_merge(
|
||||
} else {
|
||||
LOG_WARN("get tablet direct load mgr failed", K(ret), "tablet_id", tablet_handle.get_obj()->get_tablet_meta().tablet_id_);
|
||||
}
|
||||
} else if (OB_FAIL(tablet_handle.get_obj()->get_ddl_kv_mgr(ddl_kv_mgr_handle))) {
|
||||
LOG_WARN("get ddl kv mgr failed", K(ret));
|
||||
} else if (OB_FAIL(ddl_kv_mgr_handle.get_obj()->check_has_freezed_ddl_kv(has_freezed_ddl_kv))) {
|
||||
LOG_WARN("check has freezed ddl kv failed", K(ret));
|
||||
} else if (OB_FAIL(direct_load_mgr_handle.get_full_obj()->prepare_ddl_merge_param(*tablet_handle.get_obj(), param))) {
|
||||
if (OB_EAGAIN != ret) {
|
||||
LOG_WARN("prepare major merge param failed", K(ret), "tablet_id", tablet_handle.get_obj()->get_tablet_meta().tablet_id_);
|
||||
}
|
||||
} else if (OB_FAIL(compaction::ObScheduleDagFunc::schedule_ddl_table_merge_dag(param))) {
|
||||
if (OB_SIZE_OVERFLOW != ret && OB_EAGAIN != ret) {
|
||||
LOG_WARN("schedule ddl merge dag failed", K(ret), K(param));
|
||||
} else if (has_freezed_ddl_kv || param.is_commit_) {
|
||||
if (OB_FAIL(compaction::ObScheduleDagFunc::schedule_ddl_table_merge_dag(param))) {
|
||||
if (OB_SIZE_OVERFLOW != ret && OB_EAGAIN != ret) {
|
||||
LOG_WARN("schedule ddl merge dag failed", K(ret), K(param));
|
||||
}
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
|
||||
Reference in New Issue
Block a user