Dynamic config DELETE should fall back to the default value, not the server.yaml startup value
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 28/100
Direzione di ricerca
Start from the server-side handling of AlterConfigOpType.DELETE for dynamic cluster configs, and from Admin.alterClusterConfigs() and describeClusterConfigs() as the entry points. Trace where the startup value from server.yaml is kept alongside dynamic overrides. The issue leaves open whether to change DELETE or add a RESET_TO_DEFAULT op, so confirm the direction with a maintainer first. Done means a deleted key reverts to the Fluss default and is no longer listed as DYNAMIC_SERVER_CONFIG, including the same-value case.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Search before asking
- I searched in the issues and found nothing similar.
Motivation
Today, Admin.alterClusterConfigs() with AlterConfigOpType.DELETE removes a dynamic override, and the server falls back to the value it read from server.yaml at startup. Only when the key is absent from server.yaml does it fall back to the Fluss default. A startup value cannot be removed through the API at all; only a restart with an edited server.yaml removes it.
This is a problem for tooling that owns server.yaml, such as a Kubernetes operator that renders the file from a custom resource and pushes dynamic keys through the Admin API. When a user removes a dynamic key from the resource, the tool rewrites server.yaml for the next restart, but it has no way to apply the removal to the running servers:
- If the key was only in
server.yaml, there is no override to delete, and the server keeps the old value. - If the key was changed since startup,
DELETEdrops the override, and the server goes back to the old startup value instead of the default.
In both cases the running cluster keeps a value the user removed, and a full rolling restart is the only way to apply a change to a key that is meant to be dynamic.
Example, with kv.snapshot.interval: 10min in server.yaml:
SET kv.snapshot.interval=20min: the server uses 20min.DELETE kv.snapshot.interval: the server uses 10min again, not the default.
Solution
Make DELETE remove the key's effective value entirely, so the server uses the Fluss default whether or not server.yaml sets the key. describeClusterConfigs() would then list nothing for that key.
If changing DELETE itself is a compatibility concern, an explicit opt-in gives the same result, for example a new AlterConfigOpType such as RESET_TO_DEFAULT, which removes both the override and the startup value of a dynamic key.
Anything else?
A related issue appears in 1.0.0. If an override is set to the same value as the startup value and then deleted, the deletion is skipped and the override stays listed as DYNAMIC_SERVER_CONFIG. The change above would remove that case too.
Willingness to contribute
- I'm willing to submit a PR!
- Lingua principale
- Java
- Stelle
- 2.2k
- Fork
- 658
- Merge medio
- 3g 1h
- PR unite (30g)
- 120
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Nessuna 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/fluss
-
[lake/iceberg] Reserved write-mode properties can be set and reset through their `iceberg.` keyForse già presa @aphenix-r7 l’ha presa 15 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
apache/fluss#4658 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
[common] Decimal#hashCode is inconsistent with Decimal#equalsForse già presa @firasbouzazi l’ha presa 26 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
apache/fluss#4538 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
[security] PlainSaslServerProvider conflicts with Hadoop SASL provider causing authentication failureForse già presa @xinzhang-hello l’ha presa 32 giorni fa. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
I maintainer di solito rispondono entro 2 giorni
-
[server] KV snapshot scheduling stops permanently after a transient snapshot-init failureForse già presa @zhang-arvin l’ha presa 32 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
apache/fluss#4489 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
[docs] Document advertised-resource and ACL principal ignore-case optionsForse già presa @EchoLee5 l’ha presa 44 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di apache/fluss
Issue simili
-
bug/错误
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
FCL-Team/FoldCraftLauncher#1982 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[BUG] micronaut-serde-oracle-jdbc-json brings a second OJDBC driver onto the runtime classpathForse già presa @ZARAYACH l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
micronaut-projects/micronaut-serialization#1494 · 4 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
I maintainer di solito rispondono entro 2 giorni
-
bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
vitruv-tools/Vitruv-Change#600 ·
I maintainer di solito rispondono entro 1 giorno
-
code-health feature/sync OS/Android QA/Test-Plan-Specified QA/Yes
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
brave/brave-browser#60327 ·
I maintainer di solito rispondono entro 1 giorno