feat(config): add hot-reload extension points (#1619) - #1626
Conversation
3d69037 to
e84476a
Compare
9f707cf to
c86a813
Compare
e84476a to
df57a63
Compare
c86a813 to
bf8f1e8
Compare
df57a63 to
e482f42
Compare
bf8f1e8 to
0612789
Compare
e482f42 to
c96ee5b
Compare
0612789 to
7dab6a6
Compare
szbr00
left a comment
There was a problem hiding this comment.
Re-reviewed head c96ee5b against base unified-conf-p5. Dirty crate: curvine-config (reload.rs + lib.rs export).
Previous findings on apply_to error swallowing, LogConf Reloadable, and overlay rank are addressed: apply_to returns CommonResult and the collision test fails closed; LogConf is a documented future candidate only; apply_to and the module Effective layer order match pipeline.rs (file → env → overlay → deserialize).
Inspected overlay set/replace/clear and snapshot isolation tests, the set_dotted collision path, ConfigHandle Arc swap (lock not held after get), no production callers (intentional per #1619), no proto/SDK/lockfile changes, and no data-path impact.
One leftover: RuntimeOverlay / Admin-API docs still say "above the file layer" (see inline). Not blocking.
c96ee5b to
ce17af0
Compare
7dab6a6 to
e177e94
Compare
c57d5f1 to
8b3b25a
Compare
e177e94 to
9bcfe50
Compare
8b3b25a to
6974902
Compare
Summary
Sixth PR of the stacked series for #1619 (6/7). Adds hot-reload extension points only — no watcher or admin RPC is wired yet.
Issue Describe / Design
Related to #1619 (partial). Depends on the preceding stacked PRs.
Reloadablemarker: sections safe to swap at runtime (first implementation:LogConf).RuntimeOverlay: ephemeral admin-pushed dotted-path overrides, deliberately lost on restart.ConfigHandle:Arc-snapshot holder; readers clone the Arc, so a swap never tears an in-flight consumer. No new dependencies.ClusterConf.Changes
crates/common/curvine-config/src/reload.rs(new)crates/common/curvine-config/src/lib.rsreloadmoduleTest verified
cargo test -p curvine-configDependencies