summaryrefslogtreecommitdiffstats
path: root/doc/dev/crimson/backfillmachine.rst
diff options
context:
space:
mode:
Diffstat (limited to 'doc/dev/crimson/backfillmachine.rst')
-rw-r--r--doc/dev/crimson/backfillmachine.rst26
1 files changed, 26 insertions, 0 deletions
diff --git a/doc/dev/crimson/backfillmachine.rst b/doc/dev/crimson/backfillmachine.rst
new file mode 100644
index 00000000000..3f579621ad4
--- /dev/null
+++ b/doc/dev/crimson/backfillmachine.rst
@@ -0,0 +1,26 @@
+===============
+BackfillMachine
+===============
+
+
+In Crimson, backfill is implemented with `Boost State Chart <https://www.boost.org/doc/libs/1_86_0/libs/statechart/doc/>`_.
+
+.. //TODO: Once the implementation is settled:
+.. * Explain exceptional states once we finish working on this code
+.. * Explain example happy path flow (code walkthorugh?)
+.. * https://tracker.ceph.com/issues/68728
+
+A sample of the recent state model:
+
+.. note:: ``Cancelled`` and ``Crushed`` states are not included in the
+ following graph in order to make it easier to follow:
+
+ * **Any** state is able to transit into ``Crushed``.
+
+ * **Any** state (except from ``Initial`` and ``Waiting``) can transit into ``Cancelled``
+
+.. image:: crimson_backfillmachine.svg
+
+
+In similarly to :doc:`/dev/peering` a copy of the latest BackfillMachine
+state model can be genereated using the `gen_state_diagram.py <https://github.com/ceph/ceph/blob/master/doc/scripts/gen_state_diagram.py>`_