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

Ilya Shishkov commented on IGNITE-24756:
----------------------------------------

*Resilts для {{TpchBenchmark.cold}}, scale=0.01:*

{code:title=Calcite}
Benchmark           (engine)  (queryId)  (scale)  Mode  Cnt     Score   Error  
Units
TpchBenchmark.cold   CALCITE         19     0.01    ss       9713,029          
ms/op
{code}

{code:sql|title=H2}
javax.cache.CacheException: Failed to prepare distributed join query: join 
condition does not use index [joinedCache=part, plan=SELECT
    SUM(__Z0.L_EXTENDEDPRICE * (1 - __Z0.L_DISCOUNT)) AS __C0_0
FROM PUBLIC.LINEITEM __Z0
    /* PUBLIC.LINEITEM.__SCAN_ */
INNER JOIN PUBLIC.PART __Z1
    /* PUBLIC.PART.__SCAN_ */
    ON 1=1
WHERE ((__Z0.L_SHIPINSTRUCT = 'DELIVER IN PERSON')
    AND ((__Z0.L_SHIPMODE IN('AIR', 'AIR REG'))
    AND (((__Z1.P_SIZE >= 1)
    AND (__Z1.P_SIZE <= 15))
    AND ((__Z0.L_QUANTITY <= 30)
    AND ((__Z0.L_QUANTITY >= 20)
    AND ((__Z1.P_CONTAINER IN('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG'))
    AND ((__Z1.P_BRAND = 'Brand#34')
    AND (__Z1.P_PARTKEY = __Z0.L_PARTKEY))))))))
    OR (((__Z0.L_SHIPINSTRUCT = 'DELIVER IN PERSON')
    AND ((__Z0.L_SHIPMODE IN('AIR', 'AIR REG'))
    AND (((__Z1.P_SIZE >= 1)
    AND (__Z1.P_SIZE <= 5))
    AND ((__Z0.L_QUANTITY <= 11)
    AND ((__Z0.L_QUANTITY >= 1)
    AND ((__Z1.P_CONTAINER IN('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG'))
    AND ((__Z1.P_BRAND = 'Brand#12')
    AND (__Z1.P_PARTKEY = __Z0.L_PARTKEY))))))))
    OR ((__Z0.L_SHIPINSTRUCT = 'DELIVER IN PERSON')
    AND ((__Z0.L_SHIPMODE IN('AIR', 'AIR REG'))
    AND (((__Z1.P_SIZE >= 1)
    AND (__Z1.P_SIZE <= 10))
    AND ((__Z0.L_QUANTITY <= 20)
    AND ((__Z0.L_QUANTITY >= 10)
    AND ((__Z1.P_CONTAINER IN('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK'))
    AND ((__Z1.P_BRAND = 'Brand#23')
    AND (__Z1.P_PARTKEY = __Z0.L_PARTKEY)))))))))]
        at 
org.apache.ignite.internal.processors.query.h2.opt.join.CollocationModel.joinedWithCollocated(CollocationModel.java:387)
        at 
org.apache.ignite.internal.processors.query.h2.opt.join.CollocationModel.calculate(CollocationModel.java:302)
        at 
org.apache.ignite.internal.processors.query.h2.opt.join.CollocationModel.type(CollocationModel.java:549)
        at 
org.apache.ignite.internal.processors.query.h2.opt.join.CollocationModel.calculate(CollocationModel.java:251)
        at 
org.apache.ignite.internal.processors.query.h2.opt.join.CollocationModel.type(CollocationModel.java:549)
        at 
org.apache.ignite.internal.processors.query.h2.opt.join.CollocationModel.isCollocated(CollocationModel.java:726)
        at 
org.apache.ignite.internal.processors.query.h2.sql.GridSqlQuerySplitter.split0(GridSqlQuerySplitter.java:308)
        at 
org.apache.ignite.internal.processors.query.h2.sql.GridSqlQuerySplitter.split(GridSqlQuerySplitter.java:220)
        at 
org.apache.ignite.internal.processors.query.h2.QueryParser.parseH2(QueryParser.java:484)
        at 
org.apache.ignite.internal.processors.query.h2.QueryParser.parse0(QueryParser.java:217)
        at 
org.apache.ignite.internal.processors.query.h2.QueryParser.parse(QueryParser.java:135)
        at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.querySqlFields(IgniteH2Indexing.java:953)
        at 
org.apache.ignite.internal.processors.query.GridQueryProcessor$2.applyx(GridQueryProcessor.java:3135)
        at 
