Skip to content

Commit 107d9e3

Browse files
hust-hhbdataroaring
authored andcommitted
[fix](group commit) Add retry when delete bitmap lock expired on group commit (#37600)
group commit writing mow table may encouter delete bitmap lock expired, add retry mechanism to avoid group commit fail.
1 parent c0fad87 commit 107d9e3

File tree

1 file changed

+21
-7
lines changed

1 file changed

+21
-7
lines changed

be/src/runtime/group_commit_mgr.cpp

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include <chrono>
2424

2525
#include "client_cache.h"
26+
#include "cloud/config.h"
2627
#include "common/compiler_util.h"
2728
#include "common/config.h"
2829
#include "common/status.h"
@@ -446,13 +447,26 @@ Status GroupCommitTable::_finish_group_commit_load(int64_t db_id, int64_t table_
446447
}
447448
TLoadTxnCommitResult result;
448449
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);
450+
int retry_times = 0;
451+
while (retry_times < config::mow_stream_load_commit_retry_times) {
452+
st = ThriftRpcHelper::rpc<FrontendServiceClient>(
453+
master_addr.hostname, master_addr.port,
454+
[&request, &result](FrontendServiceConnection& client) {
455+
client->loadTxnCommit(result, request);
456+
},
457+
10000L);
458+
result_status = Status::create(result.status);
459+
// DELETE_BITMAP_LOCK_ERROR will be retried
460+
if (result_status.ok() || !result_status.is<ErrorCode::DELETE_BITMAP_LOCK_ERROR>()) {
461+
break;
462+
}
463+
LOG_WARNING("Failed to commit txn on group commit")
464+
.tag("label", label)
465+
.tag("txn_id", txn_id)
466+
.tag("retry_times", retry_times)
467+
.error(result_status);
468+
retry_times++;
469+
}
456470
} else {
457471
// abort txn
458472
TLoadTxnRollbackRequest request;

0 commit comments

Comments
 (0)