Commit graph

13 commits

Author SHA1 Message Date
ce62406f2c fix: validate --conf-keep-n >= 1 and --conf-stale-timeout >= 0 in argument parsing 2026-05-13 16:00:09 +00:00
e74fd2aac3 feat: main.c — null conffile (now heap-allocated), add --conf-keep-n/--conf-stale-timeout flags, peers validation 2026-05-13 15:57:02 +00:00
14de6c4fa6 fix incorrect handle of -n option 2026-05-09 06:58:57 +00:00
7e4528a0b9 refactor: consolidate parse_peers into xce_parse_peers in libxce
Three identical static copies (controller, worker, scheduler) replaced
with a single xce_parse_peers() in src/lib/cluster.c.

The libxce version is the canonical implementation: stores the logical
name from 'name=host:port' syntax so daemons on the same dev host can
identify themselves by name rather than IP address.
2026-05-08 07:06:57 +00:00
a05c9bd344 feat: support name=host:port format in controller --peers
- xce_candidate_t gains name[] field for logical peer identity
- parse_peers stores name prefix before '=' (empty when omitted)
- cluster_init matches own identity by name first, hostname as fallback
  enabling multiple controllers on the same dev host via
  --peers ctrl-1=10.0.1.1:7000,ctrl-2=10.0.1.2:7001
2026-05-08 06:51:54 +00:00
59597e105e feat: add --peers to controller for HA peer list and priority election
- myconf_t gains peers_cfg (xce_cluster_config_t) populated from --peers
- controller/main.c: parse --peers host:port,... via argp; ca_cert_path
  auto-derived from workdir/certs/xce.crt (no --ca-cert flag needed)
- cluster_init: derive my_priority from position in peers list (index 0 =
  primary); fall back to 0 when --peers not given (single-node mode)
2026-05-08 04:40:27 +00:00
b52fbef36d feat: wire persist_init/recover/start/stop into cluster lifecycle (P0-F)
- Add `persist_t persist` field to cluster_t (cluster_def.h includes persist.h)
- Add `workdir` and `name` fields to myconf_t; main.c passes them through
- cluster_init: call persist_set_workdir, persist_init, persist_recover after apiserver_init
- cluster_start: call persist_start (launches fsync thread + registers WAL hooks)
- cluster_fini: call persist_stop + persist_fini before delaymgr/vtaskmgr teardown
- persist_init: store cluster back-pointer (replaces (void)c stub)
- persist_start: register persist_job/queue/worker_hook_fun via xce_add_hook when cluster != NULL
- Add test_cluster_persist.c: compile-time struct check + config defaults + workdir path derivation
- Register test in controller_test.c and meson.build

All controller tests pass (1/1 OK, 50s).
2026-05-07 13:07:47 +00:00
123b656dcf save work status 2025-12-10 17:24:43 +08:00
8f796b3109 security communication with openssl and simplify netio 2025-11-18 11:26:36 +08:00
9ff857db9f reformat code and job array 2025-11-07 16:14:27 +08:00
a665ccd4fe reshape controller startup 2025-11-06 17:17:26 +08:00
9f91f3df80 eliminate initial configure(use command line options) 2025-11-06 16:12:02 +08:00
Rongsong Shen
41f56fa6ed update controller code 2025-11-05 16:58:57 +08:00