Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

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

Aperta
#3,166 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 4 giorni

@Sruhvx-jpg ci sta già lavorando.

Dal 7/9/2026.

  • #3165 di @Sruhvx-jpg — aperta

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
52/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
rust
Ambito
backend, cloud

Direzione di ricerca

Inizia con ObjectStoreStorage::S3, ObjectStoreWriter, FileWrite::write e le chiamate a WriteMultipart descritte nell’issue. Controlla il parsing degli URL per i bucket vuoti e i percorsi costituiti solo da un bucket, quindi esamina delete_stream e la gestione dello stato del writer prima di valutare wait_for_capacity. Il lavoro è completato quando gli edge case elencati restituiscono gli errori previsti, le scritture evitano il buffering ridondante, i test di state-guard coprono gli errori di close/write e la memoria dello streaming è opportunamente limitata.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Problem / Context

In #3165 (reviving #2257 for #2259), the foundational ObjectStoreStorage::S3 backend is established. To ensure production robustness and performance in the write pipeline, several edge cases and optimizations should be addressed as follow-up work:

Proposed Improvements
  1. Zero-Copy Writes in ObjectStoreWriter:

    • FileWrite::write receives owned bytes::Bytes.
    • object_store::WriteMultipart provides a put(Bytes) method that buffers without slice copying, avoiding redundant extend_from_slice allocations.
  2. S3 URL Boundary Validation:

    • Empty bucket strings (e.g. s3:///path/to/file or s3://) currently pass initial URL host parsing as "". These should explicitly return ErrorKind::DataInvalid.
    • Ensure paths without trailing slashes (s3://bucket) extract bucket and empty relative path cleanly.
  3. Stream Handling & State Machine Guards:

    • Validate delete_stream on empty streams (futures::stream::empty()) and ensure immediate error propagation on invalid URLs.
    • Add unit test coverage for ObjectStoreWriter state guards (e.g., verifying close() and write() error handling after writer has been closed).
  4. Backpressure & Memory Throttling:

    • For high-throughput streaming, evaluate WriteMultipart::wait_for_capacity to throttle producers and prevent unbounded 5MB chunk allocations in memory ahead of S3 network uploads.
Related
  • #2258 (Umbrella: Implement Storage using object_store)
  • #2259 (Implement ObjectStoreStorage::S3)
  • #3165 (feat(storage): Implement ObjectStoreStorage::S3)

AI Disclosure

Drafted with AI assistance; reviewed and verified by contributor.

Lingua principale
Rust
Stelle
1.4k
Fork
604
Merge medio
5g 11h
PR unite (30g)
59

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di apache/iceberg-rust

Tutte le issue di apache/iceberg-rust

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.