From f4210f83d9dc875e6a9589200f0add0152d189fb Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 6 Sep 2012 13:33:45 -0700 Subject: [PATCH] mon: include global versions in paxos, slurp messages Signed-off-by: Sage Weil --- src/messages/MMonPaxos.h | 13 ++++++++++--- src/messages/MMonProbe.h | 7 ++++++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/messages/MMonPaxos.h b/src/messages/MMonPaxos.h index aefaebdfdd9d4..cee58eb123035 100644 --- a/src/messages/MMonPaxos.h +++ b/src/messages/MMonPaxos.h @@ -22,7 +22,8 @@ class MMonPaxos : public Message { - static const int HEAD_VERSION = 1; + static const int HEAD_VERSION = 2; + static const int COMPAT_VERSION = 1; public: // op types @@ -63,9 +64,11 @@ class MMonPaxos : public Message { map values; - MMonPaxos() : Message(MSG_MON_PAXOS, HEAD_VERSION) { } + map gv; // global version map; stepping stone for bobtail -> cuttlefish transition. + + MMonPaxos() : Message(MSG_MON_PAXOS, HEAD_VERSION, COMPAT_VERSION) { } MMonPaxos(epoch_t e, int o, int mid, utime_t now) : - Message(MSG_MON_PAXOS, HEAD_VERSION), + Message(MSG_MON_PAXOS, HEAD_VERSION, COMPAT_VERSION), epoch(e), op(o), machine_id(mid), first_committed(0), last_committed(0), pn_from(0), pn(0), uncommitted_pn(0), @@ -85,6 +88,7 @@ public: << " lc " << last_committed << " fc " << first_committed << " pn " << pn << " opn " << uncommitted_pn; + out << " gv " << gv; if (latest_version) out << " latest " << latest_version << " (" << latest_value.length() << " bytes)"; out << ")"; @@ -107,6 +111,7 @@ public: ::encode(latest_version, payload); ::encode(latest_value, payload); ::encode(values, payload); + ::encode(gv, payload); } void decode_payload() { bufferlist::iterator p = payload.begin(); @@ -124,6 +129,8 @@ public: ::decode(latest_version, p); ::decode(latest_value, p); ::decode(values, p); + if (header.version >= 2) + ::decode(gv, p); } }; diff --git a/src/messages/MMonProbe.h b/src/messages/MMonProbe.h index e7ea1193731a6..3cec753566f6d 100644 --- a/src/messages/MMonProbe.h +++ b/src/messages/MMonProbe.h @@ -22,7 +22,7 @@ class MMonProbe : public Message { public: - static const int HEAD_VERSION = 2; + static const int HEAD_VERSION = 3; static const int COMPAT_VERSION = 1; enum { @@ -57,6 +57,8 @@ public: bufferlist latest_value; version_t latest_version, newest_version, oldest_version; + map > gv; + MMonProbe() : Message(MSG_MON_PROBE, HEAD_VERSION, COMPAT_VERSION) {} MMonProbe(const uuid_d& f, int o, const string& n, bool hej) @@ -103,6 +105,7 @@ public: ::encode(latest_value, payload); ::encode(latest_version, payload); ::encode(has_ever_joined, payload); + ::encode(gv, payload); } void decode_payload() { bufferlist::iterator p = payload.begin(); @@ -122,6 +125,8 @@ public: ::decode(has_ever_joined, p); else has_ever_joined = false; + if (header.version >= 3) + ::decode(gv, p); } }; -- 2.39.5