刘珍 created IOTDB-3045:
-------------------------

             Summary: [ schema recovery ] The query result contains some 
timeseries that have been deleted
                 Key: IOTDB-3045
                 URL: https://issues.apache.org/jira/browse/IOTDB-3045
             Project: Apache IoTDB
          Issue Type: Bug
          Components: Core/Schema Manager
    Affects Versions: 0.14.0-SNAPSHOT
            Reporter: 刘珍
            Assignee: Jialin Qiao
         Attachments: config.properties, d1.log

master_0428_ca4f3cf
问题描述:
50 sg,100 dev,200000 sensors/dev, 共2000万序列。
100个设备名称记录在文件中,
遍历文件,10个用户并发 delete ts,1个设备上delete 1条序列。
重复10次,也就是这100个dev,每个dev共delete 10个ts。
delete 后,执行count timeseries dev.* ;结果符合预期。

备份数据。

{color:#DE350B}重启iotdb,恢复元数据后,再查询 100个dev的序列数,有14个设备的序列数都是20万,
期望是199990,delete的ts,又查询到了。{color}

详细测试流程:
1. 私有云 192.168.130.2 
2. benchmark 配置见附件
3. 获取dev 名称,记录到文件dev_name.txt
 cat get_dev_name.sh
#!/bin/bash
./sbin/start-cli.sh  -e "show devices;" |grep root|awk -F '|' '{print $2}' > 
dev_name.txt

4. 并发delete
cat del_1_ts.sh
#!/bin/bash
function delete_ts()
{
   del_ts=$1
   dev_name=$2
   exp_count=$3
   count_ts ${exp_count} ${dev_name}
   ./sbin/start-cli.sh -e "delete timeseries ${del_ts};"
   let exp_count--
   count_ts ${exp_count} ${dev_name}
}

function count_ts()
{
    exp_c_ts=$1
    dev_name=$2
    cur_c_ts=`./sbin/start-cli.sh -e "count timeseries ${dev_name};"|sed -n 
"4,4p"|awk -F '|' '{print $2}'`
    if [ "${cur_c_ts}" -eq "${exp_c_ts}" ];then
        echo "ok"
    else
        echo "fail. ${dev_name}  ${exp_c_ts} ${cur_c_ts}" >>./fail.log
    fi
}

function execute()
{
    in_file=$1
    i=$2
    exp_count=$3
    n=0
    cat ${in_file} | while read line
    do
       del_ts="${line}.s_${i}"
       dev_name="${line}.*";
       delete_ts ${del_ts} ${dev_name} ${exp_count} &
       let i++
       let n++
       b=$(( $n % 10 ))
       if [ "$b" -eq "0" ];then
          wait
       fi
    done
    wait
}

# 循环几轮
count_ts_base=200000

for loop in {1..10}
do
    execute "dev_name.txt" ${loop} ${count_ts_base}
    let count_ts_base--
done

并发delete脚本的日志文件见附件。
执行count_ts.sh,查看每个dev的count timeseries,是否都是199990。
有14个dev的结果是200000,不符合预期结果。




--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to