You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-10-31 18:30:33 +03:00
- Add SharedStorageMonitor thread to periodically verify shared storage: * Writes a temp file to the shared location and validates MD5 from all nodes. * Skips nodes with unstable recent heartbeats; retries once; defers decision if any node is unreachable. * Updates a cluster-wide stateful flag (shared_storage_on) only on conclusive checks. - New CMAPI endpoints: * PUT /cmapi/{ver}/cluster/check-shared-storage — orchestrates cross-node checks. * GET /cmapi/{ver}/node/check-shared-file — validates a given file’s MD5 on a node. * PUT /cmapi/{ver}/node/stateful-config — fast path to distribute stateful config updates. - Introduce in-memory stateful config (AppStatefulConfig) with versioned flags (term/seq) and shared_storage_on flag: * Broadcast via helpers.broadcast_stateful_config and enhanced broadcast_new_config. * Config PUT is now validated with Pydantic models; supports stateful-only updates and set_mode requests. - Failover behavior: * NodeMonitor keeps failover inactive when shared_storage_on is false or cluster size < 3. * Rebalancing DBRoots becomes a no-op when shared storage is OFF (safety guard). - mcl status improvements: per-node 'state' (online/offline), better timeouts and error reporting. - Routing/wiring: add dispatcher routes for new endpoints; add ClusterModeEnum. - Tests: cover shared-storage monitor (unreachable nodes, HB-based skipping), node manipulation with shared storage ON/OFF, and server/config flows. - Dependencies: add pydantic; minor cleanups and logging.