Uploaded image for project: 'Apache IoTDB'
  1. Apache IoTDB
  2. IOTDB-2708

[merge recover] The query result contains deleted records

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.12.5
    • 0.13.0
    • Core/Compaction
    • None

    Description

      iotdb版本:0.12.5 rc1
      问题描述:
      merge_thread_num=3
      合并过程中,执行delete,kill iotdb。
      启动iotdb,执行查询,部分设备可以查询到已经delete的数据。

      测试流程:
      1. 0.12.5 pre4 关合并,生成数据,存放在192.168.10.68的/data/liuzhen_test/1205_pre4/data_bk_close-comp
      2.copy 步骤1中的备份,到/data/liuzhen_test/1205_rc1
      注: merge_thread_num=3
      执行恢复。
      2022-03-09 10:52:17,714 [main] INFO o.a.i.db.service.IoTDB:153 - Congratulation, IoTDB is set up successfully. Now, enjoy yourself!
      2022-03-09 11:16:08,221 执行delete_when_comp.sh(每个设备delete2条记录,100个设备串行执行):
      #!/bin/bash
      base_db_dir="/data/liuzhen_test/1205_rc1"
      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

      1. 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

      这个脚本执行完后,killall -u liuzhen

      备份data,存放在/data/liuzhen_test/1205_rc1/data_del-2rows_stop-merge-3threads_01

      3. 清操作系统缓存
      sudo -s <<EOF
      echo 3 >/proc/sys/vm/drop_caches
      EOF

      4.启动iotdb
      启动成功后,串行执行查询脚本

      select.sh

      q.sh

      5.查看查询结果,root.ip5.ip52存储组下的10个设备中已经delete的记录,可以查询到。
      期望结果是每个序列199999998点。

      Attachments

        1. image-2022-03-09-13-43-54-412.png
          36 kB
          刘珍
        2. q.sh
          8 kB
          刘珍
        3. select.sh
          0.9 kB
          刘珍

        Activity

          People

            qiaojialin Jialin Qiao
            刘珍 刘珍
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: