Skip to content

Commit 952f0c9

Browse files
committed
(selectdb-cloud) Add retry when delete bitmap lock expired on group commit
1 parent dff9f49 commit 952f0c9

File tree

1 file changed

+20
-7
lines changed

1 file changed

+20
-7
lines changed

be/src/runtime/group_commit_mgr.cpp

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -446,13 +446,26 @@ Status GroupCommitTable::_finish_group_commit_load(int64_t db_id, int64_t table_
446446
}
447447
TLoadTxnCommitResult result;
448448
TNetworkAddress master_addr = _exec_env->master_info()->network_address;
449-
st = ThriftRpcHelper::rpc<FrontendServiceClient>(
450-
master_addr.hostname, master_addr.port,
451-
[&request, &result](FrontendServiceConnection& client) {
452-
client->loadTxnCommit(result, request);
453-
},
454-
10000L);
455-
result_status = Status::create(result.status);
449+
int retry_times = 0;
450+
while (retry_times < config::mow_stream_load_commit_retry_times) {
451+
st = ThriftRpcHelper::rpc<FrontendServiceClient>(
452+
master_addr.hostname, master_addr.port,
453+
[&request, &result](FrontendServiceConnection& client) {
454+
client->loadTxnCommit(result, request);
455+
},
456+
10000L);
457+
result_status = Status::create(result.status);
458+
// DELETE_BITMAP_LOCK_ERROR will be retried
459+
if (result_status.ok() || !result_status.is<ErrorCode::DELETE_BITMAP_LOCK_ERROR>()) {
460+
break;
461+
}
462+
LOG_WARNING("Failed to commit txn on group commit")
463+
.tag("label", label)
464+
.tag("txn_id", txn_id)
465+
.tag("retry_times", retry_times)
466+
.error(result_status);
467+
retry_times++;
468+
}
456469
} else {
457470
// abort txn
458471
TLoadTxnRollbackRequest request;

0 commit comments

Comments
 (0)