[
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)