diff options
author | Kotresh HR <khiremat@redhat.com> | 2018-09-03 09:07:58 -0400 |
---|---|---|
committer | Amar Tumballi <amarts@redhat.com> | 2018-09-25 17:20:47 +0000 |
commit | 89636be4c73b12de2e11c75d8e59527bb243f147 (patch) | |
tree | afae0f98352fc524054f9e6fae438c1e3faa80f1 /tests/basic/ctime | |
parent | c006434c4f6d5762e826bd2ecc414b6d332d66c9 (diff) |
ctime: Provide noatime option
Most of the applications are {c|m}time dependant
and very few are atime dependant. So provide noatime
option to not update atime when ctime feature is
enabled.
Also this option has to be enabled with ctime
feature to avoid unnecessary self heal. Since
AFR/EC reads data from single subvolume, atime
is only updated in one subvolume triggering self
heal.
updates: bz#1593538
Change-Id: I085fb33c882296545345f5df194cde7b6cbc337e
Signed-off-by: Kotresh HR <khiremat@redhat.com>
Diffstat (limited to 'tests/basic/ctime')
-rw-r--r-- | tests/basic/ctime/ctime-noatime.t | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/basic/ctime/ctime-noatime.t b/tests/basic/ctime/ctime-noatime.t new file mode 100644 index 00000000000..d71528c566c --- /dev/null +++ b/tests/basic/ctime/ctime-noatime.t @@ -0,0 +1,51 @@ +#!/bin/bash +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc +. $(dirname $0)/../../afr.rc +cleanup; + +function atime_compare { + local atime=$1 + local file_name=$2 + local atime1=$(stat -c "%X" $file_name) + + if [ $atime == $atime1 ] + then + echo "0" + else + echo "1" + fi +} + +TEST glusterd +TEST pidof glusterd +TEST $CLI volume create $V0 replica 3 $H0:$B0/${V0}{0,1,2} +TEST $CLI volume set $V0 performance.stat-prefetch off +TEST $CLI volume set $V0 performance.read-ahead off +TEST $CLI volume set $V0 performance.quick-read off +TEST $CLI volume set $V0 performance.read-after-open off +TEST $CLI volume set $V0 performance.open-behind off +TEST $CLI volume set $V0 performance.write-behind off +TEST $CLI volume set $V0 performance.io-cache off + +TEST $CLI volume set $V0 utime on +TEST $CLI volume set $V0 ctime on +TEST $CLI volume start $V0 + +TEST glusterfs --volfile-id=$V0 --volfile-server=$H0 --entry-timeout=0 $M0; + +cd $M0 +TEST "echo hello_world > FILE" +atime1=$(stat -c "%X" FILE) + +TEST "cat FILE > /dev/null" +EXPECT "0" atime_compare $atime1 FILE + +sleep 1 + +TEST $CLI volume set $V0 noatime off +TEST "cat FILE > /dev/null" +EXPECT "1" atime_compare $atime1 FILE + +cd - +cleanup |