diff --git a/lib/gitlab/database/partitioning/partition_manager.rb b/lib/gitlab/database/partitioning/partition_manager.rb
index 8c892b49d87b4fc451d22342c3564b3d95bbe16c..45b280b66529363e5880493666674b3cdad50760 100644
--- a/lib/gitlab/database/partitioning/partition_manager.rb
+++ b/lib/gitlab/database/partitioning/partition_manager.rb
@@ -13,6 +13,19 @@ class PartitionManager
         MANAGEMENT_LEASE_KEY = 'database_partition_management_%s'
         RETAIN_DETACHED_PARTITIONS_FOR = 1.week
 
+        LOCK_RETRIES_TIMING_CONFIGURATION = [
+          [0.1.seconds, 0.05.seconds],
+          [0.1.seconds, 0.05.seconds],
+          [0.2.seconds, 0.05.seconds],
+          [0.3.seconds, 0.10.seconds],
+          [0.4.seconds, 0.15.seconds],
+          [0.5.seconds, 2.seconds],
+          [0.5.seconds, 2.seconds],
+          [0.5.seconds, 2.seconds],
+          [0.5.seconds, 2.seconds],
+          [1.second, 5.seconds]
+        ].freeze
+
         def initialize(model, connection: nil)
           @model = model
           @connection = connection || model.connection
@@ -135,6 +148,7 @@ def assert_partition_detachable!(partition)
 
         def with_lock_retries(&block)
           Gitlab::Database::WithLockRetries.new(
+            timing_configuration: LOCK_RETRIES_TIMING_CONFIGURATION * 2,
             klass: self.class,
             logger: Gitlab::AppLogger,
             connection: connection