diff options
| author | Pranith Kumar K <pkarampu@redhat.com> | 2015-06-30 18:45:36 +0530 |
|---|---|---|
| committer | Xavier Hernandez <xhernandez@datalab.es> | 2015-07-21 14:35:37 -0700 |
| commit | 05f7cc9815a9fe067584251fa89b1461938f41ea (patch) | |
| tree | a8be2b33cceebfba6b25434e15dde0b42523d6a3 /xlators/cluster/ec/src/ec-data.c | |
| parent | 5563a9bbbe6a901e3a7255f090360809ca83ac9d (diff) | |
cluster/ec: Add throttling in background healing
- 8 parallel heals can happen.
- 128 heals will wait for their turn
- Heals will be rejected if 128 heals are already waiting.
>Change-Id: I2e99bf064db7bce71838ed9901a59ffd565ac390
>BUG: 1237381
>Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
>Reviewed-on: http://review.gluster.org/11471
>Tested-by: Gluster Build System <jenkins@build.gluster.com>
>Reviewed-by: Xavier Hernandez <xhernandez@datalab.es>
>Tested-by: NetBSD Build System <jenkins@build.gluster.org>
BUG: 1238476
Change-Id: Id9625536197c1f5d6c3a9ed53f80bd9e6d14c507
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
Reviewed-on: http://review.gluster.org/11679
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Xavier Hernandez <xhernandez@datalab.es>
Diffstat (limited to 'xlators/cluster/ec/src/ec-data.c')
| -rw-r--r-- | xlators/cluster/ec/src/ec-data.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/xlators/cluster/ec/src/ec-data.c b/xlators/cluster/ec/src/ec-data.c index 0632371bb6d..2a34f78999c 100644 --- a/xlators/cluster/ec/src/ec-data.c +++ b/xlators/cluster/ec/src/ec-data.c @@ -135,6 +135,7 @@ ec_fop_data_t * ec_fop_data_allocate(call_frame_t * frame, xlator_t * this, } INIT_LIST_HEAD(&fop->cbk_list); + INIT_LIST_HEAD(&fop->healer); INIT_LIST_HEAD(&fop->answer_list); INIT_LIST_HEAD(&fop->pending_list); INIT_LIST_HEAD(&fop->locks[0].wait_list); @@ -300,6 +301,7 @@ void ec_fop_data_release(ec_fop_data_t * fop) ec = fop->xl->private; ec_handle_last_pending_fop_completion (fop, ¬ify); + ec_handle_healers_done (fop); mem_put(fop); if (notify) { ec_pending_fops_completed(ec); |
