about summary refs log tree commit homepage
path: root/doc/queues.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/queues.txt')
-rw-r--r--doc/queues.txt19
1 files changed, 19 insertions, 0 deletions
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