[fix](transaction) fix publish txn fake succ (#24273)
This commit is contained in:
@ -1525,17 +1525,18 @@ void PublishVersionTaskPool::_publish_version_worker_thread_callback() {
|
||||
DorisMetrics::instance()->publish_task_request_total->increment(1);
|
||||
VLOG_NOTICE << "get publish version task. signature=" << agent_task_req.signature;
|
||||
|
||||
std::vector<TTabletId> error_tablet_ids;
|
||||
std::vector<TTabletId> succ_tablet_ids;
|
||||
std::set<TTabletId> error_tablet_ids;
|
||||
std::map<TTabletId, TVersion> succ_tablets;
|
||||
// partition_id, tablet_id, publish_version
|
||||
std::vector<std::tuple<int64_t, int64_t, int64_t>> discontinuous_version_tablets;
|
||||
uint32_t retry_time = 0;
|
||||
Status status;
|
||||
bool is_task_timeout = false;
|
||||
while (retry_time < PUBLISH_VERSION_MAX_RETRY) {
|
||||
succ_tablets.clear();
|
||||
error_tablet_ids.clear();
|
||||
EnginePublishVersionTask engine_task(publish_version_req, &error_tablet_ids,
|
||||
&succ_tablet_ids, &discontinuous_version_tablets);
|
||||
&succ_tablets, &discontinuous_version_tablets);
|
||||
status = StorageEngine::instance()->execute_task(&engine_task);
|
||||
if (status.ok()) {
|
||||
break;
|
||||
@ -1584,25 +1585,22 @@ void PublishVersionTaskPool::_publish_version_worker_thread_callback() {
|
||||
.tag("transaction_id", publish_version_req.transaction_id)
|
||||
.tag("error_tablets_num", error_tablet_ids.size())
|
||||
.error(status);
|
||||
finish_task_request.__set_error_tablet_ids(error_tablet_ids);
|
||||
} else {
|
||||
if (!config::disable_auto_compaction &&
|
||||
!MemInfo::is_exceed_soft_mem_limit(GB_EXCHANGE_BYTE)) {
|
||||
for (int i = 0; i < succ_tablet_ids.size(); i++) {
|
||||
for (auto [tablet_id, _] : succ_tablets) {
|
||||
TabletSharedPtr tablet =
|
||||
StorageEngine::instance()->tablet_manager()->get_tablet(
|
||||
succ_tablet_ids[i]);
|
||||
StorageEngine::instance()->tablet_manager()->get_tablet(tablet_id);
|
||||
if (tablet != nullptr) {
|
||||
tablet->publised_count++;
|
||||
if (tablet->publised_count % 10 == 0) {
|
||||
StorageEngine::instance()->submit_compaction_task(
|
||||
tablet, CompactionType::CUMULATIVE_COMPACTION, true);
|
||||
LOG(INFO) << "trigger compaction succ, tabletid:" << succ_tablet_ids[i]
|
||||
LOG(INFO) << "trigger compaction succ, tablet_id:" << tablet_id
|
||||
<< ", publised:" << tablet->publised_count;
|
||||
}
|
||||
} else {
|
||||
LOG(WARNING)
|
||||
<< "trigger compaction failed, tabletid:" << succ_tablet_ids[i];
|
||||
LOG(WARNING) << "trigger compaction failed, tablet_id:" << tablet_id;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1611,7 +1609,7 @@ void PublishVersionTaskPool::_publish_version_worker_thread_callback() {
|
||||
LOG_INFO("successfully publish version")
|
||||
.tag("signature", agent_task_req.signature)
|
||||
.tag("transaction_id", publish_version_req.transaction_id)
|
||||
.tag("tablets_num", succ_tablet_ids.size())
|
||||
.tag("tablets_num", succ_tablets.size())
|
||||
.tag("cost(s)", cost_second);
|
||||
}
|
||||
|
||||
@ -1620,7 +1618,9 @@ void PublishVersionTaskPool::_publish_version_worker_thread_callback() {
|
||||
finish_task_request.__set_task_type(agent_task_req.task_type);
|
||||
finish_task_request.__set_signature(agent_task_req.signature);
|
||||
finish_task_request.__set_report_version(_s_report_version);
|
||||
finish_task_request.__set_error_tablet_ids(error_tablet_ids);
|
||||
finish_task_request.__set_succ_tablets(succ_tablets);
|
||||
finish_task_request.__set_error_tablet_ids(
|
||||
std::vector<TTabletId>(error_tablet_ids.begin(), error_tablet_ids.end()));
|
||||
|
||||
_finish_task(finish_task_request);
|
||||
_remove_task_info(agent_task_req.task_type, agent_task_req.signature);
|
||||
|
||||
Reference in New Issue
Block a user