Catalog loader cannot pass a Runtime to the catalog it builds
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 82/100
Línea de trabajo
Comienza en BoxedCatalogBuilder y compara cómo with_storage_factory y with_kms_client_factory reenvían a CatalogBuilder. Añade el punto de entrada de reenvío correspondiente with_runtime y verifica después que iceberg_catalog_loader::load("rest") pueda configurar un runtime antes de cargar el catálogo.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Is your feature request related to a problem or challenge?
CatalogBuilder::with_runtime lets a caller choose the runtime a catalog, and the tables it creates, spawn their work on (scan planning, delete file processing). A catalog built through iceberg-catalog-loader cannot be given one: BoxedCatalogBuilder forwards with_storage_factory and with_kms_client_factory to the underlying CatalogBuilder, but has no with_runtime.
So a catalog chosen by type at runtime (iceberg_catalog_loader::load("rest")) always uses the runtime current when it is built, since the builders fall back to Runtime::current(). An application that keeps Iceberg work on a dedicated runtime, for example so that catalog clients and cached tables outlive the runtime of the request that built them, has to either build every catalog inside that runtime or give up the loader and match on catalog types itself.
Describe the solution you'd like
Add with_runtime to BoxedCatalogBuilder, forwarding to CatalogBuilder::with_runtime the same way the other two methods are forwarded:
let catalog = iceberg_catalog_loader::load("rest")?
.with_runtime(runtime)
.load("rest".to_string(), props)
.await?;
This mirrors how with_kms_client_factory was added to the loader in #2650. Every builder in the loader's registry already implements CatalogBuilder::with_runtime, so nothing else changes.
Willingness to contribute
I can contribute to this feature independently
- Lenguaje dominante
- Rust
- Estrellas
- 1.4k
- Forks
- 574
- Merge medio
- 1 d 20 h
- PR fusionados (30 d)
- 65
Preparar el entorno
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de apache/iceberg-rust
-
Remove license clarification for zstd-sys once workspace upgrades zstd (zstd 0.14, zstd-sys 2.1)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
apache/iceberg-rust#3307 ·
Los mantenedores suelen responder en 1 día
-
datafusion
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
apache/iceberg-rust#3297 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
apache/iceberg-rust#3280 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
apache/iceberg-rust#3234 · 2 reacciones ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
apache/iceberg-rust#3229 ·
Los mantenedores suelen responder en 1 día
Todos los issues de apache/iceberg-rust
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
stellar/stellar-cli#2773 ·
Los mantenedores suelen responder en 2 días
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
voidzero-dev/oxc-angular-compiler#511 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 86/100
yantrikos/yantrik-os#539 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
documentation station:mac ui-dashboard
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
rolter-ai/rolter#2490 · 1 comentario ·
Los mantenedores suelen responder en 1 día