feat(storage): write pipeline robustness and edge-case handling for object_store backend
I maintainer di solito rispondono entro 4 giorni
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 52/100
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
-
Zero-Copy Writes in
ObjectStoreWriter:FileWrite::writereceives ownedbytes::Bytes.object_store::WriteMultipartprovides aput(Bytes)method that buffers without slice copying, avoiding redundantextend_from_sliceallocations.
-
S3 URL Boundary Validation:
- Empty bucket strings (e.g.
s3:///path/to/fileors3://) currently pass initial URL host parsing as"". These should explicitly returnErrorKind::DataInvalid. - Ensure paths without trailing slashes (
s3://bucket) extractbucketand empty relative path cleanly.
- Empty bucket strings (e.g.
-
Stream Handling & State Machine Guards:
- Validate
delete_streamon empty streams (futures::stream::empty()) and ensure immediate error propagation on invalid URLs. - Add unit test coverage for
ObjectStoreWriterstate guards (e.g., verifyingclose()andwrite()error handling after writer has been closed).
- Validate
-
Backpressure & Memory Throttling:
- For high-throughput streaming, evaluate
WriteMultipart::wait_for_capacityto throttle producers and prevent unbounded 5MB chunk allocations in memory ahead of S3 network uploads.
- For high-throughput streaming, evaluate
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
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di apache/iceberg-rust
-
REST create_table omits partition spec-id; Java-based servers (Polaris) reject itForse già presa @ahlag l’ha presa 1 giorno fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
apache/iceberg-rust#3469 · 1 commento ·
I maintainer di solito rispondono entro 4 giorni
-
V1 manifest lists written by Java lose added/existing/deleted file countsForse già presa @kacper-li-airspace-intelligence l’ha presa 4 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
apache/iceberg-rust#3445 ·
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
apache/iceberg-rust#3359 ·
I maintainer di solito rispondono entro 4 giorni
-
Row filter keeps every row for `<` and `<=` on a null column that is missing from the data fileAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
apache/iceberg-rust#3355 · 1 reazione ·
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
apache/iceberg-rust#3348 ·
I maintainer di solito rispondono entro 4 giorni
Tutte le issue di apache/iceberg-rust
Issue simili
-
The book has a Nix install section that chelis.ch lacks, and it names two of the three systemsApertaarea:ecosystem documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
Chelis-Lang/chelis#3866 ·
I maintainer di solito rispondono entro 1 giorno
-
[安卓Feature]: 数字键盘左侧符号区域大小优化Apertaenhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
metasequoiaime/msime#8620 ·
I maintainer di solito rispondono entro 1 giorno
-
agent-detection macos p2 triaged
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
I maintainer di solito rispondono entro 1 giorno
-
bug documentation sev-0
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
I maintainer di solito rispondono entro 1 giorno