Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

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

Abierto
#3,166 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 4 días

@Sruhvx-jpg ya está trabajando en esto.

Desde el 7/9/2026.

  • #3165 de @Sruhvx-jpg — abierto

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
52/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
rust
Área
backend, cloud

Línea de trabajo

Comienza con ObjectStoreStorage::S3, ObjectStoreWriter, FileWrite::write y las llamadas a WriteMultipart descritas en el issue. Comprueba el análisis de URL para buckets vacíos y rutas que solo contienen un bucket, y después inspecciona delete_stream y la gestión del estado de writer antes de evaluar wait_for_capacity. El trabajo estará terminado cuando los casos límite indicados devuelvan los errores esperados, las escrituras eviten el buffering redundante, las pruebas de state-guard cubran los fallos de close/write y la memoria usada por el streaming esté acotada adecuadamente.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
Rust
Estrellas
1.4k
Forks
604
Merge medio
5 d 20 h
PR fusionados (30 d)
63

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de apache/iceberg-rust

Todos los issues de apache/iceberg-rust

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.