diff options
author | Anuradha Talur <atalur@redhat.com> | 2015-10-21 16:49:49 +0530 |
---|---|---|
committer | Pranith Kumar Karampuri <pkarampu@redhat.com> | 2015-11-18 05:17:32 -0800 |
commit | cb76371a56eb90a6f2ac126c876d7a2dc203e16c (patch) | |
tree | ac5595f508a47cfa148a530b9211ca1c6cf2d8ff | |
parent | e06adccb38f3dc91a4534232237e07589cd07426 (diff) |
glusterd/afr : Readdirp performance improvement
Add xlator options to index xlator with xattrs that
it needs to keep track of.
Change-Id: If818673be5e626f77e65cc3a340f8cdd624179c2
BUG: 1250803
Signed-off-by: Anuradha Talur <atalur@redhat.com>
Reviewed-on: http://review.gluster.org/12467
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Krutika Dhananjay <kdhananj@redhat.com>
Tested-by: NetBSD Build System <jenkins@build.gluster.org>
Reviewed-by: Ravishankar N <ravishankar@redhat.com>
Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
-rw-r--r-- | libglusterfs/src/glusterfs.h | 2 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volgen.c | 17 |
2 files changed, 19 insertions, 0 deletions
diff --git a/libglusterfs/src/glusterfs.h b/libglusterfs/src/glusterfs.h index 5de585cc595..4e4e5b62ab0 100644 --- a/libglusterfs/src/glusterfs.h +++ b/libglusterfs/src/glusterfs.h @@ -162,6 +162,8 @@ /* Index xlator related */ #define GF_XATTROP_INDEX_GFID "glusterfs.xattrop_index_gfid" #define GF_XATTROP_INDEX_COUNT "glusterfs.xattrop_index_count" +#define GF_XATTROP_DIRTY_GFID "glusterfs.xattrop_dirty_gfid" +#define GF_XATTROP_DIRTY_COUNT "glusterfs.xattrop_dirty_count" #define GF_HEAL_INFO "glusterfs.heal-info" #define GF_AFR_HEAL_SBRAIN "glusterfs.heal-sbrain" diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c index 571b23f3519..43a9a6585d6 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volgen.c +++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c @@ -1831,6 +1831,7 @@ brick_graph_add_index (volgen_graph_t *graph, glusterd_volinfo_t *volinfo, dict_t *set_dict, glusterd_brickinfo_t *brickinfo) { xlator_t *xl = NULL; + char *pending_xattr = NULL; char index_basepath[PATH_MAX] = {0}; int ret = -1; @@ -1852,7 +1853,23 @@ brick_graph_add_index (volgen_graph_t *graph, glusterd_volinfo_t *volinfo, if (ret) goto out; } + if ((volinfo->type == GF_CLUSTER_TYPE_STRIPE_REPLICATE || + volinfo->type == GF_CLUSTER_TYPE_REPLICATE)) { + ret = xlator_set_option (xl, "xattrop-dirty-watchlist", + "trusted.afr.dirty"); + if (ret) + goto out; + ret = gf_asprintf (&pending_xattr, "trusted.afr.%s-", + volinfo->volname); + if (ret < 0) + goto out; + ret = xlator_set_option (xl, "xattrop-pending-watchlist", + pending_xattr); + if (ret) + goto out; + } out: + GF_FREE (pending_xattr); return ret; } |