磁盘已满时查询,然后在 Apache IoTDB 数据库上报告错误

query when disk is full and then the error is reported on Apache IoTDB Database

2022-03-09 10:17:10,158 [pool-12-IoTDB-RPC-Client-1] 警告 o.a.i.d.u.ErrorHandlingUtils:61 - 状态代码:INTERNAL_SERVER_ERROR(500) ,操作:“select count(tenantId$s) from root.benchmark.type.model_850_7.device_model850_15”。执行语句失败 java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: 无效输入: 95 在 java.util.concurrent.FutureTask.report(FutureTask.java:122) 在 java.util.concurrent.FutureTask.get(FutureTask.java:192) 在 org.apache.iotdb.db.service.thrift.impl.TSServiceImpl.executeStatement(TSServiceImpl.java:637) 在 org.apache.iotdb.service.rpc.thrift.TSIService$Processor$executeStatement.getResult(TSIService.java:2853) 在 org.apache.iotdb.service.rpc.thrift.TSIService$Processor$executeStatement.getResult(TSIService.java:2833) 在 org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38) 在 org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:38) 在 org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:248) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:750) 原因:java.lang.IllegalArgumentException:输入无效:95 在 org.apache.iotdb.tsfile.file.metadata.enums.MetadataIndexNodeType.deserialize(MetadataIndexNodeType.java:70) 在 org.apache.iotdb.tsfile.file.metadata.MetadataIndexNode.deserializeFrom(MetadataIndexNode.java:107) 在 org.apache.iotdb.tsfile.read.TsFileSequenceReader.getMetadataAndEndOffset(TsFileSequenceReader.java:980) 在 org.apache.iotdb.tsfile.read.TsFileSequenceReader.getLeafMetadataIndexPair(TsFileSequenceReader.java:471) 在 org.apache.iotdb.tsfile.read.TsFileSequenceReader.readTimeseriesMetadata(TsFileSequenceReader.java:443) 在 org.apache.iotdb.db.engine.cache.TimeSeriesMetadataCache.get(TimeSeriesMetadataCache.java:194) 在 org.apache.iotdb.db.utils.FileLoaderUtils.loadTimeSeriesMetadata(FileLoaderUtils.java:168)

如果你有另一个磁盘,你可以这样做:

  1. 在iOTDB配置文件中data_dir添加第二盘的路径

  2. 将一些TS文件从第一盘移动到第二盘