From eb41c7abde797e03dd51c0bc945f0298d0fe235c Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 24 Dec 2016 08:30:46 +0000 Subject: doc: documentation for ioq 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 -- cgit v1.2.3-24-ge0c7