[ 
https://issues.apache.org/jira/browse/IGNITE-13198?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17184684#comment-17184684
 ] 

Igor Seliverstov edited comment on IGNITE-13198 at 8/25/20, 7:01 PM:
---------------------------------------------------------------------

Reworked in a next way:

Because a node having intermediate fragment may leave, there will be nobody who 
closes upstream fragment execution. Now a root fragment node is responsible for 
closing(cancelling) all query fragments.

It seems overcomplicated to pass an error through all query fragments, so, an 
error is sent right to a root fragment node (after the error reaches an Outbox 
node inside a local execution fragment).

Node left events are processed by Inbox nodes, it allows simpler failover 
handling and an ability to successfully finish a query in case it got all 
needed data from a failed node. On node left an error will be passed to a user 
and query will be automatically closed.

Root node left event is processed by Outbox node, this way a query will be 
automatically closed.


was (Author: gvvinblade):
Reworked in a next way:

Because a node, having intermediate fragment, may leave there will be nobody 
who closes upstream fragment execution. Now a root fragment node is responsible 
for closing(cancelling) all query fragments.

It seems overcomplicated to pass an error through all query fragments, so, an 
error is sent right to a root fragment node (after the error reaches an Outbox 
node inside a local execution fragment).

Node left events are processed by Inbox nodes, it allows simpler failover 
handling and an ability to successfully finish a query in case it got all 
needed data from a failed node. On node left an error will be passed to a user 
and query will be automatically closed.

Root node left event is processed by Outbox node, this way a query will be 
automatically closed.

> Calcite integration. Rework error / cancel logic at execution
> -------------------------------------------------------------
>
>                 Key: IGNITE-13198
>                 URL: https://issues.apache.org/jira/browse/IGNITE-13198
>             Project: Ignite
>          Issue Type: Improvement
>          Components: sql
>            Reporter: Taras Ledkov
>            Assignee: Igor Seliverstov
>            Priority: Major
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Change error & cancel logic on query execution.
> *Error*
> - propagated from source to downstream nodes.
> - Always propagated to the RootNode;
> - RootNode receive an error and cancel all execution tree.
> *Cancel*
> - propagated from downstream to source;
> - any node may cancel its execution sub-tree;
> - (technical details) to prevent race on Inbox creation Outbox resend Cancel 
> message to Inbox.



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

Reply via email to