当我使用集群版本将一些数据写入IoTDB时,有时服务器日志中会出现异常。所以我做了两个版本的测试。
在发布的 v0.12 中,三个节点和三个复制。我有 20 个存储组,100000 个设备,每个设备有 30 个传感器。一次连续写入几分钟,然后停止几分钟并继续写入。这是服务器日志中的异常信息。附言。我删除了IP的信息:)
2021-08-10 13:23:02,335 [check-log-applier-Node(internalIp: x.x.x.x, metaPort:9003, nodeIdentifier:185043799, dataPort:40010, clientPort:6667, clientIp:0.0.0.0)] ERROR o.a.i.c.l.m.RaftLogManager:918 - Node(internalIp: x.x.x.x, metaPort:9003, nodeIdentifier:185043799, dataPort:40010, clientPort:6667, clientIp:0.0.0.0), an exception occurred when checking the applied log index
java.lang.IndexOutOfBoundsException: Index: 1965, Size: 1001
at java.util.ArrayList.rangeCheck(ArrayList.java:657)
at java.util.ArrayList.get(ArrayList.java:433)
at java.util.Collections$SynchronizedList.get(Collections.java:2417)
at org.apache.iotdb.cluster.log.manage.CommittedEntryManager.getEntry(CommittedEntryManager.java:188)
at org.apache.iotdb.cluster.log.manage.RaftLogManager.doCheckAppliedLogIndex(RaftLogManager.java:937)
at org.apache.iotdb.cluster.log.manage.RaftLogManager.checkAppliedLogIndex(RaftLogManager.java:916)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
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)