summaryrefslogtreecommitdiffstats
path: root/xlators/features/changetimerecorder/src/ctr-helper.h
diff options
context:
space:
mode:
authorJoseph Fernandes <josferna@redhat.com>2015-08-04 20:38:06 +0530
committerDan Lambright <dlambrig@redhat.com>2015-10-10 10:42:07 -0700
commitf6618acd4f7642dab19445e35cf2c7fbc8244a5e (patch)
treedf8997f7e472cb5ad1f7d95cef29e24ab5071923 /xlators/features/changetimerecorder/src/ctr-helper.h
parent672baab88fb7f32e844cd4be22e0924e4e0e83fc (diff)
downloadglusterfs-f6618acd4f7642dab19445e35cf2c7fbc8244a5e.tar.gz
glusterfs-f6618acd4f7642dab19445e35cf2c7fbc8244a5e.tar.xz
glusterfs-f6618acd4f7642dab19445e35cf2c7fbc8244a5e.zip
tier/ctr: CTR DB named lookup heal of cold tier during attach tier
Heal hardlink in the db for already existing data in the cold tier during attach tier. i.e during fix layout do lookup to files in the cold tier. CTR xlator on the brick/server side does db update/insert of the hardlink on a namelookup. Currently the namedlookup is done synchronous to the fixlayout that is triggered by attach tier. This is not performant, adding more time to fixlayout. The performant approach is record the hardlinks on a compressed datastore and then do the namelookup asynchronously later, giving the ctr db eventual consistency Change-Id: I4ffc337fffe7d447804786851a9183a51b5044a9 BUG: 1252586 Signed-off-by: Joseph Fernandes <josferna@redhat.com> Reviewed-on: http://review.gluster.org/11828 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Dan Lambright <dlambrig@redhat.com> Tested-by: Dan Lambright <dlambrig@redhat.com>
Diffstat (limited to 'xlators/features/changetimerecorder/src/ctr-helper.h')
-rw-r--r--xlators/features/changetimerecorder/src/ctr-helper.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/xlators/features/changetimerecorder/src/ctr-helper.h b/xlators/features/changetimerecorder/src/ctr-helper.h
index dbad302946..4f650350c9 100644
--- a/xlators/features/changetimerecorder/src/ctr-helper.h
+++ b/xlators/features/changetimerecorder/src/ctr-helper.h
@@ -284,10 +284,12 @@ do {\
* */
#define CTR_IS_INTERNAL_FOP(frame, dict)\
(AFR_SELF_HEAL_FOP (frame) \
- || REBALANCE_FOP (frame) \
- || TIER_REBALANCE_FOP (frame) \
+ || (REBALANCE_FOP (frame) && dict && \
+ !dict_get (dict, CTR_ATTACH_TIER_LOOKUP)) \
+ || (TIER_REBALANCE_FOP (frame) && dict && \
+ !dict_get (dict, CTR_ATTACH_TIER_LOOKUP)) \
|| (dict && \
- dict_get (dict, GLUSTERFS_INTERNAL_FOP_KEY)))
+ dict_get (dict, GLUSTERFS_INTERNAL_FOP_KEY)))
/**
* ignore internal fops for all clients except AFR self-heal daemon