53 lines
1.1 KiB
Bash
Executable File
53 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
sst_dump=$2
|
|
wait_for_no_more_deletes=$3
|
|
num_retries=240
|
|
retry=0
|
|
|
|
echo "wait_for_delete: $wait_for_no_more_deletes"
|
|
|
|
while : ; do
|
|
TOTAL_D=0
|
|
TOTAL_E=0
|
|
for f in `ls $1/mysqld.1/data/.xengine/*.sst`
|
|
do
|
|
# excluding system cf
|
|
DELETED=`$sst_dump --command=scan --output_hex --file=$f | \
|
|
perl -ne 'print if(/''(\d\d\d\d\d\d\d\d)/ && $1 >= 8)' | \
|
|
grep -e "type:0" -e "type:7" | wc -l`
|
|
EXISTS=`$sst_dump --command=scan --output_hex --file=$f | \
|
|
perl -ne 'print if(/''(\d\d\d\d\d\d\d\d)/ && $1 >= 8)' | \
|
|
grep "type:1" | wc -l`
|
|
TOTAL_D=$(($TOTAL_D+$DELETED))
|
|
TOTAL_E=$(($TOTAL_E+$EXISTS))
|
|
# echo "${f##*/} $DELETED $EXISTS"
|
|
done
|
|
if [ $TOTAL_E != "0" ]
|
|
then
|
|
if [ $TOTAL_D = "0" ] || [ $wait_for_no_more_deletes = "0" ]
|
|
then
|
|
break
|
|
fi
|
|
fi
|
|
if [ $retry -ge $num_retries ]
|
|
then
|
|
break
|
|
fi
|
|
sleep 1
|
|
retry=$(($retry + 1))
|
|
done
|
|
|
|
if [ "$TOTAL_E" = "0" ]
|
|
then
|
|
echo "No records in the database"
|
|
exit
|
|
fi
|
|
|
|
if [ "$TOTAL_D" = "0" ]
|
|
then
|
|
echo "No more deletes left"
|
|
else
|
|
echo "There are deletes left"
|
|
fi
|