backport #38000
This commit is contained in:
@ -472,6 +472,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");
|
||||
|
||||
@ -521,6 +521,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);
|
||||
|
||||
@ -165,8 +165,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,
|
||||
|
||||
Reference in New Issue
Block a user