Skip to content

[Question/Bug] IoT-Benchmark 2.0 适配支持:config.properties 配置示例及 IoTDB 2.0 兼容性咨询 #516

@xiaosongyuan0218

Description

@xiaosongyuan0218

Describe the Issue
目前在尝试使用 IoT-Benchmark 对 IoTDB 2.0 (Preview/Latest) 进行压测。但在配置过程中发现以下问题:

官方文档滞后:官网及 Wiki 上的 config.properties 示例版本较旧,许多针对 IoTDB 1.x 或 0.x 的参数在 2.0 版本中可能已变更。

适配性报错:在运行过程中由于配置项不匹配或依赖库版本问题,导致无法成功启动测试任务。

Environment
IoT-Benchmark Version: [例如:main 分支最新代码 / v0.5.x]

IoTDB Version: 2.0.0 (Preview/Daily build)

JDK Version: [例如:JDK 8 / JDK 17]

OS: [例如:Ubuntu 22.04 / Windows 11]

Steps to Reproduce
下载并编译 IoT-Benchmark。

按照官网旧版示例配置 config.properties。

执行脚本 ./benchmark.sh (或 benchmark.bat)。

出现报错。

2026-01-28 05:33:35,943 ERROR cn.edu.tsinghua.iot.benchmark.iotdb200.DMLStrategy.SessionStrategy:457 - insertion failed
java.util.concurrent.ExecutionException: cn.edu.tsinghua.iot.benchmark.exception.OperationFailException: org.apache.iotdb.rpc.StatementExecutionException: 301: [EXECUTE_STATEMENT_ERROR(301)] Exception occurred: insertTablet failed. null
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:205)
at cn.edu.tsinghua.iot.benchmark.iotdb200.DMLStrategy.SessionStrategy.waitWriteTaskToFinishAndGetStatus(SessionStrategy.java:454)
at cn.edu.tsinghua.iot.benchmark.iotdb200.DMLStrategy.SessionStrategy.insertOneBatchByTablet(SessionStrategy.java:117)
at cn.edu.tsinghua.iot.benchmark.iotdb200.DMLStrategy.SessionStrategy.insertOneBatch(SessionStrategy.java:96)
at cn.edu.tsinghua.iot.benchmark.iotdb200.IoTDB.insertOneBatch(IoTDB.java:216)
at cn.edu.tsinghua.iot.benchmark.tsdb.IDatabase.insertOneBatchWithCheck(IDatabase.java:81)
at cn.edu.tsinghua.iot.benchmark.tsdb.DBWrapper.insertOneBatch(DBWrapper.java:96)
at cn.edu.tsinghua.iot.benchmark.tsdb.IDatabase.insertOneBatchWithCheck(IDatabase.java:81)
at cn.edu.tsinghua.iot.benchmark.client.generate.GenerateDataMixClient.ingestionOperation(GenerateDataMixClient.java:159)
at cn.edu.tsinghua.iot.benchmark.client.generate.GenerateDataMixClient.doTest(GenerateDataMixClient.java:56)
at cn.edu.tsinghua.iot.benchmark.client.DataClient.run(DataClient.java:129)
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)
Caused by: cn.edu.tsinghua.iot.benchmark.exception.OperationFailException: org.apache.iotdb.rpc.StatementExecutionException: 301: [EXECUTE_STATEMENT_ERROR(301)] Exception occurred: insertTablet failed. null
at cn.edu.tsinghua.iot.benchmark.iotdb200.DMLStrategy.SessionStrategy.lambda$insertOneBatchByTablet$0(SessionStrategy.java:114)
... 5 common frames omitted
Caused by: org.apache.iotdb.rpc.StatementExecutionException: 301: [EXECUTE_STATEMENT_ERROR(301)] Exception occurred: insertTablet failed. null
at org.apache.iotdb.rpc.RpcUtils.verifySuccess(RpcUtils.java:106)
at org.apache.iotdb.rpc.RpcUtils.verifySuccessWithRedirection(RpcUtils.java:112)
at org.apache.iotdb.session.SessionConnection.callWithRetryAndVerifyWithRedirection(SessionConnection.java:817)
at org.apache.iotdb.session.SessionConnection.insertTablet(SessionConnection.java:830)
at org.apache.iotdb.session.Session.insertAlignedTablet(Session.java:2971)
at org.apache.iotdb.session.Session.insertAlignedTablet(Session.java:2957)
at cn.edu.tsinghua.iot.benchmark.iotdb200.DMLStrategy.TreeSessionManager.insertTablet(TreeSessionManager.java:115)
at cn.edu.tsinghua.iot.benchmark.iotdb200.ModelStrategy.TreeStrategy.sessionInsertImpl(TreeStrategy.java:479)
at cn.edu.tsinghua.iot.benchmark.iotdb200.IoTDB.sessionInsertImpl(IoTDB.java:708)
at cn.edu.tsinghua.iot.benchmark.iotdb200.DMLStrategy.SessionStrategy.lambda$insertOneBatchByTablet$0(SessionStrategy.java:112)
... 5 common frames omitted
2026-01-28 05:33:35,943 ERROR cn.edu.tsinghua.iot.benchmark.iotdb200.DMLStrategy.SessionStrategy:457 - insertion failed
java.util.concurrent.ExecutionException: cn.edu.tsinghua.iot.benchmark.exception.OperationFailException: org.apache.iotdb.rpc.StatementExecutionException: 301: [EXECUTE_STATEMENT_ERROR(301)] Exception occurred: insertTablet failed. null
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:205)
at cn.edu.tsinghua.iot.benchmark.iotdb200.DMLStrategy.SessionStrategy.waitWriteTaskToFinishAndGetStatus(SessionStrategy.java:454)
at cn.edu.tsinghua.iot.benchmark.iotdb200.DMLStrategy.SessionStrategy.insertOneBatchByTablet(SessionStrategy.java:117)
at cn.edu.tsinghua.iot.benchmark.iotdb200.DMLStrategy.SessionStrategy.insertOneBatch(SessionStrategy.java:96)
at cn.edu.tsinghua.iot.benchmark.iotdb200.IoTDB.insertOneBatch(IoTDB.java:216)
at cn.edu.tsinghua.iot.benchmark.tsdb.IDatabase.insertOneBatchWithCheck(IDatabase.java:81)
at cn.edu.tsinghua.iot.benchmark.tsdb.DBWrapper.insertOneBatch(DBWrapper.java:96)
at cn.edu.tsinghua.iot.benchmark.tsdb.IDatabase.insertOneBatchWithCheck(IDatabase.java:81)
at cn.edu.tsinghua.iot.benchmark.client.generate.GenerateDataMixClient.ingestionOperation(GenerateDataMixClient.java:159)
at cn.edu.tsinghua.iot.benchmark.client.generate.GenerateDataMixClient.doTest(GenerateDataMixClient.java:56)
at cn.edu.tsinghua.iot.benchmark.client.DataClient.run(DataClient.java:129)
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)
Caused by: cn.edu.tsinghua.iot.benchmark.exception.OperationFailException: org.apache.iotdb.rpc.StatementExecutionException: 301: [EXECUTE_STATEMENT_ERROR(301)] Exception occurred: insertTablet failed. null
at cn.edu.tsinghua.iot.benchmark.iotdb200.DMLStrategy.SessionStrategy.lambda$insertOneBatchByTablet$0(SessionStrategy.java:114)
... 5 common frames omitted
Caused by: org.apache.iotdb.rpc.StatementExecutionException: 301: [EXECUTE_STATEMENT_ERROR(301)] Exception occurred: insertTablet failed. null
at org.apache.iotdb.rpc.RpcUtils.verifySuccess(RpcUtils.java:106)
at org.apache.iotdb.rpc.RpcUtils.verifySuccessWithRedirection(RpcUtils.java:112)
at org.apache.iotdb.session.SessionConnection.callWithRetryAndVerifyWithRedirection(SessionConnection.java:817)
at org.apache.iotdb.session.SessionConnection.insertTablet(SessionConnection.java:830)
at org.apache.iotdb.session.Session.insertAlignedTablet(Session.java:2971)
at org.apache.iotdb.session.Session.insertAlignedTablet(Session.java:2957)
at cn.edu.tsinghua.iot.benchmark.iotdb200.DMLStrategy.TreeSessionManager.insertTablet(TreeSessionManager.java:115)
at cn.edu.tsinghua.iot.benchmark.iotdb200.ModelStrategy.TreeStrategy.sessionInsertImpl(TreeStrategy.java:479)
at cn.edu.tsinghua.iot.benchmark.iotdb200.IoTDB.sessionInsertImpl(IoTDB.java:708)
at cn.edu.tsinghua.iot.benchmark.iotdb200.DMLStrategy.SessionStrategy.lambda$insertOneBatchByTablet$0(SessionStrategy.java:112)
... 5 common frames omitted
2026-01-28 05:33:35,943 ERROR cn.edu.tsinghua.iot.benchmark.tsdb.DBWrapper:144 - Insert batch failed because
java.util.concurrent.ExecutionException: cn.edu.tsinghua.iot.benchmark.exception.OperationFailException: org.apache.iotdb.rpc.StatementExecutionException: 301: [EXECUTE_STATEMENT_ERROR(301)] Exception occurred: insertTablet failed. null
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:205)
at cn.edu.tsinghua.iot.benchmark.iotdb200.DMLStrategy.SessionStrategy.waitWriteTaskToFinishAndGetStatus(SessionStrategy.java:454)
at cn.edu.tsinghua.iot.benchmark.iotdb200.DMLStrategy.SessionStrategy.insertOneBatchByTablet(SessionStrategy.java:117)
at cn.edu.tsinghua.iot.benchmark.iotdb200.DMLStrategy.SessionStrategy.insertOneBatch(SessionStrategy.java:96)
at cn.edu.tsinghua.iot.benchmark.iotdb200.IoTDB.insertOneBatch(IoTDB.java:216)
at cn.edu.tsinghua.iot.benchmark.tsdb.IDatabase.insertOneBatchWithCheck(IDatabase.java:81)
at cn.edu.tsinghua.iot.benchmark.tsdb.DBWrapper.insertOneBatch(DBWrapper.java:96)
at cn.edu.tsinghua.iot.benchmark.tsdb.IDatabase.insertOneBatchWithCheck(IDatabase.java:81)
at cn.edu.tsinghua.iot.benchmark.client.generate.GenerateDataMixClient.ingestionOperation(GenerateDataMixClient.java:159)
at cn.edu.tsinghua.iot.benchmark.client.generate.GenerateDataMixClient.doTest(GenerateDataMixClient.java:56)
at cn.edu.tsinghua.iot.benchmark.client.DataClient.run(DataClient.java:129)
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)
Caused by: cn.edu.tsinghua.iot.benchmark.exception.OperationFailException: org.apache.iotdb.rpc.StatementExecutionException: 301: [EXECUTE_STATEMENT_ERROR(301)] Exception occurred: insertTablet failed. null
at cn.edu.tsinghua.iot.benchmark.iotdb200.DMLStrategy.SessionStrategy.lambda$insertOneBatchByTablet$0(SessionStrategy.java:114)
... 5 common frames omitted
Caused by: org.apache.iotdb.rpc.StatementExecutionException: 301: [EXECUTE_STATEMENT_ERROR(301)] Exception occurred: insertTablet failed. null
at org.apache.iotdb.rpc.RpcUtils.verifySuccess(RpcUtils.java:106)
at org.apache.iotdb.rpc.RpcUtils.verifySuccessWithRedirection(RpcUtils.java:112)
at org.apache.iotdb.session.SessionConnection.callWithRetryAndVerifyWithRedirection(SessionConnection.java:817)
at org.apache.iotdb.session.SessionConnection.insertTablet(SessionConnection.java:830)
at org.apache.iotdb.session.Session.insertAlignedTablet(Session.java:2971)
at org.apache.iotdb.session.Session.insertAlignedTablet(Session.java:2957)
at cn.edu.tsinghua.iot.benchmark.iotdb200.DMLStrategy.TreeSessionManager.insertTablet(TreeSessionManager.java:115)
at cn.edu.tsinghua.iot.benchmark.iotdb200.ModelStrategy.TreeStrategy.sessionInsertImpl(TreeStrategy.java:479)
at cn.edu.tsinghua.iot.benchmark.iotdb200.IoTDB.sessionInsertImpl(IoTDB.java:708)
at cn.edu.tsinghua.iot.benchmark.iotdb200.DMLStrategy.SessionStrategy.lambda$insertOneBatchByTablet$0(SessionStrategy.java:112)
... 5 common frames omitted

Request / Suggestion
提供 2.0 示例:能否提供一份针对 IoTDB 2.0 架构(特别是 DataNode/ConfigNode 模式下)的 config.properties 推荐配置模版?

Session 接口适配:IoTDB 2.0 在 Session 接口或数据写入逻辑上是否有破坏性变更需要 Benchmark 进行代码级适配?

文档更新:建议更新官网文档,明确说明目前主分支支持的最高 IoTDB 版本。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions