]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/Paxos: add writing and refresh states
authorSage Weil <sage@redhat.com>
Tue, 19 Aug 2014 23:44:06 +0000 (16:44 -0700)
committerSage Weil <sage@redhat.com>
Wed, 27 Aug 2014 21:36:08 +0000 (14:36 -0700)
The new transition will be

 (updating or updating-previous) -> writing -> refresh -> active

Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/Paxos.h

index ed345a4144f811818bd32af49d01440f69935205..5a3fdbf13a3453d0e6ba444f79d3f7e05afe1bd0 100644 (file)
@@ -223,6 +223,13 @@ public:
      * Leader proposing an old value
      */
     STATE_UPDATING_PREVIOUS,
+    /*
+     * Leader/Peon is writing a new commit.  readable, but not
+     * writeable.
+     */
+    STATE_WRITING,
+    // leader: refresh following a commit
+    STATE_REFRESH,
   };
 
   /**
@@ -244,6 +251,10 @@ public:
       return "updating";
     case STATE_UPDATING_PREVIOUS:
       return "updating-previous";
+    case STATE_WRITING:
+      return "writing";
+    case STATE_REFRESH:
+      return "refresh";
     default:
       return "UNKNOWN";
     }
@@ -284,6 +295,12 @@ public:
    */
   bool is_updating_previous() const { return state == STATE_UPDATING_PREVIOUS; }
 
+  /// @return 'true' if we are writing an update to disk
+  bool is_writing() const { return state == STATE_WRITING; }
+
+  /// @return 'true' if we are refreshing an update just committed
+  bool is_refresh() const { return state == STATE_REFRESH; }
+
 private:
   /**
    * @defgroup Paxos_h_recovery_vars Common recovery-related member variables