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/03/11 10:16:00 UTC

[jira] [Assigned] (IOTDB-2723) [compaction + delete] Merge recovery lost data

     [ https://issues.apache.org/jira/browse/IOTDB-2723?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

刘珍 reassigned IOTDB-2723:
-------------------------

    Assignee: Jialin Qiao

> [compaction + delete] Merge recovery lost data
> ----------------------------------------------
>
>                 Key: IOTDB-2723
>                 URL: https://issues.apache.org/jira/browse/IOTDB-2723
>             Project: Apache IoTDB
>          Issue Type: Bug
>          Components: Core/Compaction
>    Affects Versions: 0.13.0-SNAPSHOT
>            Reporter: 刘珍
>            Assignee: Jialin Qiao
>            Priority: Major
>         Attachments: q.sh
>
>
> iotdb版本0310   f133c92e202508e9bec4294cf56f34fc4e67ff9a
> 问题描述:
> 顺序空间内合并的时候,100个设备顺序执行delete 2条记录,执行完后,
> killall -u 当前用户,备份data,继续在这个data上重启iotdb,执行100个设备的count查询,
> 查询结果有20个设备存在少数据的现象,每个序列的期望结果是199999998点。
> 操作流程:
> 1. 0.12.5-pre4 关合并,生成数据备份,记作备份1。
> 在192.168.10.68的/data/liuzhen_test/1205_pre4/data_bk_close-comp
> 2.copy 备份1 到68机器的/data/liuzhen_test/0310_master_f133c92
> 2022-03-11 13:40:13,204启动成功
> 2022-03-11 14:23:45,657 启动delete脚本(此时有顺序空间内合并)
> cat delete_when_comp.sh
> #!/bin/bash
> base_db_dir="/data/liuzhen_test/0309_master_iotdb-2693"
> out_dev="dev_name.txt"
> function expDevNameToFile()
> {
>         ${base_db_dir}/sbin/start-cli.sh  -e "set max_display_num=0 ;show devices;"|grep root|awk -F '|' '{print $2}'>${out_dev}
> }
> expDevNameToFile
> # delete 2 row  1 of seq ,1 of unseq
> function del2rows()
> {
>    while read LINE
>    do
>       ${base_db_dir}/sbin/start-cli.sh -e " select s_0 from "$LINE" where time=2024-05-24T18:00:05.000+08:00 or time=2034-01-24T18:53:22.000+08:00" >> sel.out
>       ${base_db_dir}/sbin/start-cli.sh -e " delete from "$LINE".* where time=2034-01-24T18:53:22.000+08:00"  >> sel.out
>       ${base_db_dir}/sbin/start-cli.sh -e " delete from "$LINE".* where time=2024-05-24T18:00:05.000+08:00"  >> sel.out
>       ${base_db_dir}/sbin/start-cli.sh -e " select s_0 from "$LINE" where time=2024-05-24T18:00:05.000+08:00 or time=2034-01-24T18:53:22.000+08:00" >> sel.out
>       echo $LINE
>    done  < ${out_dev}
> }
> del2rows
> delete 2条记录成功,delete后查询这2条记录是否存在,不存在,表现正确。
> 脚本执行完,killall -u liuzhen
> 备份data到/data/liuzhen_test/0310_master_f133c92/data_1_del-2rows-when-inner-comp-kill-u
> 备份日志/data/liuzhen_test/0310_master_f133c92/logs.1_del-2rows-when-inner-comp-kill-u
> 3. 启动iotdb
> 启动成功后,再次执行查询2条已经delete的记录,不存在,通过。
> 启动q.sh,查询每个设备的count,发现有20设备存在少数据的现象。



--
This message was sent by Atlassian Jira
(v8.20.1#820001)