This is an automated email from the ASF dual-hosted git repository.

dataroaring pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 497a1c94e28 [config](be) add be config migration_lock_timeout_ms 
(#38000)
497a1c94e28 is described below

commit 497a1c94e2859077052ee9084d726c1df97258ba
Author: Kaijie Chen <[email protected]>
AuthorDate: Thu Jul 18 11:37:36 2024 +0800

    [config](be) add be config migration_lock_timeout_ms (#38000)
    
    ## Proposed changes
    
    Add be config `migration_lock_timeout_ms` and increase default value
    from `30ms` to `1000ms`.
---
 be/src/common/config.cpp       | 2 ++
 be/src/common/config.h         | 2 ++
 be/src/olap/rowset_builder.cpp | 6 ++++--
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/be/src/common/config.cpp b/be/src/common/config.cpp
index 06156fd8598..3e9203987c2 100644
--- a/be/src/common/config.cpp
+++ b/be/src/common/config.cpp
@@ -484,6 +484,8 @@ DEFINE_mInt32(migration_remaining_size_threshold_mb, "10");
 // If the task runs longer than this time, the task will be terminated, in 
seconds.
 // timeout = std::max(migration_task_timeout_secs,  tablet size / 1MB/s)
 DEFINE_mInt32(migration_task_timeout_secs, "300");
+// timeout for try_lock migration lock
+DEFINE_Int64(migration_lock_timeout_ms, "1000");
 
 // Port to start debug webserver on
 DEFINE_Int32(webserver_port, "8040");
diff --git a/be/src/common/config.h b/be/src/common/config.h
index f0d127df0fc..1ce9c66939c 100644
--- a/be/src/common/config.h
+++ b/be/src/common/config.h
@@ -534,6 +534,8 @@ DECLARE_mInt32(migration_remaining_size_threshold_mb);
 // If the task runs longer than this time, the task will be terminated, in 
seconds.
 // timeout = std::max(migration_task_timeout_secs,  tablet size / 1MB/s)
 DECLARE_mInt32(migration_task_timeout_secs);
+// timeout for try_lock migration lock
+DECLARE_Int64(migration_lock_timeout_ms);
 
 // Port to start debug webserver on
 DECLARE_Int32(webserver_port);
diff --git a/be/src/olap/rowset_builder.cpp b/be/src/olap/rowset_builder.cpp
index 2fc3d58b491..93058c05be3 100644
--- a/be/src/olap/rowset_builder.cpp
+++ b/be/src/olap/rowset_builder.cpp
@@ -170,8 +170,10 @@ Status RowsetBuilder::check_tablet_version_count() {
 
 Status RowsetBuilder::prepare_txn() {
     std::shared_lock base_migration_lock(tablet()->get_migration_lock(), 
std::defer_lock);
-    if (!base_migration_lock.try_lock_for(std::chrono::milliseconds(30))) {
-        return Status::Error<TRY_LOCK_FAILED>("try migration lock failed");
+    if (!base_migration_lock.try_lock_for(
+                std::chrono::milliseconds(config::migration_lock_timeout_ms))) 
{
+        return Status::Error<TRY_LOCK_FAILED>("try_lock migration lock failed 
after {}ms",
+                                              
config::migration_lock_timeout_ms);
     }
     std::lock_guard<std::mutex> push_lock(tablet()->get_push_lock());
     return _engine.txn_manager()->prepare_txn(_req.partition_id, *tablet(), 
_req.txn_id,


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to