On Thu, Oct 9, 2014 at 12:20 AM, Hitoshi Mitake <[email protected]> wrote: > On Thu, Oct 9, 2014 at 12:16 AM, Hitoshi Mitake > <[email protected]> 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 -- sheepdog mailing list [email protected] http://lists.wpkg.org/mailman/listinfo/sheepdog
