[ https://issues.apache.org/jira/browse/IGNITE-24688?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Maksim Timonin updated IGNITE-24688: ------------------------------------ Fix Version/s: 2.18 > Add FILTER_CORRELATE rule to HEP push down list > ----------------------------------------------- > > Key: IGNITE-24688 > URL: https://issues.apache.org/jira/browse/IGNITE-24688 > Project: Ignite > Issue Type: Improvement > Reporter: Maksim Timonin > Assignee: Maksim Timonin > Priority: Major > Fix For: 2.18 > > > > In the plan below Filter rule is under IgniteTableScan. This leads to memory > overhead. Let's fix it by adding new filter push down rule - Calcite's > FILTER_CORRELATE rule > > {code:java} > IgniteColocatedSortAggregate(group=[{0}], ORDER_COUNT=[COUNT()], > collation=[[0 ASC-nulls-first]]): rowcount = 187500.0, cumulative cost = > IgniteCost [rowCount=4.500912075E13, cpu=3.60073862443905E13, > memory=1.08021942000009E14, io=0.0, network=1.08021936E14], id = 2193 > IgniteProject(O_ORDERPRIORITY=[$7]): rowcount = 375000.0, cumulative cost = > IgniteCost [rowCount=4.5009120375E13, cpu=3.60073858693905E13, > memory=1.08021942E14, io=0.0, network=1.08021936E14], id = 2192 > IgniteFilter(condition=[AND(>=($6, 1998-01-01), <($6, +(1998-01-01, > 3:INTERVAL MONTH)))]): rowcount = 375000.0, cumulative cost = IgniteCost > [rowCount=4.500912E13, cpu=3.60073854943905E13, memory=1.08021942E14, io=0.0, > network=1.08021936E14], id = 2191 > IgniteCorrelatedNestedLoopJoin(condition=[true], joinType=[inner], > variablesSet=[[$cor0]], variablesSet=[[0]], correlationVariables=[[$cor0]]): > rowcount = 1500000.0, cumulative cost = IgniteCost [rowCount=4.50091185E13, > cpu=3.60073794943905E13, memory=1.08021942E14, io=0.0, > network=1.08021936E14], id = 2190 > IgniteExchange(distribution=[single]): rowcount = 1500000.0, > cumulative cost = IgniteCost [rowCount=4500000.0, cpu=6.849439049732597E7, > memory=6.6E7, io=0.0, network=6.6E7], id = 2185 > IgniteSort(sort0=[$7], dir0=[ASC-nulls-first]): rowcount = > 1500000.0, cumulative cost = IgniteCost [rowCount=3000000.0, > cpu=6.699439049732597E7, memory=6.6E7, io=0.0, network=0.0], id = 2184 > IgniteTableScan(table=[[PUBLIC, ORDERS]]): rowcount = 1500000.0, > cumulative cost = IgniteCost [rowCount=1500000.0, cpu=1500000.0, memory=0.0, > io=0.0, network=0.0], id = 172 > IgniteColocatedHashAggregate(group=[{0}]): rowcount = 1.0, cumulative > cost = IgniteCost [rowCount=3.0006075E7, cpu=2.400487E7, memory=7.2014584E7, > io=0.0, network=7.201458E7], id = 2189 > IgniteProject(i=[true]): rowcount = 6001215.0, cumulative cost = > IgniteCost [rowCount=2.400486E7, cpu=1.8003655E7, memory=7.201458E7, io=0.0, > network=7.201458E7], id = 2188 > IgniteHashIndexSpool(readType=[LAZY], writeType=[EAGER], > searchRow=[[$cor0.O_ORDERKEY, null, null]], condition=[AND(=($0, > $cor0.O_ORDERKEY), <($1, $2))], allowNulls=[false]): rowcount = 6001215.0, > cumulative cost = IgniteCost [rowCount=1.8003645E7, cpu=1.200244E7, > memory=7.201458E7, io=0.0, network=7.201458E7], id = 2187 > IgniteExchange(distribution=[single]): rowcount = 6001215.0, > cumulative cost = IgniteCost [rowCount=1.200243E7, cpu=1.200243E7, > memory=0.0, io=0.0, network=7.201458E7], id = 2186 > IgniteTableScan(table=[[PUBLIC, LINEITEM]], > requiredColumns=[{2, 13, 14}]): rowcount = 6001215.0, cumulative cost = > IgniteCost [rowCount=6001215.0, cpu=6001215.0, memory=0.0, io=0.0, > network=0.0], id = 224 > {code} > > -- This message was sent by Atlassian Jira (v8.20.10#820010)