From d6147a83867fb41eabdfdde6d71a23d0e1de5f71 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 4 Feb 2014 22:42:02 +0000 Subject: doc/queues.txt: add a note about our non-use of AIO It was obvious to me to use pthreads up front, hopefully that's explained to others, too. --- doc/queues.txt | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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. -- cgit v1.2.3-24-ge0c7