tolerant for multi ddl execution on single tablet
This commit is contained in:
committed by
wangzelin.wzl
parent
6677ad6fb7
commit
92fffa7357
@ -309,7 +309,7 @@ int ObComplementDataContext::write_start_log(const ObComplementDataParam ¶m)
|
||||
} else if (OB_UNLIKELY(!hidden_table_key.is_valid())) {
|
||||
ret = OB_INVALID_ARGUMENT;
|
||||
LOG_WARN("invalid table key", K(ret), K(hidden_table_key));
|
||||
} else if (OB_FAIL(data_sstable_redo_writer_.start_ddl_redo(hidden_table_key))) {
|
||||
} else if (OB_FAIL(data_sstable_redo_writer_.start_ddl_redo(hidden_table_key, ddl_kv_mgr_handle_))) {
|
||||
LOG_WARN("fail write start log", K(ret), K(hidden_table_key), K(param));
|
||||
} else {
|
||||
LOG_INFO("complement task start ddl redo success", K(hidden_table_key));
|
||||
@ -327,6 +327,7 @@ void ObComplementDataContext::destroy()
|
||||
allocator_.free(index_builder_);
|
||||
index_builder_ = nullptr;
|
||||
}
|
||||
ddl_kv_mgr_handle_.reset();
|
||||
allocator_.reset();
|
||||
}
|
||||
|
||||
@ -1176,7 +1177,11 @@ int ObComplementMergeTask::add_build_hidden_table_sstable()
|
||||
1/*execution_id*/,
|
||||
param_->task_id_,
|
||||
prepare_log_ts))) {
|
||||
LOG_WARN("fail write ddl prepare log", K(ret), K(hidden_table_key));
|
||||
if (OB_TASK_EXPIRED == ret) {
|
||||
LOG_INFO("ddl task expired, but return success", K(ret), K(hidden_table_key), KPC(param_));
|
||||
} else {
|
||||
LOG_WARN("fail write ddl prepare log", K(ret), K(hidden_table_key));
|
||||
}
|
||||
} else {
|
||||
ObTabletHandle new_tablet_handle; // no use here
|
||||
ObDDLKvMgrHandle ddl_kv_mgr_handle;
|
||||
@ -1190,9 +1195,17 @@ int ObComplementMergeTask::add_build_hidden_table_sstable()
|
||||
param_->hidden_table_schema_->get_table_id(),
|
||||
1/*execution_id*/,
|
||||
param_->task_id_))) {
|
||||
LOG_WARN("commit ddl log failed", K(ret), K(ddl_start_log_ts), K(prepare_log_ts), K(hidden_table_key));
|
||||
if (OB_TASK_EXPIRED == ret) {
|
||||
LOG_INFO("ddl task expired, but return success", K(ret), K(ls_id), K(tablet_id),
|
||||
K(ddl_start_log_ts), "new_ddl_start_log_ts", ddl_kv_mgr_handle.get_obj()->get_start_log_ts());
|
||||
ret = OB_SUCCESS;
|
||||
} else {
|
||||
LOG_WARN("commit ddl log failed", K(ret), K(ddl_start_log_ts), K(prepare_log_ts), K(hidden_table_key));
|
||||
}
|
||||
} else if (OB_FAIL(ddl_kv_mgr_handle.get_obj()->wait_ddl_commit(ddl_start_log_ts, prepare_log_ts))) {
|
||||
if (OB_TASK_EXPIRED == ret) {
|
||||
LOG_INFO("ddl task expired, but return success", K(ret), K(ls_id), K(tablet_id),
|
||||
K(ddl_start_log_ts), "new_ddl_start_log_ts", ddl_kv_mgr_handle.get_obj()->get_start_log_ts());
|
||||
ret = OB_SUCCESS;
|
||||
} else {
|
||||
LOG_WARN("wait ddl commit failed", K(ret), K(ddl_start_log_ts), K(hidden_table_key));
|
||||
|
||||
Reference in New Issue
Block a user