From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.0 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id E72121FCC7 for ; Sat, 24 Dec 2016 08:33:43 +0000 (UTC) From: Eric Wong To: cmogstored-public@bogomips.org Subject: [PATCH] doc: documentation for ioq Date: Sat, 24 Dec 2016 08:33:43 +0000 Message-Id: <20161224083343.21879-1-e@80x24.org> List-Id: It's a queue that looks like a semaphore, so document it in doc/queues.txt and provide pointers to perhaps-forgotten documentation. --- doc/queues.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/doc/queues.txt b/doc/queues.txt index 8e3235e..d1de9da 100644 --- a/doc/queues.txt +++ b/doc/queues.txt @@ -91,3 +91,22 @@ must parallelize these syscalls through POSIX threads instead. Furthermore, no AIO implementation we've looked at is aware of nor designed to manage parallelism across multiple devices/filesystems. + +ioq (secondary queue) +--------------------- + +To manage parallelism across multiple devices/filesystems while +being integrated into our existing thread pool architecture, +'ioq' was implemented starting with v1.3.0. Its goal is to +prevent a single slow disk from tying up more than its fair +share of disks. + +The API provided is semaphore-like; but compatible with our +existing non-blocking architecture. A lengthier description is +in the 1.3.0 release notes: + + https://bogomips.org/cmogstored.git/patch/?id=v1.3.0 + +See also the ioq.c source for a diagram and implementation: + + https://bogomips.org/cmogstored.git/plain/ioq.c -- EW