apache / apache/arrow-rs-object-store
[object_store] Runtime Agnostic Retry Machinery
- 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.**
Whilst the HttpClient abstraction allows spawning work to a separate tokio runtime, see apache/arrow-rs#7253, the retry machinery itself also makes use of tokio - see [here](https://github.com/apache/arrow-rs/blob/main/object_store/src/client/retry.rs#L361).
This forces the calling context to be a tokio content.
**Describe the solution you'd like**
I think we should make it possible to use object_store in a non-tokio runtime.
**Describe alternatives you've considered**
We could simply disable backoff and rety if not called from a tokio runtime.
**Additional context**
Contributor guide
Research direction
Read object_store/src/client/retry.rs around line 361 and the HttpClient abstraction referenced in the issue. Trace how retry and backoff are invoked and identify the Tokio runtime assumptions; done means object_store can be used from a non-Tokio runtime while retaining retry behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100