乱序数据文件导致iotdb server 内存暴涨,无法查询数据
- Ngôn ngữ chính
- Java
- Star
- 6.4k
- Fork
- 1.2k
- Merge trung bình
- 1 ngày 23 giờ
- Pull request đã merge (30 ngày)
- 115
Mô tả
iotdb 版本:0.13.0
设备不写入数据的情况下,我启动了iotdb server,如下现象:
1,查数据,出不来,iotdb server 报了null 错误;
2、电脑中的java 进程一直涨,我的电脑很快就占用到4G了。。
然后我就是怀疑,iotdb在处理之前的数据,就去看data目录,发现乱序数据目录下有文件,我的场景下不应该出现乱序数据。。所以就删了,就恢复正常了。

日志如下:
2022-11-12 15:04:17,679 [pool-7-IoTDB-Compaction-1] INFO o.a.i.d.e.c.c.CrossSpaceCompactionExceptionHandler:58 - [Compaction][ExceptionHandler] Cross space compaction start handling exception, source seqFiles is [file is D:\apache-iotdb-0.13.0-all-bin\data\data\sequence\root.rczz\0\0\1668163631223-2-0-0.tsfile, compactionCandidate: true, compacting: true], source unseqFiles is [file is D:\apache-iotdb-0.13.0-all-bin\data\data\unsequence\root.rczz\0\0\1668216201890-5-0-0.tsfile, compactionCandidate: true, compacting: true]
2022-11-12 15:04:17,685 [pool-7-IoTDB-Compaction-1] ERROR o.a.i.d.e.c.t.AbstractCompactionTask:70 - null
java.lang.NullPointerException: null
at org.apache.iotdb.db.engine.compaction.inner.utils.MultiTsFileDeviceIterator.hasNextDevice(MultiTsFileDeviceIterator.java:97)
at org.apache.iotdb.db.engine.compaction.CompactionUtils.compact(CompactionUtils.java:92)
at org.apache.iotdb.db.engine.compaction.cross.rewrite.task.RewriteCrossSpaceCompactionTask.executeCompaction(RewriteCrossSpaceCompactionTask.java:145)
at org.apache.iotdb.db.engine.compaction.cross.rewrite.task.RewriteCrossSpaceCompactionTask.doCompaction(RewriteCrossSpaceCompactionTask.java:87)
at org.apache.iotdb.db.engine.compaction.task.AbstractCompactionTask.call(AbstractCompactionTask.java:68)
at org.apache.iotdb.db.engine.compaction.task.AbstractCompactionTask.call(AbstractCompactionTask.java:45)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
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)
2022-11-12 15:04:52,630 [pool-17-IoTDB-RPC-Client-1] INFO o.a.i.d.s.b.ServiceProvider:188 - IoTDB: Login status: Login successfully. User : root, opens Session-1
2022-11-12 15:04:52,821 [pool-17-IoTDB-RPC-Client-1] INFO o.a.i.d.c.IoTDBThreadPoolFactory:68 - new fixed thread pool: Query, thread number: 12
2022-11-12 15:04:56,346 [pool-17-IoTDB-RPC-Client-2] INFO o.a.i.d.s.b.ServiceProvider:188 - IoTDB: Login status: Login successfully. User : root, opens Session-2
2022-11-12 15:04:57,495 [pool-3-IoTDB-timedQuerySqlCount-1] INFO o.a.i.d.s.b.QueryFrequencyRecorder:42 - Query count in current 1 minute 2
2022-11-12 15:05:08,317 [pool-17-IoTDB-RPC-Client-3] INFO o.a.i.d.s.b.ServiceProvider:188 - IoTDB: Login status: Login successfully. User : root, opens Session-3
2022-11-12 15:05:44,731 [pool-17-IoTDB-RPC-Client-4] INFO o.a.i.d.s.b.ServiceProvider:188 - IoTDB: Login status: Login successfully. User : root, opens Session-4
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu với stack trace tại MultiTsFileDeviceIterator.java:97 và lần theo các hàm gọi nó trong CompactionUtils.java và RewriteCrossSpaceCompactionTask.java. Tái hiện lỗi với các tệp .tsfile sequence và unsequence đã được báo cáo, sau đó xác minh rằng các truy vấn máy chủ không còn thất bại với NullPointerException và bộ nhớ không tiếp tục tăng trong quá trình compaction.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- java
- Lĩnh vực
- databases
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100