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

github-merge-queue[bot] pushed a commit to branch 
gh-readonly-queue/main/pr-3610-2079e5851768bc4ef24df707d7faa664406375bf
in repository https://gitbox.apache.org/repos/asf/iceberg-rust.git

commit 46e51d80f78906013783c91b74f4d4ef7b4a352b
Author: Yuang Gao <[email protected]>
AuthorDate: Wed Nov 4 06:12:54 2026 +0000

    feat(transaction): add jitter to the commit retry backoff (#3610)
    
    * feat(transaction): add jitter to the commit retry backoff
    
    * test(transaction): compare two backoffs instead of asserting jitter bounds
---
 crates/iceberg/src/transaction/mod.rs | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/crates/iceberg/src/transaction/mod.rs 
b/crates/iceberg/src/transaction/mod.rs
index cd31ca0a2..830a2d7e7 100644
--- a/crates/iceberg/src/transaction/mod.rs
+++ b/crates/iceberg/src/transaction/mod.rs
@@ -214,6 +214,7 @@ impl Transaction {
             )))
             .with_max_times(props.commit_num_retries()?)
             .with_factor(2.0)
+            .with_jitter()
             .build())
     }
 
@@ -567,6 +568,18 @@ mod tests {
         }
     }
 
+    #[test]
+    fn test_commit_backoff_is_jittered() {
+        let table = setup_test_table("4");
+        let delays = || {
+            Transaction::build_backoff(table.metadata().table_properties())
+                .unwrap()
+                .collect::<Vec<_>>()
+        };
+
+        assert_ne!(delays(), delays());
+    }
+
     #[tokio::test]
     async fn test_transaction_snapshot_summary() {
         let catalog = new_memory_catalog().await;

Reply via email to