apache / apache/arrow-rs-object-store

Expose the underlying `Backoff` rng source to support DST

Open
#788 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Rust
Stars
322
Forks
212
Avg merge
5d 2h
Merged PRs (30d)
10

Description

**Is your feature request related to a problem or challenge? Please describe what you are trying to do.**

I'm using `object-store` as the IO layer for some [deterministic simulation testing](https://antithesis.com/docs/resources/deterministic_simulation_testing/) work. I'm trying to control all sources of randomness, and one of the things I've realized is that there's no way to seed `Backoff` and `BackoffStrategy`, so I have to disable retries completely, but I would actually love to use them.

**Describe the solution you'd like**

Through `RetryConfig -> RetryContext`, provide an optional way to seed the RNG inside of `Backoff`.

**Describe alternatives you've considered**
The alternatives I can think of are:
1. Fork and patch `object-store` (Like [madsim](https://github.com/madsim-rs/madsim) does).
2. `LD_PRELOAD` something, which seems more fragile.

Happy to do the work to figure it out, I just want to get a sense as to how the maintainers feel about it.

Contributor guide

Open the contributing guide

Research direction

Start by tracing the RetryConfig -> RetryContext flow into Backoff and BackoffStrategy, focusing on where their random source is created. Define what an optional seed or RNG source should control, then verify that retries remain usable and deterministic when configured for simulation testing.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.