diff options
author | Xavier Hernandez <xhernandez@datalab.es> | 2014-07-14 17:34:04 +0200 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2014-09-16 10:14:28 -0700 |
commit | b224dd14b75fb993eec4f44ecf11edce8a6fc42f (patch) | |
tree | 2a67a96fa981428adaef85d57c408265db50c8f2 /xlators/cluster/ec/src/ec.c | |
parent | 7fe574039815ad1339851eb0dc9f2366b02ceddf (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.c')
-rw-r--r-- | xlators/cluster/ec/src/ec.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/xlators/cluster/ec/src/ec.c b/xlators/cluster/ec/src/ec.c index 8554f20df0d..93bee1a4d32 100644 --- a/xlators/cluster/ec/src/ec.c +++ b/xlators/cluster/ec/src/ec.c @@ -151,6 +151,11 @@ void __ec_destroy_private(xlator_t * this) mem_pool_destroy(ec->cbk_pool); } + if (ec->lock_pool != NULL) + { + mem_pool_destroy(ec->lock_pool); + } + LOCK_DESTROY(&ec->lock); GF_FREE(ec); @@ -350,7 +355,9 @@ int32_t init(xlator_t * this) ec->fop_pool = mem_pool_new(ec_fop_data_t, 1024); ec->cbk_pool = mem_pool_new(ec_cbk_data_t, 4096); - if ((ec->fop_pool == NULL) || (ec->cbk_pool == NULL)) + ec->lock_pool = mem_pool_new(ec_lock_t, 1024); + if ((ec->fop_pool == NULL) || (ec->cbk_pool == NULL) || + (ec->lock_pool == NULL)) { gf_log(this->name, GF_LOG_ERROR, "Failed to create memory pools."); |