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>
This commit is contained in:
Anuradha Talur 2015-10-21 16:49:49 +05:30 committed by Pranith Kumar Karampuri
parent e06adccb38
commit cb76371a56
2 changed files with 19 additions and 0 deletions

View File

@ -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"

View File

@ -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;
}