diff options
author | Krutika Dhananjay <kdhananj@redhat.com> | 2018-04-12 15:47:00 +0530 |
---|---|---|
committer | Krutika Dhananjay <kdhananj@redhat.com> | 2018-06-20 15:14:56 +0530 |
commit | 0751039eadb23b8658423477aa81964b339b4f5e (patch) | |
tree | bd09f83a94840bfd8b8e8d02b80d5bc1666ed57d /tests/bugs/shard/bug-1568521.t | |
parent | cc2f2e7bfef6ca47e740c5ee6b4665ec2880f860 (diff) |
features/shard: Perform shards deletion in the background
A synctask is created that would scan the indices from
.shard/.remove_me, to delete the shards associated with the
gfid corresponding to the index bname and the rate of deletion
is controlled by the option features.shard-deletion-rate whose
default value is 100.
The task is launched on two accounts:
1. when shard receives its first-ever lookup on the volume
2. when a rename or unlink deleted an inode
Change-Id: Ia83117230c9dd7d0d9cae05235644f8475e97bc3
updates: bz#1568521
Signed-off-by: Krutika Dhananjay <kdhananj@redhat.com>
Diffstat (limited to 'tests/bugs/shard/bug-1568521.t')
-rw-r--r-- | tests/bugs/shard/bug-1568521.t | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/bugs/shard/bug-1568521.t b/tests/bugs/shard/bug-1568521.t new file mode 100644 index 00000000000..167fb635ac8 --- /dev/null +++ b/tests/bugs/shard/bug-1568521.t @@ -0,0 +1,53 @@ +#!/bin/bash + +. $(dirname $0)/../../include.rc + + +function delete_files { + local mountpoint=$1; + local success=0; + local value=$2 + for i in {1..500}; do + unlink $mountpoint/file-$i 2>/dev/null 1>/dev/null + if [ $? -eq 0 ]; then + echo $2 >> $B0/output.txt + fi + done + echo $success +} + +cleanup + +TEST glusterd +TEST pidof glusterd +TEST $CLI volume create $V0 replica 2 $H0:$B0/${V0}{0,1} +TEST $CLI volume set $V0 features.shard on +TEST $CLI volume set $V0 shard-block-size 4MB +TEST $CLI volume start $V0 + +TEST $GFS --volfile-id=$V0 --volfile-server=$H0 $M0 +TEST $GFS --volfile-id=$V0 --volfile-server=$H0 $M1 + +for i in {1..500}; do + dd if=/dev/urandom of=$M0/file-$i bs=1M count=2 +done + +for i in {1..500}; do + stat $M1/file-$i > /dev/null +done + +delete_files $M0 0 & +delete_files $M1 1 & +wait + +success1=$(grep 0 $B0/output.txt | wc -l); +success2=$(grep 1 $B0/output.txt | wc -l); + +echo "Success1 is $success1"; +echo "Success2 is $success2"; + +success_total=$((success1 + success2)); + +EXPECT 500 echo $success_total + +cleanup |