apache / apache/datafusion

Replace `ObjectStoreRegistry` with `object_store`'s new `ObjectStoreRegistry`

Open
#15,983 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Rust
Stars
9.3k
Forks
2.4k
Avg merge
3d 7h
Merged PRs (30d)
344

Description

### Is your feature request related to a problem or challenge?

I'm working with the `object_store` folks on upstreaming DataFusion's [`ObjectStoreRegistry`](https://docs.rs/datafusion/latest/datafusion/datasource/object_store/trait.ObjectStoreRegistry.html) implementation. Part of the goal is that DataFusion would adopt this new registry. I want to check with y'all that the `object_store` version meets your needs.

The PR is here:

https://github.com/apache/arrow-rs-object-store/pull/348

The implementation is largely the same, but there have been a few tweaks:

- Replaced `dashmap` with an RWLock+HashMap to remove `dashmap` dependency
- Remove `ObjectStoreUrl`
- Add `list_urls` method
- Use `object_store::parse_url` to create an `ObjectStore` on `get_store` cache miss (if possible)
- Adds registry tests
- Minor doc updates
- `get_store` returns an `Option` now instead of `Result`

Would you guys be open to adopting this new version?

### Describe the solution you'd like

_No response_

### Describe alternatives you've considered

_No response_

### Additional context

_No response_

Contributor guide

Open the contributing guide

Research direction

Start by reading DataFusion's existing ObjectStoreRegistry implementation and compare it with the upstream object_store PR linked in the issue. Check whether the proposed API changes meet DataFusion's needs, including registry tests and get_store behavior; done means agreeing on and adopting the new registry version.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
data-engineering
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.