diff options
author | Eric Wong <normalperson@yhbt.net> | 2014-02-04 22:42:02 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2014-02-04 22:42:02 +0000 |
commit | d6147a83867fb41eabdfdde6d71a23d0e1de5f71 (patch) | |
tree | 06f7b9710091d646a68c3ce1e3e9fb9feb37edb8 | |
parent | 4e48663f6b07954fbcfc34339f44c9f487d9b4c8 (diff) | |
download | cmogstored-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.txt | 13 |
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. |