From 3b52c71b0ab57a9daaf31bf3dc8563da37927a66 Mon Sep 17 00:00:00 2001 From: Dan Lambright Date: Wed, 4 Nov 2015 15:33:22 -0500 Subject: cluster/tier: readdirp to cold tier only It is possible a file would get migrated in the middle of a readdir operation. If there are four subvolumes A,B,C,D, and if readdir reads them in order and reaches subvol B, then, if a file is moved from D to A, it will not be included in the readdir output. This phenonema has pre-existed in DHT migration but is more apparent in tiering. When a file is moved off the hashed subvolume a T file is created. For tiering, we will make the cold subvolume the hashed subvolume. This will ensure the creation of a T file. Readdir will not skip T files in the tier translator. Making the cold subvolume the hashed subvolume ensures the T files created on promotions or creates will be less likely to fill the volume. Creates still put the data on the hot subvolume. Change-Id: Ifde557d3d0e94a4570ca9f115adee3db2ee75407 BUG: 1281598 Signed-off-by: Dan Lambright Reviewed-on: http://review.gluster.org/12530 Tested-by: Gluster Build System Tested-by: NetBSD Build System Reviewed-by: N Balachandran Reviewed-by: Raghavendra G --- xlators/cluster/dht/src/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'xlators/cluster/dht/src/Makefile.am') diff --git a/xlators/cluster/dht/src/Makefile.am b/xlators/cluster/dht/src/Makefile.am index bb3308f14a3..29be5ce4776 100644 --- a/xlators/cluster/dht/src/Makefile.am +++ b/xlators/cluster/dht/src/Makefile.am @@ -16,7 +16,7 @@ dht_la_SOURCES = $(dht_common_source) dht.c nufa_la_SOURCES = $(dht_common_source) nufa.c switch_la_SOURCES = $(dht_common_source) switch.c -tier_la_SOURCES = $(dht_common_source) tier.c +tier_la_SOURCES = $(dht_common_source) tier.c tier-common.c dht_la_LDFLAGS = -module -avoid-version -export-symbols $(top_srcdir)/xlators/cluster/dht/src/dht.sym dht_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la @@ -30,7 +30,7 @@ switch_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la tier_la_LDFLAGS = -module -avoid-version -export-symbols $(top_srcdir)/xlators/cluster/dht/src/tier.sym tier_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la -noinst_HEADERS = dht-common.h dht-mem-types.h dht-messages.h dht-helper.h tier.h\ +noinst_HEADERS = dht-common.h dht-mem-types.h dht-messages.h dht-helper.h tier-common.h tier.h\ $(top_builddir)/xlators/lib/src/libxlator.h AM_CPPFLAGS = $(GF_CPPFLAGS) -I$(top_srcdir)/libglusterfs/src \ -- cgit