You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@iotdb.apache.org by "刘珍 (Jira)" <ji...@apache.org> on 2022/01/27 03:32:00 UTC
[jira] [Commented] (IOTDB-2471) [compaction] Pre-release 2 merges slower than pre-release 1
[ https://issues.apache.org/jira/browse/IOTDB-2471?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17482856#comment-17482856 ]
刘珍 commented on IOTDB-2471:
---------------------------
经过测试,打开乱序合并参数,可以提升合并速度(可能是适合我这个场景):
enable_unseq_space_compaction=true
compaction_write_throughput_mb_per_sec=32
预发版2合并完成耗时:7小时20分钟
预发版1合并完成耗时:6小时
fix-not-release-write-lock-in-compaction分支:
enable_unseq_space_compaction=true
compaction_write_throughput_mb_per_sec=32
合并完成耗时:7小时30分钟
> [compaction] Pre-release 2 merges slower than pre-release 1
> -----------------------------------------------------------
>
> Key: IOTDB-2471
> URL: https://issues.apache.org/jira/browse/IOTDB-2471
> Project: Apache IoTDB
> Issue Type: Bug
> Components: Core/Server
> Affects Versions: 0.13.0-SNAPSHOT
> Reporter: 刘珍
> Assignee: Liuxuxin
> Priority: Major
> Attachments: pre1-iotdb-engine.properties, pre2-iotdb-engine.properties
>
>
> 问题描述:
> 0.13.0 预发版2 比预发版1 合并慢
> 1.数据备份相同,预发版1合并完成耗时6小时(合并完成时有290个tsfile)。
> 预发版2 已经合并了21个小时,还有17743个tsfile。
> 2.iotdb-env.sh相同
> 3.预发1的配置文件和预发版2有不同,配置文件见附件。
> 2个版本的配置参数均为:
> compaction_write_throughput_mb_per_sec=32
> 不同的配置参数有:
> 版本1 版本2
> enable_unseq_space_compaction=true # enable_unseq_space_compaction=false
> avg_series_point_number_threshold=100000 # avg_series_point_number_threshold=10000
> 4. 预发版2 刚启动起来之后,执行查询,有下面的错误信息:
> Msg: 500: [INTERNAL_SERVER_ERROR(500)] Exception occurred: "select count(*) from root.test.g_3.d_23". executeStatement failed. java.io.IOException: overlapped data should be consumed first
> 在2022-01-22 13:18:03,235 [pool-37-IoTDB-Query-3] INFO o.a.i.d.s.t.i.TSServiceImpl$QueryTask:233 - Cost: 327318 ms, sql is select count(*) from root.test.g_3.d_23
> 这个时间点再次执行同样的查询,有正确的结果。
> 2022-01-22 03:11:50,917 [pool-12-IoTDB-RPC-Client-41] WARN o.a.i.d.u.ErrorHandlingUtils:61 - Status code: INTERNAL_SERVER_ERROR(500), operation: "select count(*) from root.test.g_3.d_23". executeStatement failed
> java.util.concurrent.ExecutionException: java.io.IOException: overlapped data should be consumed first
> at java.util.concurrent.FutureTask.report(FutureTask.java:122)
> at java.util.concurrent.FutureTask.get(FutureTask.java:192)
> at org.apache.iotdb.db.service.thrift.impl.TSServiceImpl.executeStatement(TSServiceImpl.java:636)
> at org.apache.iotdb.service.rpc.thrift.TSIService$Processor$executeStatement.getResult(TSIService.java:2793)
> at org.apache.iotdb.service.rpc.thrift.TSIService$Processor$executeStatement.getResult(TSIService.java:2773)
> at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38)
> at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:38)
> at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:248)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.IOException: overlapped data should be consumed first
> at org.apache.iotdb.db.query.reader.series.SeriesReader.isPageOverlapped(SeriesReader.java:666)
> at org.apache.iotdb.db.query.reader.series.AlignedSeriesAggregateReader.canUseCurrentPageStatistics(AlignedSeriesAggregateReader.java:139)
> at org.apache.iotdb.db.query.executor.AggregationExecutor.aggregateAlignedPages(AggregationExecutor.java:547)
> at org.apache.iotdb.db.query.executor.AggregationExecutor.aggregateFromAlignedReader(AggregationExecutor.java:474)
> at org.apache.iotdb.db.query.executor.AggregationExecutor.aggregateOneAlignedSeries(AggregationExecutor.java:348)
> at org.apache.iotdb.db.query.executor.AggregationExecutor.aggregateOneAlignedSeries(AggregationExecutor.java:237)
> at org.apache.iotdb.db.query.executor.AggregationExecutor.executeWithoutValueFilter(AggregationExecutor.java:147)
> at org.apache.iotdb.db.query.executor.QueryRouter.aggregate(QueryRouter.java:158)
> at org.apache.iotdb.db.qp.executor.PlanExecutor.processDataQuery(PlanExecutor.java:622)
> at org.apache.iotdb.db.qp.executor.PlanExecutor.processQuery(PlanExecutor.java:250)
> at org.apache.iotdb.db.service.basic.ServiceProvider.createQueryDataSet(ServiceProvider.java:264)
> at org.apache.iotdb.db.service.thrift.impl.TSServiceImpl.executeQueryPlan(TSServiceImpl.java:829)
> at org.apache.iotdb.db.service.thrift.impl.TSServiceImpl.access$000(TSServiceImpl.java:162)
> at org.apache.iotdb.db.service.thrift.impl.TSServiceImpl$QueryTask.call(TSServiceImpl.java:220)
> at org.apache.iotdb.db.service.thrift.impl.TSServiceImpl$QueryTask.call(TSServiceImpl.java:164)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> ... 3 common frames omitted
--
This message was sent by Atlassian Jira
(v8.20.1#820001)