org.apache.ignite.internal.processors.query.GridQueryProcessor$2.applyx(GridQueryProcessor.java:3075)
        at 
org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:36)
        at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:3861)
        at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.lambda$querySqlFields$3(GridQueryProcessor.java:3152)
        at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuerySafe(GridQueryProcessor.java:3289)
        at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:3071)
        at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2995)
        at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2968)
        at 
org.apache.ignite.internal.benchmarks.jmh.sql.tpch.TpchBenchmark.sql(TpchBenchmark.java:263)
        at 
org.apache.ignite.internal.benchmarks.jmh.sql.tpch.TpchBenchmark.cold(TpchBenchmark.java:176)
        at 
org.apache.ignite.internal.benchmarks.jmh.sql.tpch.jmh_generated.TpchBenchmark_cold_jmhTest.cold_ss_jmhStub(TpchBenchmark_cold_jmhTest.java:416)
        at 
org.apache.ignite.internal.benchmarks.jmh.sql.tpch.jmh_generated.TpchBenchmark_cold_jmhTest.cold_SingleShotTime(TpchBenchmark_cold_jmhTest.java:371)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at 
org.openjdk.jmh.runner.BenchmarkHandler$BenchmarkTask.call(BenchmarkHandler.java:475)
        at 
org.openjdk.jmh.runner.BenchmarkHandler$BenchmarkTask.call(BenchmarkHandler.java:458)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
{code}

----

If exception throwing is commented in 
{{CollocationModel#joinedWithCollocated}}, then in H2 result is much worse:
{code}
Benchmark           (engine)  (queryId)  (scale)  Mode  Cnt       Score   Error 
 Units
TpchBenchmark.cold   CALCITE         19     0.01    ss        10377,123         
 ms/op
TpchBenchmark.cold        H2         19     0.01    ss       146564,758         
 ms/op
{code}

> Calcite. TPC-H query #19: too long execTime and high heap memory usage on 
> client
> --------------------------------------------------------------------------------
>
>                 Key: IGNITE-24756
>                 URL: https://issues.apache.org/jira/browse/IGNITE-24756
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Sergey Korotkov
>            Assignee: Ilya Shishkov
>            Priority: Major
>              Labels: ise, tpch
>
> Works for s = 0.01 but do not complete in 5 minutes for s=0.1 and s=1.0
> Use a lot of heap on client side (look similar to the query #16 case at 
> IGNITE-24753)
> ***
> Load test (1 client node, 3 server nodes) shows that there is huge HEAP 
> memory usage on the client side.
>  
> | ** 
> |*{color:#000000}args{color}*|*{color:#000000}scale=0.01{color}*|*{color:#000000}scale=0.1{color}*|*{color:#000000}scale=1.0{color}*|
> |*{color:#000000}benchmark{color}*|*{color:#000000}metric{color}*|*{color:#000000}value{color}*|*{color:#000000}value{color}*|*{color:#000000}value{color}*|
> |{color:#000000}Q19{color}|{color:#000000}client_heap_inTestAllocatedPerCall_MB/call_mean{color}|{color:#000000}27,770.28{color}|{color:#000000}745,501.73{color}|{color:#000000}662,648.99{color}|
> |{color:#000000}Q19{color}|{color:#000000}client_heap_inTestTotalAllocated_MB_mean{color}|{color:#000000}27,770.28{color}|{color:#000000}745,501.73{color}|{color:#000000}662,648.99{color}|
> |{color:#000000}Q19{color}|{color:#000000}count{color}|{color:#000000}1.00{color}|{color:#000000}1.00{color}|{color:#000000}1.00{color}|
> |{color:#000000}Q19{color}|{color:#000000}failed_count{color}|{color:#000000} 
> {color}|{color:#000000}1.00{color}|{color:#000000}1.00{color}|
> |{color:#000000}Q19{color}|{color:#000000}server_heap_inTestAllocatedPerCall_MB/call_mean{color}|{color:#000000}2,032.93{color}|{color:#000000}15,484.44{color}|{color:#000000}8,241.25{color}|
> |{color:#000000}Q19{color}|{color:#000000}server_heap_inTestTotalAllocated_MB_mean{color}|{color:#000000}2,032.93{color}|{color:#000000}15,484.44{color}|{color:#000000}8,241.25{color}|
> For scale=0.01 one query was executed.  With average 27Gb and 2Gb of heap 
> allocation per request (on client and server correspondingly).
> For scales 0.1 and 1.0 single query was cancelled after 5 minutes, having 
> handreds of gigabytes allocated on the client side.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to