[ 
https://issues.apache.org/jira/browse/IGNITE-4637?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ozerov updated IGNITE-4637:
------------------------------------
    Description: 
*Normal flow*
1) When participating node completed operation, it sends 
{{PARTICIPANT_FINISHED}} message to coordinator.
2) When coordinator collected responses from all participants, it notifies 
originator with {{FINISHED}} request.
3) Originator responds coordinator with {{FINISHED_ACK}} message.
4) Coordinator responds to all originators with {{PARTICIPANT_FINISHED_ACK}} 
message.

*Originator leave*
1) Coordinator marks originator as "notified", and sends 
{{PARTICIPANT_FINISHED_ACK}} message to participants after all 
{{PARTICIPANT_FINISHED}} are collected.

*Participant leave*
1) Coordinator marks participant as "finished" and no longer waits for any 
responses from it.

*Coordinator leave*
1) The oldest node among remaining participants is elected as new coordinator.
2) Other participants re-send {{PARTICIPANT_FINISHED}} message to new 
coordinator.
3) If it was the last participating node, then originator must be informed 
about the failure. It means that client must be aware of participating nodes. 
Otherwise it's future will never be completed.






> Implement DDL operation completion protocol
> -------------------------------------------
>
>                 Key: IGNITE-4637
>                 URL: https://issues.apache.org/jira/browse/IGNITE-4637
>             Project: Ignite
>          Issue Type: Sub-task
>          Components: SQL
>            Reporter: Vladimir Ozerov
>             Fix For: 2.0
>
>
> *Normal flow*
> 1) When participating node completed operation, it sends 
> {{PARTICIPANT_FINISHED}} message to coordinator.
> 2) When coordinator collected responses from all participants, it notifies 
> originator with {{FINISHED}} request.
> 3) Originator responds coordinator with {{FINISHED_ACK}} message.
> 4) Coordinator responds to all originators with {{PARTICIPANT_FINISHED_ACK}} 
> message.
> *Originator leave*
> 1) Coordinator marks originator as "notified", and sends 
> {{PARTICIPANT_FINISHED_ACK}} message to participants after all 
> {{PARTICIPANT_FINISHED}} are collected.
> *Participant leave*
> 1) Coordinator marks participant as "finished" and no longer waits for any 
> responses from it.
> *Coordinator leave*
> 1) The oldest node among remaining participants is elected as new coordinator.
> 2) Other participants re-send {{PARTICIPANT_FINISHED}} message to new 
> coordinator.
> 3) If it was the last participating node, then originator must be informed 
> about the failure. It means that client must be aware of participating nodes. 
> Otherwise it's future will never be completed.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to