diff options
author | Radoslaw Zarzynski <rzarzyns@redhat.com> | 2021-03-23 16:49:55 +0100 |
---|---|---|
committer | Radoslaw Zarzynski <rzarzyns@redhat.com> | 2021-03-23 16:49:55 +0100 |
commit | 1b1c088dbacfbea66413118248e798deec247704 (patch) | |
tree | 5e38c5e60ed8e4105413f64504f9b3703cbc88cc /doc/dev/crimson | |
parent | Merge pull request #40208 from CongMinYin/fix-flush-block-bug (diff) | |
download | ceph-1b1c088dbacfbea66413118248e798deec247704.tar.xz ceph-1b1c088dbacfbea66413118248e798deec247704.zip |
doc/crimson: improve wording about the pipeline / wait states.
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Diffstat (limited to 'doc/dev/crimson')
-rw-r--r-- | doc/dev/crimson/pipeline.rst | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/doc/dev/crimson/pipeline.rst b/doc/dev/crimson/pipeline.rst index b9b09cd06ab..e9115c6d7c3 100644 --- a/doc/dev/crimson/pipeline.rst +++ b/doc/dev/crimson/pipeline.rst @@ -24,19 +24,21 @@ There are a few cases when the blocking of a client request can happen. ``ClientRequest::PGPipeline::await_map`` wait on a PG being advanced to particular epoch ``ClientRequest::PGPipeline::wait_for_active`` - wait on a PG becomes ``is_active()`` + wait for a PG to become *active* (i.e. have ``is_active()`` asserted) ``ClientRequest::PGPipeline::recover_missing`` - wait on an object has been recovered + wait on an object to be recovered (i.e. leaving the ``missing`` set) ``ClientRequest::PGPipeline::get_obc`` - wait on an object context becomes locked + wait on an object to be available for locking. The ``obc`` will be locked + before this operation is allowed to continue ``ClientRequest::PGPipeline::process`` wait if any other ``MOSDOp`` message is handled against this PG At any moment, a ``ClientRequest`` being served should be in one and only one -of these phases. Similarly, an object denoting particular phase can host not -more than a single ``ClientRequest`` the same time. At low-level this is achieved -with a combination of a barrier and an exclusive lock. They implement the -semantic of a semaphore with a single slot for these exclusive phases. +of the phases described above. Similarly, an object denoting particular phase +can host not more than a single ``ClientRequest`` the same time. At low-level +this is achieved with a combination of a barrier and an exclusive lock. +They implement the semantic of a semaphore with a single slot for these exclusive +phases. As the execution advances, request enters next phase and leaves the current one freeing it for another ``ClientRequest`` instance. All these phases form a pipeline |