[ 
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 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.

  was:
Proposed design:

*LN* -- node that performs graceful shutdown
*CRD* -- Leader (coordinator) of Ignite cluster
*N* -- Other nodes of Ignite cluster.

#  While elected, *CRD* set watches on /<root>/ns
# *LN* create EPHEMERAL znode on /<root>/ns
# *LN* blocks stop until receive NODE_LEFT event.
# *CRD* receives notification and reset watches on /<root>/ns
# *CRD* generate NODE_LEFT event.
# *LN* receives events and continue stop process
# *N* acks message and remove node from local node map.
# *CRD* on receiving all acks checks that there is no nodes on /<root>/ns and 
/<root>/n
related to *LN* and remove them if they presents.


> 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 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.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to