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

Reply via email to