[ https://issues.apache.org/jira/browse/IGNITE-13577?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ivan Daschinskiy updated IGNITE-13577: -------------------------------------- Description: Proposed design: *LN* -- node that performs graceful shutdown *CRD* -- Leader (coordinator) of Ignite cluster *N* -- Other nodes of Ignite cluster. # *LN* create PERSISTENT *flag* znode with path /<root>/sf/<node_id> # *LN* delete own znode in /<root>/n as usual. # *CRD* receives notification and check if exists *flag* for this node # *CRD* generate NODE_LEFT event with flag fail=false, otherwise fail=true # *CRD* save event as usual, then delete *flag*. # Cluster process events as usual. was: Proposed design: *LN* -- node that performs graceful shutdown *CRD* -- Leader (coordinator) of Ignite cluster *N* -- Other nodes of Ignite cluster. # *LN* create EPHEMERAL *latch* znode with path /<root>/nl/<node_id> and set watcher on it # *LN* delete own znode in /<root>/n as usual. # *LN* blocks with timeout stop until *latch* exists. # *CRD* receives notification and check if exists *latch* for this node # *CRD* generate NODE_LEFT event with flag fail=false, otherwise fail=true # *N* acks events. # *CRD* on receiving all acks remove *latch* for leaving node if exists. # *LN* receives notification and proceed with node stop. > Add support to graceful shutdown for ZookeeperDiscoverySpi > ---------------------------------------------------------- > > Key: IGNITE-13577 > URL: https://issues.apache.org/jira/browse/IGNITE-13577 > Project: Ignite > Issue Type: Improvement > Reporter: Ivan Daschinskiy > Assignee: Ivan Daschinskiy > Priority: Major > Time Spent: 10m > Remaining Estimate: 0h > > Proposed design: > *LN* -- node that performs graceful shutdown > *CRD* -- Leader (coordinator) of Ignite cluster > *N* -- Other nodes of Ignite cluster. > # *LN* create PERSISTENT *flag* znode with path /<root>/sf/<node_id> > # *LN* delete own znode in /<root>/n as usual. > # *CRD* receives notification and check if exists *flag* for this node > # *CRD* generate NODE_LEFT event with flag fail=false, otherwise fail=true > # *CRD* save event as usual, then delete *flag*. > # Cluster process events as usual. -- This message was sent by Atlassian Jira (v8.3.4#803005)