{"push_id":1013753051,"size":3,"distinct_size":3,"ref":"refs/heads/wip-async-read-0225","head":"8c31af9d0ba41786c59e0aaad3092d1e653a97a2","before":"1ac7a2001e2336fee07bacf0a7dcd2f3cc94c81f","commits":[{"sha":"8600142e2b3dcde50dc9673e78c6b4727dea1073","author":{"email":"26fd3115cc88582d50fb45abc26e0b8c48e31be8@ssi.samsung.com","name":"v.sinha"},"message":"ObjectStore, FileStore changes for supporting Asynchronous Reads.\n\n- ObjectStore::async_read_dispatch() is used to send Async Reads.\n- In FileStore, create and delete Async Read Completion threads.\n  FileStore::mount() creates and umount() destroys vector of Async\n  Read Completion threads. A read_aio struct is allocated on every\n  Async Read operation and tracks the completion. Each Async Read\n  command is processed by a Completion thread selected based on\n  OpSequencer ID, with the Sequencer being passed in by the caller.\n- Count of Completion threads created by FileStore is equal to\n  m_filestore_async_threads, none are created if 0.\n- Updated (rebased) to improve tracking of outstanding commands when\n  starting and stopping Async Read Completion threads.\n\nSigned-off-by: Vikas Sinha <v.sinha@ssi.samsung.com>","distinct":true,"url":"https://api.github.com/repos/v-sinha/ceph/commits/8600142e2b3dcde50dc9673e78c6b4727dea1073"},{"sha":"25bc68307a9b3434fda068d195e877ee7cf15996","author":{"email":"26fd3115cc88582d50fb45abc26e0b8c48e31be8@ssi.samsung.com","name":"v.sinha"},"message":"PGBackend and ReplicatedPG changes for Asynchronous Reads.\n\n- do_osd_ops() adds optional argument to allow async reads: if that is set\n  and if Async mode is available, then it executes the command asynchronously.\n- Support for Async handling of SYNC_READ and SPARSE_READ opcodes in\n  do_osd_ops().\n- Define ReplicatedBackend::objects_read_async_use_aio() to send commands\n  to PGBackend.\n- OpContext::pending_async_reads_aio holds commands that will be issued\n  asynchronously for AIO processing in the ObjectStore. This is separate\n  from the usual pending_async_reads list used for EC Backend.\n- PG's Sequencer is passed in as argument to the dispatch routine to help\n  select the completion thread, similar to queue_transactions() interface.\n\nSigned-off-by: Vikas Sinha <v.sinha@ssi.samsung.com>","distinct":true,"url":"https://api.github.com/repos/v-sinha/ceph/commits/25bc68307a9b3434fda068d195e877ee7cf15996"},{"sha":"8c31af9d0ba41786c59e0aaad3092d1e653a97a2","author":{"email":"26fd3115cc88582d50fb45abc26e0b8c48e31be8@ssi.samsung.com","name":"v.sinha"},"message":"In Async Reads, enable Linux AIO with DirectIO using O_DIRECT mode.\n\n- Define FileStore::fdcache_direct to cache FDs for files opened in O_DIRECT mode.\n- Add parameter \"directio\" to FileStore::lfn_open() to select either the usual\n  fdcache or fdcache_direct.\n- do_osd_ops() adds the additional parameter to pgbackend->objects_read_async_use_aio()\n  to specify whether Directio mode is to be used.\n\nSigned-off-by: Vikas Sinha <v.sinha@ssi.samsung.com>","distinct":true,"url":"https://api.github.com/repos/v-sinha/ceph/commits/8c31af9d0ba41786c59e0aaad3092d1e653a97a2"}]}