summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/ec/src/ec-combine.c
diff options
context:
space:
mode:
authorXavier Hernandez <xhernandez@datalab.es>2014-07-14 17:34:04 +0200
committerVijay Bellur <vbellur@redhat.com>2014-09-16 10:14:28 -0700
commitb224dd14b75fb993eec4f44ecf11edce8a6fc42f (patch)
tree2a67a96fa981428adaef85d57c408265db50c8f2 /xlators/cluster/ec/src/ec-combine.c
parent7fe574039815ad1339851eb0dc9f2366b02ceddf (diff)
ec: Optimize read/write performance
This patch significantly improves performance of read/write operations on a dispersed volume by reusing previous inodelk/ entrylk operations on the same inode/entry. This reduces the latency of each individual operation considerably. Inode version and size are also updated when needed instead of on each request. This gives an additional boost. This is a backport of http://review.gluster.org/8369/ Change-Id: I4b98d5508c86b53032e16e295f72a3f83fd8fcac BUG: 1140844 Signed-off-by: Xavier Hernandez <xhernandez@datalab.es> Reviewed-on: http://review.gluster.org/8746 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Jeff Darcy <jdarcy@redhat.com> Reviewed-by: Dan Lambright <dlambrig@redhat.com>
Diffstat (limited to 'xlators/cluster/ec/src/ec-combine.c')
-rw-r--r--xlators/cluster/ec/src/ec-combine.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/xlators/cluster/ec/src/ec-combine.c b/xlators/cluster/ec/src/ec-combine.c
index 3d088d9be4a..02b7e6024fd 100644
--- a/xlators/cluster/ec/src/ec-combine.c
+++ b/xlators/cluster/ec/src/ec-combine.c
@@ -735,7 +735,7 @@ void ec_combine(ec_cbk_data_t * cbk, ec_combine_f combine)
ec_fop_data_t * fop = cbk->fop;
ec_cbk_data_t * ans = NULL, * tmp = NULL;
struct list_head * item = NULL;
- int32_t needed = 0, report = 0;
+ int32_t needed = 0, resume = 0;
char str[32];
LOCK(&fop->lock);
@@ -776,7 +776,7 @@ void ec_combine(ec_cbk_data_t * cbk, ec_combine_f combine)
ec_update_bad(fop, cbk->mask);
- report = 1;
+ resume = 1;
}
ans = list_entry(fop->cbk_list.next, ec_cbk_data_t, list);
@@ -788,8 +788,8 @@ void ec_combine(ec_cbk_data_t * cbk, ec_combine_f combine)
{
ec_dispatch_next(fop, cbk->idx);
}
- else if (report)
+ else if (resume)
{
- ec_report(fop, 0);
+ ec_resume(fop, 0);
}
}