From 4c44c47a40910c70e7d22d2bc6b7c21b88e3296b Mon Sep 17 00:00:00 2001 From: Atin Mukherjee Date: Tue, 9 Apr 2019 19:02:53 +0530 Subject: quick-read: rename cache-invalidation key to avoid redundant keys With group-metadata-cache group profile settings performance.cache-invalidation option when turned on enables both md-cache and quick-read xlator's cache-invalidation feature. While the intent of the group-metadata-cache is to set md-cache xlator's cache-invalidation feature, quick-read xlator also gets affected due to the same. While md-cache feature and it's profile existed since release-3.9, quick-read cache-invalidation was introduced in release-4 and due to this op-version mismatch on any cluster which is >= glusterfs-4 when this group profile is applied it breaks backward compatibility with the old clients. The proposed fix here is to rename the key in quick-read to 'quick-read-cache-invalidation' so that both these features have distinct identification. While this brings in by itself a backward compatibility challenge where this feature is enabled in an existing cluster and when the same is upgraded to a version where this change exists, it will lead to an unidentified old key. But as a workaround we can always ask users upgrading to release-7 version to turn off this option, upgrade the cluster and turn it back on with the new key. This needs to be documented once the patch is accepted. Fixes: bz#1698042 Change-Id: I30422ba6496208e21191a8d78ad29b2e21078664 Signed-off-by: Atin Mukherjee Signed-off-by: Raghavendra G --- xlators/mgmt/glusterd/src/glusterd-volume-set.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'xlators/mgmt') diff --git a/xlators/mgmt/glusterd/src/glusterd-volume-set.c b/xlators/mgmt/glusterd/src/glusterd-volume-set.c index b943f66c008..4cadcd5dd19 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volume-set.c +++ b/xlators/mgmt/glusterd/src/glusterd-volume-set.c @@ -1251,9 +1251,9 @@ struct volopt_map_entry glusterd_volopt_map[] = { .option = "cache-timeout", .op_version = 1, .flags = VOLOPT_FLAG_CLIENT_OPT}, - {.key = "performance.cache-invalidation", + {.key = "performance.quick-read-cache-invalidation", .voltype = "performance/quick-read", - .option = "cache-invalidation", + .option = "quick-read-cache-invalidation", .op_version = GD_OP_VERSION_4_0_0, .flags = VOLOPT_FLAG_CLIENT_OPT}, {.key = "performance.ctime-invalidation", -- cgit