[ https://issues.apache.org/jira/browse/IOTDB-3045?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
刘珍 reassigned IOTDB-3045: ------------------------- Assignee: ZhaoXin (was: Jialin Qiao) > [ 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: ZhaoXin > Priority: Major > 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. 私有云 172.20.70.2(iotdb)/16(bm) 8C32G > iotdb参数 > MAX_HEAP_SIZE="20G" > MAX_DIRECT_MEMORY_SIZE="6G" > schema_engine_mode=Schema_File > 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)