Sergey Chugunov created IGNITE-29282:
----------------------------------------

             Summary: Control utility: add --safe-to-stop-sets command to 
compute groups of nodes that can be stopped simultaneously without data loss
                 Key: IGNITE-29282
                 URL: https://issues.apache.org/jira/browse/IGNITE-29282
             Project: Ignite
          Issue Type: New Feature
            Reporter: Sergey Chugunov
            Assignee: Sergey Chugunov


h3. Motivation
If cluster maintenance operation requires stopping of nodes, the nodes are 
restarted one by one, because stopping an arbitrary group may leave partitions 
without a complete copy and cause data loss. Deciding which nodes may go down 
together requires manual analysis of baseline, affinity and partition loss 
policies.

Such a command removes that analysis and allows maintenance in batches instead 
of one node at a time, making upgrades and other planned works significantly 
faster while still guaranteeing no data loss.

h3. Goal
Add a read-only informational command to the control utility:

    control.sh --safe-to-stop-sets

It computes and prints groups of server nodes that may be stopped simultaneously
without losing data, i.e. the required number of copies of every partition 
remains
on the nodes that keep running.

h3. Proposed behaviour
* Regular management command Control Utility API.
* Read-only and advisory: no baseline, cache or cluster state changes; the 
operator or
  a script decides how to use the result.
* Clear message when no safe set exists (only single-node groups are safe), so 
scripts
  can react on the exit code.
* Must handle caches with different backup counts and partition loss policies, 
nodes
  not in the baseline, offline nodes, and clusters with and without native 
persistence.

h3. Out of scope
* Actually stopping nodes and orchestrating the maintenance procedure (possible 
follow-up).
* The precise algorithm and formal definition of a "safe" set — subject of a 
separate
  design/spec task; this ticket fixes the UX, the command contract and 
integration points.

h3. Acceptance criteria
* --safe-to-stop-sets returns a valid result on a typical multi-node cluster 
with
  backups > 0 and a clear message when no safe set exists.
* Command is discoverable via --help; --host/--port/--user/--password/SSL 
options work.
* Tests: unit tests for argument parsing plus integration tests with and without
  persistence and with baseline auto-adjust on/off.
* Documentation: command reference updated.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to