Skip to content

feat(storage): Implement ObjectStoreStorage::S3 (Supersedes #2257) - #3165

Open
Sruhvx-jpg wants to merge 4 commits into
apache:mainfrom
Sruhvx-jpg:revive-os-s3
Open

feat(storage): Implement ObjectStoreStorage::S3 (Supersedes #2257)#3165
Sruhvx-jpg wants to merge 4 commits into
apache:mainfrom
Sruhvx-jpg:revive-os-s3

Conversation

@Sruhvx-jpg

@Sruhvx-jpg Sruhvx-jpg commented Sep 7, 2026

Copy link
Copy Markdown

Which issue does this PR close?

What changes are included in this PR?

Implement ObjectStoreStorage::S3 backed by Apache Arrow's object_store crate. Originally drafted by @CTTY in #2257 and revived onto current main:

  • Hoist object_store 0.13 to workspace dependencies (aligned with DataFusion).
  • Support s3://, s3a://, and s3n:// URL schemes with empty bucket validation.
  • Implement zero-copy writes via WriteMultipart::put(bs) instead of slice copying.
  • Implement concurrent delete_stream using try_for_each_concurrent.
  • Add unit tests for URL parsing (including edge cases) and FileIO/Storage serialization roundtrips.
  • Wire crate workspace lints and publish flag.

Are these changes tested?

Yes, all 12 unit tests covering S3 URL parsing, empty bucket checks, store cache reuse, and FileIO/StorageFactory serialization roundtrips passing (cargo test -p iceberg-storage-object_store).

CTTY and others added 2 commits September 7, 2026 14:59
…oncurrent deletes

- Hoist `object_store` 0.13 to workspace dependencies to align with DataFusion.
- Support `s3n://` scheme alongside `s3://` and `s3a://` in `parse_s3_url`.
- Optimize `delete_stream` with `try_for_each_concurrent` instead of sequential loop.
- Add unit tests for `s3n://` URL parsing and FileIO/Storage serialization roundtrips.
- Wire crate workspace lints and publish flag.
@Sruhvx-jpg

Copy link
Copy Markdown
Author

Apologies for any notification noise from the extra PR earlier. Everything has been cleanly unified into this PR :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(storage): write pipeline robustness and edge-case handling for object_store backend Implement ObjectStoreStorage::S3

2 participants