From 93543ee37188e82f0e067a50e4c06f2ca67504c7 Mon Sep 17 00:00:00 2001 From: Neil Shen Date: Thu, 10 May 2018 16:41:41 +0800 Subject: [PATCH] Attach addition context to every proposals --- proto/eraftpb.proto | 1 + src/eraftpb.rs | 451 ++++++++++++++++++++++++-------------------- src/raw_node.rs | 13 ++ 3 files changed, 263 insertions(+), 202 deletions(-) diff --git a/proto/eraftpb.proto b/proto/eraftpb.proto index 578a4b4dc..57fab9be0 100644 --- a/proto/eraftpb.proto +++ b/proto/eraftpb.proto @@ -12,6 +12,7 @@ message Entry { uint64 index = 3; bytes data = 4; bool sync_log = 5; + uint64 context = 6; } message SnapshotMetadata { diff --git a/src/eraftpb.rs b/src/eraftpb.rs index df8e5a9cb..450dcbef9 100644 --- a/src/eraftpb.rs +++ b/src/eraftpb.rs @@ -29,6 +29,7 @@ pub struct Entry { pub index: u64, pub data: ::std::vec::Vec, pub sync_log: bool, + pub context: u64, // special fields unknown_fields: ::protobuf::UnknownFields, cached_size: ::protobuf::CachedSize, @@ -177,6 +178,29 @@ impl Entry { fn mut_sync_log_for_reflect(&mut self) -> &mut bool { &mut self.sync_log } + + // uint64 context = 6; + + pub fn clear_context(&mut self) { + self.context = 0; + } + + // Param is passed by value, moved + pub fn set_context(&mut self, v: u64) { + self.context = v; + } + + pub fn get_context(&self) -> u64 { + self.context + } + + fn get_context_for_reflect(&self) -> &u64 { + &self.context + } + + fn mut_context_for_reflect(&mut self) -> &mut u64 { + &mut self.context + } } impl ::protobuf::Message for Entry { @@ -219,6 +243,13 @@ impl ::protobuf::Message for Entry { let tmp = is.read_bool()?; self.sync_log = tmp; }, + 6 => { + if wire_type != ::protobuf::wire_format::WireTypeVarint { + return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); + } + let tmp = is.read_uint64()?; + self.context = tmp; + }, _ => { ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?; }, @@ -246,6 +277,9 @@ impl ::protobuf::Message for Entry { if self.sync_log != false { my_size += 2; } + if self.context != 0 { + my_size += ::protobuf::rt::value_size(6, self.context, ::protobuf::wire_format::WireTypeVarint); + } my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields()); self.cached_size.set(my_size); my_size @@ -267,6 +301,9 @@ impl ::protobuf::Message for Entry { if self.sync_log != false { os.write_bool(5, self.sync_log)?; } + if self.context != 0 { + os.write_uint64(6, self.context)?; + } os.write_unknown_fields(self.get_unknown_fields())?; ::std::result::Result::Ok(()) } @@ -336,6 +373,11 @@ impl ::protobuf::MessageStatic for Entry { Entry::get_sync_log_for_reflect, Entry::mut_sync_log_for_reflect, )); + fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeUint64>( + "context", + Entry::get_context_for_reflect, + Entry::mut_context_for_reflect, + )); ::protobuf::reflect::MessageDescriptor::new::( "Entry", fields, @@ -353,6 +395,7 @@ impl ::protobuf::Clear for Entry { self.clear_index(); self.clear_data(); self.clear_sync_log(); + self.clear_context(); self.unknown_fields.clear(); } } @@ -2576,211 +2619,215 @@ impl ::protobuf::reflect::ProtobufValue for ConfChangeType { } static file_descriptor_proto_data: &'static [u8] = b"\ - \n\x13proto/eraftpb.proto\x12\x07eraftpb\"\x93\x01\n\x05Entry\x121\n\nen\ + \n\x13proto/eraftpb.proto\x12\x07eraftpb\"\xad\x01\n\x05Entry\x121\n\nen\ try_type\x18\x01\x20\x01(\x0e2\x12.eraftpb.EntryTypeR\tentryType\x12\x12\ \n\x04term\x18\x02\x20\x01(\x04R\x04term\x12\x14\n\x05index\x18\x03\x20\ \x01(\x04R\x05index\x12\x12\n\x04data\x18\x04\x20\x01(\x0cR\x04data\x12\ - \x19\n\x08sync_log\x18\x05\x20\x01(\x08R\x07syncLog\"o\n\x10SnapshotMeta\ - data\x121\n\nconf_state\x18\x01\x20\x01(\x0b2\x12.eraftpb.ConfStateR\tco\ - nfState\x12\x14\n\x05index\x18\x02\x20\x01(\x04R\x05index\x12\x12\n\x04t\ - erm\x18\x03\x20\x01(\x04R\x04term\"U\n\x08Snapshot\x12\x12\n\x04data\x18\ - \x01\x20\x01(\x0cR\x04data\x125\n\x08metadata\x18\x02\x20\x01(\x0b2\x19.\ - eraftpb.SnapshotMetadataR\x08metadata\"\xe7\x02\n\x07Message\x12/\n\x08m\ - sg_type\x18\x01\x20\x01(\x0e2\x14.eraftpb.MessageTypeR\x07msgType\x12\ - \x0e\n\x02to\x18\x02\x20\x01(\x04R\x02to\x12\x12\n\x04from\x18\x03\x20\ - \x01(\x04R\x04from\x12\x12\n\x04term\x18\x04\x20\x01(\x04R\x04term\x12\ - \x19\n\x08log_term\x18\x05\x20\x01(\x04R\x07logTerm\x12\x14\n\x05index\ - \x18\x06\x20\x01(\x04R\x05index\x12(\n\x07entries\x18\x07\x20\x03(\x0b2\ - \x0e.eraftpb.EntryR\x07entries\x12\x16\n\x06commit\x18\x08\x20\x01(\x04R\ - \x06commit\x12-\n\x08snapshot\x18\t\x20\x01(\x0b2\x11.eraftpb.SnapshotR\ - \x08snapshot\x12\x16\n\x06reject\x18\n\x20\x01(\x08R\x06reject\x12\x1f\n\ - \x0breject_hint\x18\x0b\x20\x01(\x04R\nrejectHint\x12\x18\n\x07context\ - \x18\x0c\x20\x01(\x0cR\x07context\"K\n\tHardState\x12\x12\n\x04term\x18\ - \x01\x20\x01(\x04R\x04term\x12\x12\n\x04vote\x18\x02\x20\x01(\x04R\x04vo\ - te\x12\x16\n\x06commit\x18\x03\x20\x01(\x04R\x06commit\"=\n\tConfState\ - \x12\x14\n\x05nodes\x18\x01\x20\x03(\x04R\x05nodes\x12\x1a\n\x08learners\ - \x18\x02\x20\x03(\x04R\x08learners\"\x89\x01\n\nConfChange\x12\x0e\n\x02\ - id\x18\x01\x20\x01(\x04R\x02id\x128\n\x0bchange_type\x18\x02\x20\x01(\ - \x0e2\x17.eraftpb.ConfChangeTypeR\nchangeType\x12\x17\n\x07node_id\x18\ - \x03\x20\x01(\x04R\x06nodeId\x12\x18\n\x07context\x18\x04\x20\x01(\x0cR\ - \x07context*1\n\tEntryType\x12\x0f\n\x0bEntryNormal\x10\0\x12\x13\n\x0fE\ - ntryConfChange\x10\x01*\x8c\x03\n\x0bMessageType\x12\n\n\x06MsgHup\x10\0\ - \x12\x0b\n\x07MsgBeat\x10\x01\x12\x0e\n\nMsgPropose\x10\x02\x12\r\n\tMsg\ - Append\x10\x03\x12\x15\n\x11MsgAppendResponse\x10\x04\x12\x12\n\x0eMsgRe\ - questVote\x10\x05\x12\x1a\n\x16MsgRequestVoteResponse\x10\x06\x12\x0f\n\ - \x0bMsgSnapshot\x10\x07\x12\x10\n\x0cMsgHeartbeat\x10\x08\x12\x18\n\x14M\ - sgHeartbeatResponse\x10\t\x12\x12\n\x0eMsgUnreachable\x10\n\x12\x11\n\rM\ - sgSnapStatus\x10\x0b\x12\x12\n\x0eMsgCheckQuorum\x10\x0c\x12\x15\n\x11Ms\ - gTransferLeader\x10\r\x12\x11\n\rMsgTimeoutNow\x10\x0e\x12\x10\n\x0cMsgR\ - eadIndex\x10\x0f\x12\x14\n\x10MsgReadIndexResp\x10\x10\x12\x15\n\x11MsgR\ - equestPreVote\x10\x11\x12\x1d\n\x19MsgRequestPreVoteResponse\x10\x12*A\n\ - \x0eConfChangeType\x12\x0b\n\x07AddNode\x10\0\x12\x0e\n\nRemoveNode\x10\ - \x01\x12\x12\n\x0eAddLearnerNode\x10\x02J\xdb\x1a\n\x06\x12\x04\0\0V\x01\ - \n\x08\n\x01\x0c\x12\x03\0\0\x12\n\x08\n\x01\x02\x12\x03\x01\x08\x0f\n\n\ - \n\x02\x05\0\x12\x04\x03\0\x06\x01\n\n\n\x03\x05\0\x01\x12\x03\x03\x05\ - \x0e\n\x0b\n\x04\x05\0\x02\0\x12\x03\x04\x04\x14\n\x0c\n\x05\x05\0\x02\0\ - \x01\x12\x03\x04\x04\x0f\n\x0c\n\x05\x05\0\x02\0\x02\x12\x03\x04\x12\x13\ - \n\x0b\n\x04\x05\0\x02\x01\x12\x03\x05\x04\x18\n\x0c\n\x05\x05\0\x02\x01\ - \x01\x12\x03\x05\x04\x13\n\x0c\n\x05\x05\0\x02\x01\x02\x12\x03\x05\x16\ - \x17\n\n\n\x02\x04\0\x12\x04\x08\0\x0e\x01\n\n\n\x03\x04\0\x01\x12\x03\ - \x08\x08\r\n\x0b\n\x04\x04\0\x02\0\x12\x03\t\x04\x1d\n\r\n\x05\x04\0\x02\ - \0\x04\x12\x04\t\x04\x08\x0f\n\x0c\n\x05\x04\0\x02\0\x06\x12\x03\t\x04\r\ - \n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\t\x0e\x18\n\x0c\n\x05\x04\0\x02\0\ - \x03\x12\x03\t\x1b\x1c\n\x0b\n\x04\x04\0\x02\x01\x12\x03\n\x04\x14\n\r\n\ - \x05\x04\0\x02\x01\x04\x12\x04\n\x04\t\x1d\n\x0c\n\x05\x04\0\x02\x01\x05\ - \x12\x03\n\x04\n\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03\n\x0b\x0f\n\x0c\n\ - \x05\x04\0\x02\x01\x03\x12\x03\n\x12\x13\n\x0b\n\x04\x04\0\x02\x02\x12\ - \x03\x0b\x04\x15\n\r\n\x05\x04\0\x02\x02\x04\x12\x04\x0b\x04\n\x14\n\x0c\ - \n\x05\x04\0\x02\x02\x05\x12\x03\x0b\x04\n\n\x0c\n\x05\x04\0\x02\x02\x01\ - \x12\x03\x0b\x0b\x10\n\x0c\n\x05\x04\0\x02\x02\x03\x12\x03\x0b\x13\x14\n\ - \x0b\n\x04\x04\0\x02\x03\x12\x03\x0c\x04\x13\n\r\n\x05\x04\0\x02\x03\x04\ - \x12\x04\x0c\x04\x0b\x15\n\x0c\n\x05\x04\0\x02\x03\x05\x12\x03\x0c\x04\t\ - \n\x0c\n\x05\x04\0\x02\x03\x01\x12\x03\x0c\n\x0e\n\x0c\n\x05\x04\0\x02\ - \x03\x03\x12\x03\x0c\x11\x12\n\x0b\n\x04\x04\0\x02\x04\x12\x03\r\x04\x16\ - \n\r\n\x05\x04\0\x02\x04\x04\x12\x04\r\x04\x0c\x13\n\x0c\n\x05\x04\0\x02\ - \x04\x05\x12\x03\r\x04\x08\n\x0c\n\x05\x04\0\x02\x04\x01\x12\x03\r\t\x11\ - \n\x0c\n\x05\x04\0\x02\x04\x03\x12\x03\r\x14\x15\n\n\n\x02\x04\x01\x12\ - \x04\x10\0\x14\x01\n\n\n\x03\x04\x01\x01\x12\x03\x10\x08\x18\n\x0b\n\x04\ - \x04\x01\x02\0\x12\x03\x11\x04\x1d\n\r\n\x05\x04\x01\x02\0\x04\x12\x04\ - \x11\x04\x10\x1a\n\x0c\n\x05\x04\x01\x02\0\x06\x12\x03\x11\x04\r\n\x0c\n\ - \x05\x04\x01\x02\0\x01\x12\x03\x11\x0e\x18\n\x0c\n\x05\x04\x01\x02\0\x03\ - \x12\x03\x11\x1b\x1c\n\x0b\n\x04\x04\x01\x02\x01\x12\x03\x12\x04\x15\n\r\ - \n\x05\x04\x01\x02\x01\x04\x12\x04\x12\x04\x11\x1d\n\x0c\n\x05\x04\x01\ - \x02\x01\x05\x12\x03\x12\x04\n\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03\ - \x12\x0b\x10\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03\x12\x13\x14\n\x0b\n\ - \x04\x04\x01\x02\x02\x12\x03\x13\x04\x14\n\r\n\x05\x04\x01\x02\x02\x04\ - \x12\x04\x13\x04\x12\x15\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03\x13\x04\ - \n\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03\x13\x0b\x0f\n\x0c\n\x05\x04\ - \x01\x02\x02\x03\x12\x03\x13\x12\x13\n\n\n\x02\x04\x02\x12\x04\x16\0\x19\ - \x01\n\n\n\x03\x04\x02\x01\x12\x03\x16\x08\x10\n\x0b\n\x04\x04\x02\x02\0\ - \x12\x03\x17\x04\x13\n\r\n\x05\x04\x02\x02\0\x04\x12\x04\x17\x04\x16\x12\ - \n\x0c\n\x05\x04\x02\x02\0\x05\x12\x03\x17\x04\t\n\x0c\n\x05\x04\x02\x02\ - \0\x01\x12\x03\x17\n\x0e\n\x0c\n\x05\x04\x02\x02\0\x03\x12\x03\x17\x11\ - \x12\n\x0b\n\x04\x04\x02\x02\x01\x12\x03\x18\x04\"\n\r\n\x05\x04\x02\x02\ - \x01\x04\x12\x04\x18\x04\x17\x13\n\x0c\n\x05\x04\x02\x02\x01\x06\x12\x03\ - \x18\x04\x14\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03\x18\x15\x1d\n\x0c\n\ - \x05\x04\x02\x02\x01\x03\x12\x03\x18\x20!\n\n\n\x02\x05\x01\x12\x04\x1b\ - \0/\x01\n\n\n\x03\x05\x01\x01\x12\x03\x1b\x05\x10\n\x0b\n\x04\x05\x01\ - \x02\0\x12\x03\x1c\x04\x0f\n\x0c\n\x05\x05\x01\x02\0\x01\x12\x03\x1c\x04\ - \n\n\x0c\n\x05\x05\x01\x02\0\x02\x12\x03\x1c\r\x0e\n\x0b\n\x04\x05\x01\ - \x02\x01\x12\x03\x1d\x04\x10\n\x0c\n\x05\x05\x01\x02\x01\x01\x12\x03\x1d\ - \x04\x0b\n\x0c\n\x05\x05\x01\x02\x01\x02\x12\x03\x1d\x0e\x0f\n\x0b\n\x04\ - \x05\x01\x02\x02\x12\x03\x1e\x04\x13\n\x0c\n\x05\x05\x01\x02\x02\x01\x12\ - \x03\x1e\x04\x0e\n\x0c\n\x05\x05\x01\x02\x02\x02\x12\x03\x1e\x11\x12\n\ - \x0b\n\x04\x05\x01\x02\x03\x12\x03\x1f\x04\x12\n\x0c\n\x05\x05\x01\x02\ - \x03\x01\x12\x03\x1f\x04\r\n\x0c\n\x05\x05\x01\x02\x03\x02\x12\x03\x1f\ - \x10\x11\n\x0b\n\x04\x05\x01\x02\x04\x12\x03\x20\x04\x1a\n\x0c\n\x05\x05\ - \x01\x02\x04\x01\x12\x03\x20\x04\x15\n\x0c\n\x05\x05\x01\x02\x04\x02\x12\ - \x03\x20\x18\x19\n\x0b\n\x04\x05\x01\x02\x05\x12\x03!\x04\x17\n\x0c\n\ - \x05\x05\x01\x02\x05\x01\x12\x03!\x04\x12\n\x0c\n\x05\x05\x01\x02\x05\ - \x02\x12\x03!\x15\x16\n\x0b\n\x04\x05\x01\x02\x06\x12\x03\"\x04\x1f\n\ - \x0c\n\x05\x05\x01\x02\x06\x01\x12\x03\"\x04\x1a\n\x0c\n\x05\x05\x01\x02\ - \x06\x02\x12\x03\"\x1d\x1e\n\x0b\n\x04\x05\x01\x02\x07\x12\x03#\x04\x14\ - \n\x0c\n\x05\x05\x01\x02\x07\x01\x12\x03#\x04\x0f\n\x0c\n\x05\x05\x01\ - \x02\x07\x02\x12\x03#\x12\x13\n\x0b\n\x04\x05\x01\x02\x08\x12\x03$\x04\ - \x15\n\x0c\n\x05\x05\x01\x02\x08\x01\x12\x03$\x04\x10\n\x0c\n\x05\x05\ - \x01\x02\x08\x02\x12\x03$\x13\x14\n\x0b\n\x04\x05\x01\x02\t\x12\x03%\x04\ - \x1d\n\x0c\n\x05\x05\x01\x02\t\x01\x12\x03%\x04\x18\n\x0c\n\x05\x05\x01\ - \x02\t\x02\x12\x03%\x1b\x1c\n\x0b\n\x04\x05\x01\x02\n\x12\x03&\x04\x18\n\ - \x0c\n\x05\x05\x01\x02\n\x01\x12\x03&\x04\x12\n\x0c\n\x05\x05\x01\x02\n\ - \x02\x12\x03&\x15\x17\n\x0b\n\x04\x05\x01\x02\x0b\x12\x03'\x04\x17\n\x0c\ - \n\x05\x05\x01\x02\x0b\x01\x12\x03'\x04\x11\n\x0c\n\x05\x05\x01\x02\x0b\ - \x02\x12\x03'\x14\x16\n\x0b\n\x04\x05\x01\x02\x0c\x12\x03(\x04\x18\n\x0c\ - \n\x05\x05\x01\x02\x0c\x01\x12\x03(\x04\x12\n\x0c\n\x05\x05\x01\x02\x0c\ - \x02\x12\x03(\x15\x17\n\x0b\n\x04\x05\x01\x02\r\x12\x03)\x04\x1b\n\x0c\n\ - \x05\x05\x01\x02\r\x01\x12\x03)\x04\x15\n\x0c\n\x05\x05\x01\x02\r\x02\ - \x12\x03)\x18\x1a\n\x0b\n\x04\x05\x01\x02\x0e\x12\x03*\x04\x17\n\x0c\n\ - \x05\x05\x01\x02\x0e\x01\x12\x03*\x04\x11\n\x0c\n\x05\x05\x01\x02\x0e\ - \x02\x12\x03*\x14\x16\n\x0b\n\x04\x05\x01\x02\x0f\x12\x03+\x04\x16\n\x0c\ - \n\x05\x05\x01\x02\x0f\x01\x12\x03+\x04\x10\n\x0c\n\x05\x05\x01\x02\x0f\ - \x02\x12\x03+\x13\x15\n\x0b\n\x04\x05\x01\x02\x10\x12\x03,\x04\x1a\n\x0c\ - \n\x05\x05\x01\x02\x10\x01\x12\x03,\x04\x14\n\x0c\n\x05\x05\x01\x02\x10\ - \x02\x12\x03,\x17\x19\n\x0b\n\x04\x05\x01\x02\x11\x12\x03-\x04\x1b\n\x0c\ - \n\x05\x05\x01\x02\x11\x01\x12\x03-\x04\x15\n\x0c\n\x05\x05\x01\x02\x11\ - \x02\x12\x03-\x18\x1a\n\x0b\n\x04\x05\x01\x02\x12\x12\x03.\x04#\n\x0c\n\ - \x05\x05\x01\x02\x12\x01\x12\x03.\x04\x1d\n\x0c\n\x05\x05\x01\x02\x12\ - \x02\x12\x03.\x20\"\n\n\n\x02\x04\x03\x12\x041\0>\x01\n\n\n\x03\x04\x03\ - \x01\x12\x031\x08\x0f\n\x0b\n\x04\x04\x03\x02\0\x12\x032\x04\x1d\n\r\n\ - \x05\x04\x03\x02\0\x04\x12\x042\x041\x11\n\x0c\n\x05\x04\x03\x02\0\x06\ - \x12\x032\x04\x0f\n\x0c\n\x05\x04\x03\x02\0\x01\x12\x032\x10\x18\n\x0c\n\ - \x05\x04\x03\x02\0\x03\x12\x032\x1b\x1c\n\x0b\n\x04\x04\x03\x02\x01\x12\ - \x033\x04\x12\n\r\n\x05\x04\x03\x02\x01\x04\x12\x043\x042\x1d\n\x0c\n\ - \x05\x04\x03\x02\x01\x05\x12\x033\x04\n\n\x0c\n\x05\x04\x03\x02\x01\x01\ - \x12\x033\x0b\r\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x033\x10\x11\n\x0b\n\ - \x04\x04\x03\x02\x02\x12\x034\x04\x14\n\r\n\x05\x04\x03\x02\x02\x04\x12\ - \x044\x043\x12\n\x0c\n\x05\x04\x03\x02\x02\x05\x12\x034\x04\n\n\x0c\n\ - \x05\x04\x03\x02\x02\x01\x12\x034\x0b\x0f\n\x0c\n\x05\x04\x03\x02\x02\ - \x03\x12\x034\x12\x13\n\x0b\n\x04\x04\x03\x02\x03\x12\x035\x04\x14\n\r\n\ - \x05\x04\x03\x02\x03\x04\x12\x045\x044\x14\n\x0c\n\x05\x04\x03\x02\x03\ - \x05\x12\x035\x04\n\n\x0c\n\x05\x04\x03\x02\x03\x01\x12\x035\x0b\x0f\n\ - \x0c\n\x05\x04\x03\x02\x03\x03\x12\x035\x12\x13\n\x0b\n\x04\x04\x03\x02\ - \x04\x12\x036\x04\x18\n\r\n\x05\x04\x03\x02\x04\x04\x12\x046\x045\x14\n\ - \x0c\n\x05\x04\x03\x02\x04\x05\x12\x036\x04\n\n\x0c\n\x05\x04\x03\x02\ - \x04\x01\x12\x036\x0b\x13\n\x0c\n\x05\x04\x03\x02\x04\x03\x12\x036\x16\ - \x17\n\x0b\n\x04\x04\x03\x02\x05\x12\x037\x04\x15\n\r\n\x05\x04\x03\x02\ - \x05\x04\x12\x047\x046\x18\n\x0c\n\x05\x04\x03\x02\x05\x05\x12\x037\x04\ - \n\n\x0c\n\x05\x04\x03\x02\x05\x01\x12\x037\x0b\x10\n\x0c\n\x05\x04\x03\ - \x02\x05\x03\x12\x037\x13\x14\n\x0b\n\x04\x04\x03\x02\x06\x12\x038\x04\ - \x1f\n\x0c\n\x05\x04\x03\x02\x06\x04\x12\x038\x04\x0c\n\x0c\n\x05\x04\ - \x03\x02\x06\x06\x12\x038\r\x12\n\x0c\n\x05\x04\x03\x02\x06\x01\x12\x038\ - \x13\x1a\n\x0c\n\x05\x04\x03\x02\x06\x03\x12\x038\x1d\x1e\n\x0b\n\x04\ - \x04\x03\x02\x07\x12\x039\x04\x16\n\r\n\x05\x04\x03\x02\x07\x04\x12\x049\ - \x048\x1f\n\x0c\n\x05\x04\x03\x02\x07\x05\x12\x039\x04\n\n\x0c\n\x05\x04\ - \x03\x02\x07\x01\x12\x039\x0b\x11\n\x0c\n\x05\x04\x03\x02\x07\x03\x12\ - \x039\x14\x15\n\x0b\n\x04\x04\x03\x02\x08\x12\x03:\x04\x1a\n\r\n\x05\x04\ - \x03\x02\x08\x04\x12\x04:\x049\x16\n\x0c\n\x05\x04\x03\x02\x08\x06\x12\ - \x03:\x04\x0c\n\x0c\n\x05\x04\x03\x02\x08\x01\x12\x03:\r\x15\n\x0c\n\x05\ - \x04\x03\x02\x08\x03\x12\x03:\x18\x19\n\x0b\n\x04\x04\x03\x02\t\x12\x03;\ - \x04\x15\n\r\n\x05\x04\x03\x02\t\x04\x12\x04;\x04:\x1a\n\x0c\n\x05\x04\ - \x03\x02\t\x05\x12\x03;\x04\x08\n\x0c\n\x05\x04\x03\x02\t\x01\x12\x03;\t\ - \x0f\n\x0c\n\x05\x04\x03\x02\t\x03\x12\x03;\x12\x14\n\x0b\n\x04\x04\x03\ - \x02\n\x12\x03<\x04\x1c\n\r\n\x05\x04\x03\x02\n\x04\x12\x04<\x04;\x15\n\ - \x0c\n\x05\x04\x03\x02\n\x05\x12\x03<\x04\n\n\x0c\n\x05\x04\x03\x02\n\ - \x01\x12\x03<\x0b\x16\n\x0c\n\x05\x04\x03\x02\n\x03\x12\x03<\x19\x1b\n\ - \x0b\n\x04\x04\x03\x02\x0b\x12\x03=\x04\x17\n\r\n\x05\x04\x03\x02\x0b\ - \x04\x12\x04=\x04<\x1c\n\x0c\n\x05\x04\x03\x02\x0b\x05\x12\x03=\x04\t\n\ - \x0c\n\x05\x04\x03\x02\x0b\x01\x12\x03=\n\x11\n\x0c\n\x05\x04\x03\x02\ - \x0b\x03\x12\x03=\x14\x16\n\n\n\x02\x04\x04\x12\x04@\0D\x01\n\n\n\x03\ - \x04\x04\x01\x12\x03@\x08\x11\n\x0b\n\x04\x04\x04\x02\0\x12\x03A\x04\x14\ - \n\r\n\x05\x04\x04\x02\0\x04\x12\x04A\x04@\x13\n\x0c\n\x05\x04\x04\x02\0\ - \x05\x12\x03A\x04\n\n\x0c\n\x05\x04\x04\x02\0\x01\x12\x03A\x0b\x0f\n\x0c\ - \n\x05\x04\x04\x02\0\x03\x12\x03A\x12\x13\n\x0b\n\x04\x04\x04\x02\x01\ - \x12\x03B\x04\x14\n\r\n\x05\x04\x04\x02\x01\x04\x12\x04B\x04A\x14\n\x0c\ - \n\x05\x04\x04\x02\x01\x05\x12\x03B\x04\n\n\x0c\n\x05\x04\x04\x02\x01\ - \x01\x12\x03B\x0b\x0f\n\x0c\n\x05\x04\x04\x02\x01\x03\x12\x03B\x12\x13\n\ - \x0b\n\x04\x04\x04\x02\x02\x12\x03C\x04\x16\n\r\n\x05\x04\x04\x02\x02\ - \x04\x12\x04C\x04B\x14\n\x0c\n\x05\x04\x04\x02\x02\x05\x12\x03C\x04\n\n\ - \x0c\n\x05\x04\x04\x02\x02\x01\x12\x03C\x0b\x11\n\x0c\n\x05\x04\x04\x02\ - \x02\x03\x12\x03C\x14\x15\n\n\n\x02\x04\x05\x12\x04F\0I\x01\n\n\n\x03\ - \x04\x05\x01\x12\x03F\x08\x11\n\x0b\n\x04\x04\x05\x02\0\x12\x03G\x04\x1e\ - \n\x0c\n\x05\x04\x05\x02\0\x04\x12\x03G\x04\x0c\n\x0c\n\x05\x04\x05\x02\ - \0\x05\x12\x03G\r\x13\n\x0c\n\x05\x04\x05\x02\0\x01\x12\x03G\x14\x19\n\ - \x0c\n\x05\x04\x05\x02\0\x03\x12\x03G\x1c\x1d\n\x0b\n\x04\x04\x05\x02\ - \x01\x12\x03H\x04!\n\x0c\n\x05\x04\x05\x02\x01\x04\x12\x03H\x04\x0c\n\ - \x0c\n\x05\x04\x05\x02\x01\x05\x12\x03H\r\x13\n\x0c\n\x05\x04\x05\x02\ - \x01\x01\x12\x03H\x14\x1c\n\x0c\n\x05\x04\x05\x02\x01\x03\x12\x03H\x1f\ - \x20\n\n\n\x02\x05\x02\x12\x04K\0O\x01\n\n\n\x03\x05\x02\x01\x12\x03K\ - \x05\x13\n\x0b\n\x04\x05\x02\x02\0\x12\x03L\x04\x13\n\x0c\n\x05\x05\x02\ - \x02\0\x01\x12\x03L\x04\x0b\n\x0c\n\x05\x05\x02\x02\0\x02\x12\x03L\x11\ - \x12\n\x0b\n\x04\x05\x02\x02\x01\x12\x03M\x04\x13\n\x0c\n\x05\x05\x02\ - \x02\x01\x01\x12\x03M\x04\x0e\n\x0c\n\x05\x05\x02\x02\x01\x02\x12\x03M\ - \x11\x12\n\x0b\n\x04\x05\x02\x02\x02\x12\x03N\x04\x17\n\x0c\n\x05\x05\ - \x02\x02\x02\x01\x12\x03N\x04\x12\n\x0c\n\x05\x05\x02\x02\x02\x02\x12\ - \x03N\x15\x16\n\n\n\x02\x04\x06\x12\x04Q\0V\x01\n\n\n\x03\x04\x06\x01\ - \x12\x03Q\x08\x12\n\x0b\n\x04\x04\x06\x02\0\x12\x03R\x04\x12\n\r\n\x05\ - \x04\x06\x02\0\x04\x12\x04R\x04Q\x14\n\x0c\n\x05\x04\x06\x02\0\x05\x12\ - \x03R\x04\n\n\x0c\n\x05\x04\x06\x02\0\x01\x12\x03R\x0b\r\n\x0c\n\x05\x04\ - \x06\x02\0\x03\x12\x03R\x10\x11\n\x0b\n\x04\x04\x06\x02\x01\x12\x03S\x04\ - #\n\r\n\x05\x04\x06\x02\x01\x04\x12\x04S\x04R\x12\n\x0c\n\x05\x04\x06\ - \x02\x01\x06\x12\x03S\x04\x12\n\x0c\n\x05\x04\x06\x02\x01\x01\x12\x03S\ - \x13\x1e\n\x0c\n\x05\x04\x06\x02\x01\x03\x12\x03S!\"\n\x0b\n\x04\x04\x06\ - \x02\x02\x12\x03T\x04\x17\n\r\n\x05\x04\x06\x02\x02\x04\x12\x04T\x04S#\n\ - \x0c\n\x05\x04\x06\x02\x02\x05\x12\x03T\x04\n\n\x0c\n\x05\x04\x06\x02\ - \x02\x01\x12\x03T\x0b\x12\n\x0c\n\x05\x04\x06\x02\x02\x03\x12\x03T\x15\ - \x16\n\x0b\n\x04\x04\x06\x02\x03\x12\x03U\x04\x16\n\r\n\x05\x04\x06\x02\ - \x03\x04\x12\x04U\x04T\x17\n\x0c\n\x05\x04\x06\x02\x03\x05\x12\x03U\x04\ - \t\n\x0c\n\x05\x04\x06\x02\x03\x01\x12\x03U\n\x11\n\x0c\n\x05\x04\x06\ - \x02\x03\x03\x12\x03U\x14\x15b\x06proto3\ + \x19\n\x08sync_log\x18\x05\x20\x01(\x08R\x07syncLog\x12\x18\n\x07context\ + \x18\x06\x20\x01(\x04R\x07context\"o\n\x10SnapshotMetadata\x121\n\nconf_\ + state\x18\x01\x20\x01(\x0b2\x12.eraftpb.ConfStateR\tconfState\x12\x14\n\ + \x05index\x18\x02\x20\x01(\x04R\x05index\x12\x12\n\x04term\x18\x03\x20\ + \x01(\x04R\x04term\"U\n\x08Snapshot\x12\x12\n\x04data\x18\x01\x20\x01(\ + \x0cR\x04data\x125\n\x08metadata\x18\x02\x20\x01(\x0b2\x19.eraftpb.Snaps\ + hotMetadataR\x08metadata\"\xe7\x02\n\x07Message\x12/\n\x08msg_type\x18\ + \x01\x20\x01(\x0e2\x14.eraftpb.MessageTypeR\x07msgType\x12\x0e\n\x02to\ + \x18\x02\x20\x01(\x04R\x02to\x12\x12\n\x04from\x18\x03\x20\x01(\x04R\x04\ + from\x12\x12\n\x04term\x18\x04\x20\x01(\x04R\x04term\x12\x19\n\x08log_te\ + rm\x18\x05\x20\x01(\x04R\x07logTerm\x12\x14\n\x05index\x18\x06\x20\x01(\ + \x04R\x05index\x12(\n\x07entries\x18\x07\x20\x03(\x0b2\x0e.eraftpb.Entry\ + R\x07entries\x12\x16\n\x06commit\x18\x08\x20\x01(\x04R\x06commit\x12-\n\ + \x08snapshot\x18\t\x20\x01(\x0b2\x11.eraftpb.SnapshotR\x08snapshot\x12\ + \x16\n\x06reject\x18\n\x20\x01(\x08R\x06reject\x12\x1f\n\x0breject_hint\ + \x18\x0b\x20\x01(\x04R\nrejectHint\x12\x18\n\x07context\x18\x0c\x20\x01(\ + \x0cR\x07context\"K\n\tHardState\x12\x12\n\x04term\x18\x01\x20\x01(\x04R\ + \x04term\x12\x12\n\x04vote\x18\x02\x20\x01(\x04R\x04vote\x12\x16\n\x06co\ + mmit\x18\x03\x20\x01(\x04R\x06commit\"=\n\tConfState\x12\x14\n\x05nodes\ + \x18\x01\x20\x03(\x04R\x05nodes\x12\x1a\n\x08learners\x18\x02\x20\x03(\ + \x04R\x08learners\"\x89\x01\n\nConfChange\x12\x0e\n\x02id\x18\x01\x20\ + \x01(\x04R\x02id\x128\n\x0bchange_type\x18\x02\x20\x01(\x0e2\x17.eraftpb\ + .ConfChangeTypeR\nchangeType\x12\x17\n\x07node_id\x18\x03\x20\x01(\x04R\ + \x06nodeId\x12\x18\n\x07context\x18\x04\x20\x01(\x0cR\x07context*1\n\tEn\ + tryType\x12\x0f\n\x0bEntryNormal\x10\0\x12\x13\n\x0fEntryConfChange\x10\ + \x01*\x8c\x03\n\x0bMessageType\x12\n\n\x06MsgHup\x10\0\x12\x0b\n\x07MsgB\ + eat\x10\x01\x12\x0e\n\nMsgPropose\x10\x02\x12\r\n\tMsgAppend\x10\x03\x12\ + \x15\n\x11MsgAppendResponse\x10\x04\x12\x12\n\x0eMsgRequestVote\x10\x05\ + \x12\x1a\n\x16MsgRequestVoteResponse\x10\x06\x12\x0f\n\x0bMsgSnapshot\ + \x10\x07\x12\x10\n\x0cMsgHeartbeat\x10\x08\x12\x18\n\x14MsgHeartbeatResp\ + onse\x10\t\x12\x12\n\x0eMsgUnreachable\x10\n\x12\x11\n\rMsgSnapStatus\ + \x10\x0b\x12\x12\n\x0eMsgCheckQuorum\x10\x0c\x12\x15\n\x11MsgTransferLea\ + der\x10\r\x12\x11\n\rMsgTimeoutNow\x10\x0e\x12\x10\n\x0cMsgReadIndex\x10\ + \x0f\x12\x14\n\x10MsgReadIndexResp\x10\x10\x12\x15\n\x11MsgRequestPreVot\ + e\x10\x11\x12\x1d\n\x19MsgRequestPreVoteResponse\x10\x12*A\n\x0eConfChan\ + geType\x12\x0b\n\x07AddNode\x10\0\x12\x0e\n\nRemoveNode\x10\x01\x12\x12\ + \n\x0eAddLearnerNode\x10\x02J\xa1\x1b\n\x06\x12\x04\0\0W\x01\n\x08\n\x01\ + \x0c\x12\x03\0\0\x12\n\x08\n\x01\x02\x12\x03\x01\x08\x0f\n\n\n\x02\x05\0\ + \x12\x04\x03\0\x06\x01\n\n\n\x03\x05\0\x01\x12\x03\x03\x05\x0e\n\x0b\n\ + \x04\x05\0\x02\0\x12\x03\x04\x04\x14\n\x0c\n\x05\x05\0\x02\0\x01\x12\x03\ + \x04\x04\x0f\n\x0c\n\x05\x05\0\x02\0\x02\x12\x03\x04\x12\x13\n\x0b\n\x04\ + \x05\0\x02\x01\x12\x03\x05\x04\x18\n\x0c\n\x05\x05\0\x02\x01\x01\x12\x03\ + \x05\x04\x13\n\x0c\n\x05\x05\0\x02\x01\x02\x12\x03\x05\x16\x17\n\n\n\x02\ + \x04\0\x12\x04\x08\0\x0f\x01\n\n\n\x03\x04\0\x01\x12\x03\x08\x08\r\n\x0b\ + \n\x04\x04\0\x02\0\x12\x03\t\x04\x1d\n\r\n\x05\x04\0\x02\0\x04\x12\x04\t\ + \x04\x08\x0f\n\x0c\n\x05\x04\0\x02\0\x06\x12\x03\t\x04\r\n\x0c\n\x05\x04\ + \0\x02\0\x01\x12\x03\t\x0e\x18\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\t\x1b\ + \x1c\n\x0b\n\x04\x04\0\x02\x01\x12\x03\n\x04\x14\n\r\n\x05\x04\0\x02\x01\ + \x04\x12\x04\n\x04\t\x1d\n\x0c\n\x05\x04\0\x02\x01\x05\x12\x03\n\x04\n\n\ + \x0c\n\x05\x04\0\x02\x01\x01\x12\x03\n\x0b\x0f\n\x0c\n\x05\x04\0\x02\x01\ + \x03\x12\x03\n\x12\x13\n\x0b\n\x04\x04\0\x02\x02\x12\x03\x0b\x04\x15\n\r\ + \n\x05\x04\0\x02\x02\x04\x12\x04\x0b\x04\n\x14\n\x0c\n\x05\x04\0\x02\x02\ + \x05\x12\x03\x0b\x04\n\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03\x0b\x0b\x10\ + \n\x0c\n\x05\x04\0\x02\x02\x03\x12\x03\x0b\x13\x14\n\x0b\n\x04\x04\0\x02\ + \x03\x12\x03\x0c\x04\x13\n\r\n\x05\x04\0\x02\x03\x04\x12\x04\x0c\x04\x0b\ + \x15\n\x0c\n\x05\x04\0\x02\x03\x05\x12\x03\x0c\x04\t\n\x0c\n\x05\x04\0\ + \x02\x03\x01\x12\x03\x0c\n\x0e\n\x0c\n\x05\x04\0\x02\x03\x03\x12\x03\x0c\ + \x11\x12\n\x0b\n\x04\x04\0\x02\x04\x12\x03\r\x04\x16\n\r\n\x05\x04\0\x02\ + \x04\x04\x12\x04\r\x04\x0c\x13\n\x0c\n\x05\x04\0\x02\x04\x05\x12\x03\r\ + \x04\x08\n\x0c\n\x05\x04\0\x02\x04\x01\x12\x03\r\t\x11\n\x0c\n\x05\x04\0\ + \x02\x04\x03\x12\x03\r\x14\x15\n\x0b\n\x04\x04\0\x02\x05\x12\x03\x0e\x04\ + \x17\n\r\n\x05\x04\0\x02\x05\x04\x12\x04\x0e\x04\r\x16\n\x0c\n\x05\x04\0\ + \x02\x05\x05\x12\x03\x0e\x04\n\n\x0c\n\x05\x04\0\x02\x05\x01\x12\x03\x0e\ + \x0b\x12\n\x0c\n\x05\x04\0\x02\x05\x03\x12\x03\x0e\x15\x16\n\n\n\x02\x04\ + \x01\x12\x04\x11\0\x15\x01\n\n\n\x03\x04\x01\x01\x12\x03\x11\x08\x18\n\ + \x0b\n\x04\x04\x01\x02\0\x12\x03\x12\x04\x1d\n\r\n\x05\x04\x01\x02\0\x04\ + \x12\x04\x12\x04\x11\x1a\n\x0c\n\x05\x04\x01\x02\0\x06\x12\x03\x12\x04\r\ + \n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03\x12\x0e\x18\n\x0c\n\x05\x04\x01\ + \x02\0\x03\x12\x03\x12\x1b\x1c\n\x0b\n\x04\x04\x01\x02\x01\x12\x03\x13\ + \x04\x15\n\r\n\x05\x04\x01\x02\x01\x04\x12\x04\x13\x04\x12\x1d\n\x0c\n\ + \x05\x04\x01\x02\x01\x05\x12\x03\x13\x04\n\n\x0c\n\x05\x04\x01\x02\x01\ + \x01\x12\x03\x13\x0b\x10\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03\x13\x13\ + \x14\n\x0b\n\x04\x04\x01\x02\x02\x12\x03\x14\x04\x14\n\r\n\x05\x04\x01\ + \x02\x02\x04\x12\x04\x14\x04\x13\x15\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\ + \x03\x14\x04\n\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03\x14\x0b\x0f\n\x0c\ + \n\x05\x04\x01\x02\x02\x03\x12\x03\x14\x12\x13\n\n\n\x02\x04\x02\x12\x04\ + \x17\0\x1a\x01\n\n\n\x03\x04\x02\x01\x12\x03\x17\x08\x10\n\x0b\n\x04\x04\ + \x02\x02\0\x12\x03\x18\x04\x13\n\r\n\x05\x04\x02\x02\0\x04\x12\x04\x18\ + \x04\x17\x12\n\x0c\n\x05\x04\x02\x02\0\x05\x12\x03\x18\x04\t\n\x0c\n\x05\ + \x04\x02\x02\0\x01\x12\x03\x18\n\x0e\n\x0c\n\x05\x04\x02\x02\0\x03\x12\ + \x03\x18\x11\x12\n\x0b\n\x04\x04\x02\x02\x01\x12\x03\x19\x04\"\n\r\n\x05\ + \x04\x02\x02\x01\x04\x12\x04\x19\x04\x18\x13\n\x0c\n\x05\x04\x02\x02\x01\ + \x06\x12\x03\x19\x04\x14\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03\x19\x15\ + \x1d\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03\x19\x20!\n\n\n\x02\x05\x01\ + \x12\x04\x1c\00\x01\n\n\n\x03\x05\x01\x01\x12\x03\x1c\x05\x10\n\x0b\n\ + \x04\x05\x01\x02\0\x12\x03\x1d\x04\x0f\n\x0c\n\x05\x05\x01\x02\0\x01\x12\ + \x03\x1d\x04\n\n\x0c\n\x05\x05\x01\x02\0\x02\x12\x03\x1d\r\x0e\n\x0b\n\ + \x04\x05\x01\x02\x01\x12\x03\x1e\x04\x10\n\x0c\n\x05\x05\x01\x02\x01\x01\ + \x12\x03\x1e\x04\x0b\n\x0c\n\x05\x05\x01\x02\x01\x02\x12\x03\x1e\x0e\x0f\ + \n\x0b\n\x04\x05\x01\x02\x02\x12\x03\x1f\x04\x13\n\x0c\n\x05\x05\x01\x02\ + \x02\x01\x12\x03\x1f\x04\x0e\n\x0c\n\x05\x05\x01\x02\x02\x02\x12\x03\x1f\ + \x11\x12\n\x0b\n\x04\x05\x01\x02\x03\x12\x03\x20\x04\x12\n\x0c\n\x05\x05\ + \x01\x02\x03\x01\x12\x03\x20\x04\r\n\x0c\n\x05\x05\x01\x02\x03\x02\x12\ + \x03\x20\x10\x11\n\x0b\n\x04\x05\x01\x02\x04\x12\x03!\x04\x1a\n\x0c\n\ + \x05\x05\x01\x02\x04\x01\x12\x03!\x04\x15\n\x0c\n\x05\x05\x01\x02\x04\ + \x02\x12\x03!\x18\x19\n\x0b\n\x04\x05\x01\x02\x05\x12\x03\"\x04\x17\n\ + \x0c\n\x05\x05\x01\x02\x05\x01\x12\x03\"\x04\x12\n\x0c\n\x05\x05\x01\x02\ + \x05\x02\x12\x03\"\x15\x16\n\x0b\n\x04\x05\x01\x02\x06\x12\x03#\x04\x1f\ + \n\x0c\n\x05\x05\x01\x02\x06\x01\x12\x03#\x04\x1a\n\x0c\n\x05\x05\x01\ + \x02\x06\x02\x12\x03#\x1d\x1e\n\x0b\n\x04\x05\x01\x02\x07\x12\x03$\x04\ + \x14\n\x0c\n\x05\x05\x01\x02\x07\x01\x12\x03$\x04\x0f\n\x0c\n\x05\x05\ + \x01\x02\x07\x02\x12\x03$\x12\x13\n\x0b\n\x04\x05\x01\x02\x08\x12\x03%\ + \x04\x15\n\x0c\n\x05\x05\x01\x02\x08\x01\x12\x03%\x04\x10\n\x0c\n\x05\ + \x05\x01\x02\x08\x02\x12\x03%\x13\x14\n\x0b\n\x04\x05\x01\x02\t\x12\x03&\ + \x04\x1d\n\x0c\n\x05\x05\x01\x02\t\x01\x12\x03&\x04\x18\n\x0c\n\x05\x05\ + \x01\x02\t\x02\x12\x03&\x1b\x1c\n\x0b\n\x04\x05\x01\x02\n\x12\x03'\x04\ + \x18\n\x0c\n\x05\x05\x01\x02\n\x01\x12\x03'\x04\x12\n\x0c\n\x05\x05\x01\ + \x02\n\x02\x12\x03'\x15\x17\n\x0b\n\x04\x05\x01\x02\x0b\x12\x03(\x04\x17\ + \n\x0c\n\x05\x05\x01\x02\x0b\x01\x12\x03(\x04\x11\n\x0c\n\x05\x05\x01\ + \x02\x0b\x02\x12\x03(\x14\x16\n\x0b\n\x04\x05\x01\x02\x0c\x12\x03)\x04\ + \x18\n\x0c\n\x05\x05\x01\x02\x0c\x01\x12\x03)\x04\x12\n\x0c\n\x05\x05\ + \x01\x02\x0c\x02\x12\x03)\x15\x17\n\x0b\n\x04\x05\x01\x02\r\x12\x03*\x04\ + \x1b\n\x0c\n\x05\x05\x01\x02\r\x01\x12\x03*\x04\x15\n\x0c\n\x05\x05\x01\ + \x02\r\x02\x12\x03*\x18\x1a\n\x0b\n\x04\x05\x01\x02\x0e\x12\x03+\x04\x17\ + \n\x0c\n\x05\x05\x01\x02\x0e\x01\x12\x03+\x04\x11\n\x0c\n\x05\x05\x01\ + \x02\x0e\x02\x12\x03+\x14\x16\n\x0b\n\x04\x05\x01\x02\x0f\x12\x03,\x04\ + \x16\n\x0c\n\x05\x05\x01\x02\x0f\x01\x12\x03,\x04\x10\n\x0c\n\x05\x05\ + \x01\x02\x0f\x02\x12\x03,\x13\x15\n\x0b\n\x04\x05\x01\x02\x10\x12\x03-\ + \x04\x1a\n\x0c\n\x05\x05\x01\x02\x10\x01\x12\x03-\x04\x14\n\x0c\n\x05\ + \x05\x01\x02\x10\x02\x12\x03-\x17\x19\n\x0b\n\x04\x05\x01\x02\x11\x12\ + \x03.\x04\x1b\n\x0c\n\x05\x05\x01\x02\x11\x01\x12\x03.\x04\x15\n\x0c\n\ + \x05\x05\x01\x02\x11\x02\x12\x03.\x18\x1a\n\x0b\n\x04\x05\x01\x02\x12\ + \x12\x03/\x04#\n\x0c\n\x05\x05\x01\x02\x12\x01\x12\x03/\x04\x1d\n\x0c\n\ + \x05\x05\x01\x02\x12\x02\x12\x03/\x20\"\n\n\n\x02\x04\x03\x12\x042\0?\ + \x01\n\n\n\x03\x04\x03\x01\x12\x032\x08\x0f\n\x0b\n\x04\x04\x03\x02\0\ + \x12\x033\x04\x1d\n\r\n\x05\x04\x03\x02\0\x04\x12\x043\x042\x11\n\x0c\n\ + \x05\x04\x03\x02\0\x06\x12\x033\x04\x0f\n\x0c\n\x05\x04\x03\x02\0\x01\ + \x12\x033\x10\x18\n\x0c\n\x05\x04\x03\x02\0\x03\x12\x033\x1b\x1c\n\x0b\n\ + \x04\x04\x03\x02\x01\x12\x034\x04\x12\n\r\n\x05\x04\x03\x02\x01\x04\x12\ + \x044\x043\x1d\n\x0c\n\x05\x04\x03\x02\x01\x05\x12\x034\x04\n\n\x0c\n\ + \x05\x04\x03\x02\x01\x01\x12\x034\x0b\r\n\x0c\n\x05\x04\x03\x02\x01\x03\ + \x12\x034\x10\x11\n\x0b\n\x04\x04\x03\x02\x02\x12\x035\x04\x14\n\r\n\x05\ + \x04\x03\x02\x02\x04\x12\x045\x044\x12\n\x0c\n\x05\x04\x03\x02\x02\x05\ + \x12\x035\x04\n\n\x0c\n\x05\x04\x03\x02\x02\x01\x12\x035\x0b\x0f\n\x0c\n\ + \x05\x04\x03\x02\x02\x03\x12\x035\x12\x13\n\x0b\n\x04\x04\x03\x02\x03\ + \x12\x036\x04\x14\n\r\n\x05\x04\x03\x02\x03\x04\x12\x046\x045\x14\n\x0c\ + \n\x05\x04\x03\x02\x03\x05\x12\x036\x04\n\n\x0c\n\x05\x04\x03\x02\x03\ + \x01\x12\x036\x0b\x0f\n\x0c\n\x05\x04\x03\x02\x03\x03\x12\x036\x12\x13\n\ + \x0b\n\x04\x04\x03\x02\x04\x12\x037\x04\x18\n\r\n\x05\x04\x03\x02\x04\ + \x04\x12\x047\x046\x14\n\x0c\n\x05\x04\x03\x02\x04\x05\x12\x037\x04\n\n\ + \x0c\n\x05\x04\x03\x02\x04\x01\x12\x037\x0b\x13\n\x0c\n\x05\x04\x03\x02\ + \x04\x03\x12\x037\x16\x17\n\x0b\n\x04\x04\x03\x02\x05\x12\x038\x04\x15\n\ + \r\n\x05\x04\x03\x02\x05\x04\x12\x048\x047\x18\n\x0c\n\x05\x04\x03\x02\ + \x05\x05\x12\x038\x04\n\n\x0c\n\x05\x04\x03\x02\x05\x01\x12\x038\x0b\x10\ + \n\x0c\n\x05\x04\x03\x02\x05\x03\x12\x038\x13\x14\n\x0b\n\x04\x04\x03\ + \x02\x06\x12\x039\x04\x1f\n\x0c\n\x05\x04\x03\x02\x06\x04\x12\x039\x04\ + \x0c\n\x0c\n\x05\x04\x03\x02\x06\x06\x12\x039\r\x12\n\x0c\n\x05\x04\x03\ + \x02\x06\x01\x12\x039\x13\x1a\n\x0c\n\x05\x04\x03\x02\x06\x03\x12\x039\ + \x1d\x1e\n\x0b\n\x04\x04\x03\x02\x07\x12\x03:\x04\x16\n\r\n\x05\x04\x03\ + \x02\x07\x04\x12\x04:\x049\x1f\n\x0c\n\x05\x04\x03\x02\x07\x05\x12\x03:\ + \x04\n\n\x0c\n\x05\x04\x03\x02\x07\x01\x12\x03:\x0b\x11\n\x0c\n\x05\x04\ + \x03\x02\x07\x03\x12\x03:\x14\x15\n\x0b\n\x04\x04\x03\x02\x08\x12\x03;\ + \x04\x1a\n\r\n\x05\x04\x03\x02\x08\x04\x12\x04;\x04:\x16\n\x0c\n\x05\x04\ + \x03\x02\x08\x06\x12\x03;\x04\x0c\n\x0c\n\x05\x04\x03\x02\x08\x01\x12\ + \x03;\r\x15\n\x0c\n\x05\x04\x03\x02\x08\x03\x12\x03;\x18\x19\n\x0b\n\x04\ + \x04\x03\x02\t\x12\x03<\x04\x15\n\r\n\x05\x04\x03\x02\t\x04\x12\x04<\x04\ + ;\x1a\n\x0c\n\x05\x04\x03\x02\t\x05\x12\x03<\x04\x08\n\x0c\n\x05\x04\x03\ + \x02\t\x01\x12\x03<\t\x0f\n\x0c\n\x05\x04\x03\x02\t\x03\x12\x03<\x12\x14\ + \n\x0b\n\x04\x04\x03\x02\n\x12\x03=\x04\x1c\n\r\n\x05\x04\x03\x02\n\x04\ + \x12\x04=\x04<\x15\n\x0c\n\x05\x04\x03\x02\n\x05\x12\x03=\x04\n\n\x0c\n\ + \x05\x04\x03\x02\n\x01\x12\x03=\x0b\x16\n\x0c\n\x05\x04\x03\x02\n\x03\ + \x12\x03=\x19\x1b\n\x0b\n\x04\x04\x03\x02\x0b\x12\x03>\x04\x17\n\r\n\x05\ + \x04\x03\x02\x0b\x04\x12\x04>\x04=\x1c\n\x0c\n\x05\x04\x03\x02\x0b\x05\ + \x12\x03>\x04\t\n\x0c\n\x05\x04\x03\x02\x0b\x01\x12\x03>\n\x11\n\x0c\n\ + \x05\x04\x03\x02\x0b\x03\x12\x03>\x14\x16\n\n\n\x02\x04\x04\x12\x04A\0E\ + \x01\n\n\n\x03\x04\x04\x01\x12\x03A\x08\x11\n\x0b\n\x04\x04\x04\x02\0\ + \x12\x03B\x04\x14\n\r\n\x05\x04\x04\x02\0\x04\x12\x04B\x04A\x13\n\x0c\n\ + \x05\x04\x04\x02\0\x05\x12\x03B\x04\n\n\x0c\n\x05\x04\x04\x02\0\x01\x12\ + \x03B\x0b\x0f\n\x0c\n\x05\x04\x04\x02\0\x03\x12\x03B\x12\x13\n\x0b\n\x04\ + \x04\x04\x02\x01\x12\x03C\x04\x14\n\r\n\x05\x04\x04\x02\x01\x04\x12\x04C\ + \x04B\x14\n\x0c\n\x05\x04\x04\x02\x01\x05\x12\x03C\x04\n\n\x0c\n\x05\x04\ + \x04\x02\x01\x01\x12\x03C\x0b\x0f\n\x0c\n\x05\x04\x04\x02\x01\x03\x12\ + \x03C\x12\x13\n\x0b\n\x04\x04\x04\x02\x02\x12\x03D\x04\x16\n\r\n\x05\x04\ + \x04\x02\x02\x04\x12\x04D\x04C\x14\n\x0c\n\x05\x04\x04\x02\x02\x05\x12\ + \x03D\x04\n\n\x0c\n\x05\x04\x04\x02\x02\x01\x12\x03D\x0b\x11\n\x0c\n\x05\ + \x04\x04\x02\x02\x03\x12\x03D\x14\x15\n\n\n\x02\x04\x05\x12\x04G\0J\x01\ + \n\n\n\x03\x04\x05\x01\x12\x03G\x08\x11\n\x0b\n\x04\x04\x05\x02\0\x12\ + \x03H\x04\x1e\n\x0c\n\x05\x04\x05\x02\0\x04\x12\x03H\x04\x0c\n\x0c\n\x05\ + \x04\x05\x02\0\x05\x12\x03H\r\x13\n\x0c\n\x05\x04\x05\x02\0\x01\x12\x03H\ + \x14\x19\n\x0c\n\x05\x04\x05\x02\0\x03\x12\x03H\x1c\x1d\n\x0b\n\x04\x04\ + \x05\x02\x01\x12\x03I\x04!\n\x0c\n\x05\x04\x05\x02\x01\x04\x12\x03I\x04\ + \x0c\n\x0c\n\x05\x04\x05\x02\x01\x05\x12\x03I\r\x13\n\x0c\n\x05\x04\x05\ + \x02\x01\x01\x12\x03I\x14\x1c\n\x0c\n\x05\x04\x05\x02\x01\x03\x12\x03I\ + \x1f\x20\n\n\n\x02\x05\x02\x12\x04L\0P\x01\n\n\n\x03\x05\x02\x01\x12\x03\ + L\x05\x13\n\x0b\n\x04\x05\x02\x02\0\x12\x03M\x04\x13\n\x0c\n\x05\x05\x02\ + \x02\0\x01\x12\x03M\x04\x0b\n\x0c\n\x05\x05\x02\x02\0\x02\x12\x03M\x11\ + \x12\n\x0b\n\x04\x05\x02\x02\x01\x12\x03N\x04\x13\n\x0c\n\x05\x05\x02\ + \x02\x01\x01\x12\x03N\x04\x0e\n\x0c\n\x05\x05\x02\x02\x01\x02\x12\x03N\ + \x11\x12\n\x0b\n\x04\x05\x02\x02\x02\x12\x03O\x04\x17\n\x0c\n\x05\x05\ + \x02\x02\x02\x01\x12\x03O\x04\x12\n\x0c\n\x05\x05\x02\x02\x02\x02\x12\ + \x03O\x15\x16\n\n\n\x02\x04\x06\x12\x04R\0W\x01\n\n\n\x03\x04\x06\x01\ + \x12\x03R\x08\x12\n\x0b\n\x04\x04\x06\x02\0\x12\x03S\x04\x12\n\r\n\x05\ + \x04\x06\x02\0\x04\x12\x04S\x04R\x14\n\x0c\n\x05\x04\x06\x02\0\x05\x12\ + \x03S\x04\n\n\x0c\n\x05\x04\x06\x02\0\x01\x12\x03S\x0b\r\n\x0c\n\x05\x04\ + \x06\x02\0\x03\x12\x03S\x10\x11\n\x0b\n\x04\x04\x06\x02\x01\x12\x03T\x04\ + #\n\r\n\x05\x04\x06\x02\x01\x04\x12\x04T\x04S\x12\n\x0c\n\x05\x04\x06\ + \x02\x01\x06\x12\x03T\x04\x12\n\x0c\n\x05\x04\x06\x02\x01\x01\x12\x03T\ + \x13\x1e\n\x0c\n\x05\x04\x06\x02\x01\x03\x12\x03T!\"\n\x0b\n\x04\x04\x06\ + \x02\x02\x12\x03U\x04\x17\n\r\n\x05\x04\x06\x02\x02\x04\x12\x04U\x04T#\n\ + \x0c\n\x05\x04\x06\x02\x02\x05\x12\x03U\x04\n\n\x0c\n\x05\x04\x06\x02\ + \x02\x01\x12\x03U\x0b\x12\n\x0c\n\x05\x04\x06\x02\x02\x03\x12\x03U\x15\ + \x16\n\x0b\n\x04\x04\x06\x02\x03\x12\x03V\x04\x16\n\r\n\x05\x04\x06\x02\ + \x03\x04\x12\x04V\x04U\x17\n\x0c\n\x05\x04\x06\x02\x03\x05\x12\x03V\x04\ + \t\n\x0c\n\x05\x04\x06\x02\x03\x01\x12\x03V\n\x11\n\x0c\n\x05\x04\x06\ + \x02\x03\x03\x12\x03V\x14\x15b\x06proto3\ "; static mut file_descriptor_proto_lazy: ::protobuf::lazy::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::lazy::Lazy { diff --git a/src/raw_node.rs b/src/raw_node.rs index 4a8275041..31240634b 100644 --- a/src/raw_node.rs +++ b/src/raw_node.rs @@ -257,6 +257,11 @@ impl RawNode { // Propose proposes data be appended to the raft log. pub fn propose(&mut self, data: Vec, sync_log: bool) -> Result<()> { + self.propose_with_context(data, sync_log, 0) + } + + // Propose proposes data be appended to the raft log with context. + pub fn propose_with_context(&mut self, data: Vec, sync_log: bool, context: u64) -> Result<()> { let mut m = Message::new(); m.set_msg_type(MessageType::MsgPropose); m.set_from(self.raft.id); @@ -265,6 +270,7 @@ impl RawNode { if sync_log { e.set_sync_log(true); } + e.set_context(context); m.set_entries(RepeatedField::from_vec(vec![e])); self.raft.step(m) } @@ -272,6 +278,12 @@ impl RawNode { // ProposeConfChange proposes a config change. #[allow(needless_pass_by_value)] pub fn propose_conf_change(&mut self, cc: ConfChange) -> Result<()> { + self.propose_conf_change_with_context(cc, 0) + } + + // ProposeConfChange proposes a config change with context. + #[allow(needless_pass_by_value)] + pub fn propose_conf_change_with_context(&mut self, cc: ConfChange, context: u64) -> Result<()> { let data = protobuf::Message::write_to_bytes(&cc)?; let mut m = Message::new(); m.set_msg_type(MessageType::MsgPropose); @@ -279,6 +291,7 @@ impl RawNode { e.set_entry_type(EntryType::EntryConfChange); e.set_data(data); e.set_sync_log(true); + e.set_context(context); m.set_entries(RepeatedField::from_vec(vec![e])); self.raft.step(m) }