From 75ce88fb69096b79053f0e22c3524a9f30870369 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 26 Feb 2013 17:45:23 -0800 Subject: [PATCH] doc: fix rst for watch/notify internals Signed-off-by: Sage Weil --- doc/dev/osd_internals/watch_notify.rst | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/doc/dev/osd_internals/watch_notify.rst b/doc/dev/osd_internals/watch_notify.rst index e5f48b78a6861..24e9a4b9c38a3 100644 --- a/doc/dev/osd_internals/watch_notify.rst +++ b/doc/dev/osd_internals/watch_notify.rst @@ -28,8 +28,10 @@ Watches in order to be able to notify them upon ms_handle_reset() Each Watch object tracks the set of currently un-acked notifies. start_notify() on a Watch object adds a reference to a new in-progress Notify to the Watch and either: - * if the Watch is *connected*, sends a Notify message to the client - * if the Watch is *unconnected*, does nothing. + +* if the Watch is *connected*, sends a Notify message to the client +* if the Watch is *unconnected*, does nothing. + When the Watch becomes connected (in ReplicatedPG::do_osd_op_effects), Notifies are resent to all remaining tracked Notify objects. @@ -41,11 +43,12 @@ is sent to the client. Watch Lifecycle --------------- A watch may be in one of 5 states: - 1. Non existent. - 2. On disk, but not registered with an object context. - 3. Connected - 4. Disconnected, callback registered with timer - 5. Disconnected, callback in queue for scrub or is_degraded + +1. Non existent. +2. On disk, but not registered with an object context. +3. Connected +4. Disconnected, callback registered with timer +5. Disconnected, callback in queue for scrub or is_degraded Case 2 occurs between when an OSD goes active and the ObjectContext for an object with watchers is loaded into memory due to an access.