[
https://issues.apache.org/jira/browse/IGNITE-18225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17706004#comment-17706004
]
Evgeny Stanilovsky edited comment on IGNITE-18225 at 3/28/23 1:29 PM:
----------------------------------------------------------------------
[~mzhuravkov] As i can see, we still use
_FragmentMapping#updatingTableAssignments()_ , do we need to get rid of them ?
was (Author: zstan):
[~mzhuravkov] As i can see, we still use
_FragmentMapping#updatingTableAssignments()_ , d owe need to get rid of them ?
> Sql. Pushdown MODIFY to data node
> ---------------------------------
>
> Key: IGNITE-18225
> URL: https://issues.apache.org/jira/browse/IGNITE-18225
> Project: Ignite
> Issue Type: Improvement
> Components: sql
> Reporter: Konstantin Orlov
> Assignee: Maksim Zhuravkov
> Priority: Major
> Labels: ignite-3
> Fix For: 3.0.0-beta2
>
> Time Spent: 2.5h
> Remaining Estimate: 0h
>
> Currently, ModifyNode can only have distribution "single". This means that
> this node will be executed on a single node, and the input should be gathered
> at one place. Assume the following query: UPDATE t SET a = a + 1. Such a
> query will be executed in 2 steps: first we select the rows to update and
> then do the update. Having a ModifyNode as "single" will result in sending
> all rows of table T to the reducer, and then send updated version of rows
> back to the data nodes.
> We could eliminate this round trip by pushing down the ModifyNode (i.e.
> allowing this node to have distribution matching the distribution of
> modifying table).
> Two approaches come to my mind:
> * as with aggregates, we can introduce 2 physical version of a logical
> modify: SingleModify (NB: not colocated!) and Map- + ReduceModify (I hope the
> rest of the necessary changes are clear)
> * make the ModifyNode to have the same distribution as modifying table. In
> that case we need to put SUM aggregate on top of ModifyNode to reduce an
> outcome.
> Personally, I would prefer to stick with the second option, because in that
> case we can get rid of {{FragmentMapping#updatingTableAssignments()}} which
> was introduced more like a hack.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)