apache / apache/arrow-rs-object-store
Expose the underlying `Backoff` rng source to support DST
- 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
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