[Server] Add the server-side primary-key table bulk-load protocol
Los mantenedores suelen responder en 2 días
@Anurag15v ya está trabajando en esto.
Desde el 4/10/2026.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 30/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- java
- Área
- databases, distributed-systems
Línea de trabajo
Comienza localizando la interfaz RPC interna de Coordinator y las rutas existentes de transacciones y recuperación. Rastrea el target fencing, la validación del manifiesto, la restauración de réplicas, la reconciliación tras failover y reinicio, y el manejo de commits duraderos; se considera terminado cuando las operaciones de ciclo de vida indicadas funcionan para tablas o particiones sin exponer resultados parciales.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Search before asking
- I searched in the issues and found nothing similar.
Description
Add a complete server-side transaction protocol for atomically loading an empty
primary-key table or partition from externally built KV snapshots.
The server must own the transaction lifecycle, prevent access while the target
is being loaded, validate the submitted manifest, install every bucket, and
publish the target only after the complete result is ready.
The protocol should be usable through the internal Coordinator RPC interface.
A high-level client SDK is tracked separately.
Scope
- Add Begin, GetInProgress, Commit, and Abort RPCs.
- Support both a complete primary-key table and one physical partition as the
transaction target. - Reject non-primary-key and non-empty targets.
- Freeze the target identity, schema, bucket count, remote data directory, and
snapshot IDs when beginning a transaction. - Fence the target and prevent ordinary access until it becomes active again.
- Allow only one active bulk-load transaction for a target.
- Validate the manifest and require complete coverage of every target bucket.
- Persist the Commit decision before publishing the imported snapshots.
- Restore the imported snapshots on the assigned replicas.
- Publish the complete target atomically after all required replicas are ready.
- Abort transactions that have not crossed the durable Commit decision.
- Resume transactions after Coordinator failover.
- Reconcile TabletServer restart, leader change, and assignment change during
protocol execution. - Retain terminal results for recovery and remove expired transaction metadata.
- Protect active bulk-load files from orphan cleanup.
- Reject unsupported rolling-upgrade combinations through server capability
checks.
Willingness to contribute
- I'm willing to submit a PR!
- Lenguaje dominante
- Java
- Estrellas
- 2.2k
- Forks
- 663
- Merge medio
- 2 d 21 h
- PR fusionados (30 d)
- 118
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
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/fluss
-
[lake/iceberg] Reserved write-mode properties can be set and reset through their `iceberg.` keyPosiblemente ocupada @aphenix-r7 la tomó hace 17 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
apache/fluss#4658 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
[common] Decimal#hashCode is inconsistent with Decimal#equalsPosiblemente ocupada @firasbouzazi la tomó hace 29 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
apache/fluss#4538 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
[security] PlainSaslServerProvider conflicts with Hadoop SASL provider causing authentication failurePosiblemente ocupada @xinzhang-hello la tomó hace 34 días. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Los mantenedores suelen responder en 2 días
-
[server] KV snapshot scheduling stops permanently after a transient snapshot-init failurePosiblemente ocupada @zhang-arvin la tomó hace 34 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
apache/fluss#4489 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
[docs] Document advertised-resource and ACL principal ignore-case optionsPosiblemente ocupada @EchoLee5 la tomó hace 46 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 2 días
Todos los issues de apache/fluss
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
[Bug]: WriteFileTool shows "Error reading file" snippet for relative paths when baseDir is setPosiblemente ocupada @ShryukGrandhi la tomó hoy. Abierto
Dificultad 2/5 Menos de una hora Aptitud para principiantes 86/100
agentscope-ai/agentscope-java#3917 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
intellij-elixir/intellij-elixir#4585 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
MetricsHub/metricshub-community#1474 ·
Los mantenedores suelen responder en 1 día
-
go:build
Dificultad 2/5 1-3 horas Aptitud para principiantes 60/100
Sanne/incus-spawn#1929 ·
Los mantenedores suelen responder en 1 día