about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2014-02-04 22:42:02 +0000
committerEric Wong <normalperson@yhbt.net>2014-02-04 22:42:02 +0000
commitd6147a83867fb41eabdfdde6d71a23d0e1de5f71 (patch)
tree06f7b9710091d646a68c3ce1e3e9fb9feb37edb8
parent4e48663f6b07954fbcfc34339f44c9f487d9b4c8 (diff)
downloadcmogstored-d6147a83867fb41eabdfdde6d71a23d0e1de5f71.tar.gz
It was obvious to me to use pthreads up front, hopefully that's
explained to others, too.
-rw-r--r--doc/queues.txt13
1 files changed, 12 insertions, 1 deletions
diff --git a/doc/queues.txt b/doc/queues.txt
index a43613a..8e3235e 100644
--- a/doc/queues.txt
+++ b/doc/queues.txt
@@ -6,7 +6,7 @@ Implementation details of cmogstored.
 There are 2 main classes of queues and 2 classes of thread pools in
 cmogstored.
 
-Multithreading is required for concurrent disk (and page cache) I/O.
+Multithreading is required for concurrent disk (and page cache) I/O(*).
 Most operations with cmogstored are not CPU-intensive, so pinning
 cmogstored to a single CPU or core via schedtool(1) /may/ even be
 beneficial.
@@ -80,3 +80,14 @@ unresolved issues:
 
   https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/134274
   http://labs.apnic.net/blabs/?p=57
+
+(*) What about AIO?
+-------------------
+
+The POSIX AIO interface is not used by cmogstored, as there are no
+interfaces for asynchronous open/unlink/rename/mkdir.  As it is common
+to run MogileFS storage on multiple filesystems on the same host, we
+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.