[sheepdog] [PATCH 0/2] avoid heavy disk I/O in the main thread

Hitoshi Mitake mitake.hitoshi at gmail.com
Thu Oct 9 08:21:18 CEST 2014


On Thu, Oct 9, 2014 at 12:20 AM, Hitoshi Mitake
<mitake.hitoshi at gmail.com> wrote:
> On Thu, Oct 9, 2014 at 12:16 AM, Hitoshi Mitake
> <mitake.hitoshi at lab.ntt.co.jp> wrote:
>> Recently, Philip and Tsuji-san reported a problem of critical request
>> block caused by recovery process. I found a problematic behavior
>> purge_directory() of libsheepdog which can cause long stop of the main
>> thread. It would be a root cause of the problem. This patchset solves
>> it.
>>
>> Hitoshi Mitake (2):
>>   lib: add an interface for registering workqueue for libsheepdog
>>   lib: call rmdir(2) and unlink(2) in worker threads during purging
>>     directory
>>
>>  include/util.h |  3 +++
>>  lib/util.c     | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
>>  sheep/sheep.c  |  2 ++
>>  3 files changed, 76 insertions(+), 9 deletions(-)
>
> Tsuji-san, could you test this patchset on your test environment? The
> request blocking time depends on a number of stored object, so testing
> with large disks is ideal (e.g. preparing a cluster which consists 3
> node with 2TB disk, let nodes have more than 1TB objects, and adding
> one node to the cluster).
>
> This would require amount of time, sorry for that...

The same changes can be found in this branch:
https://github.com/sheepdog/sheepdog/tree/avoid-blocking

Thanks,
Hitoshi



More information about the sheepdog mailing list