raft: disable XXX_NoUnkeyedLiteral, XXX_unrecognized, and XXX_sizecache fields in protos

This commit removes the `XXX_NoUnkeyedLiteral`, `XXX_unrecognized`, and
`XXX_sizecache` auto-generated fields from generated protobuf structs in
the raft package. This was done for all of the same reasons CockroachDB
removed the generation of these fields in https://github.com/cockroachdb/cockroach/pull/38404.
They come with very limited advantages but moderate disadvantages.

`XXX_NoUnkeyedLiteral` and `XXX_sizecache` were only enabled recently in
cc7b4fa, and this appears to have been unintentional. Meanwhile,
`XXX_unrecognized` has been around for longer and has arguably more
reason to stay because it can assist with forwards compatibility.
However, any real mixed-version upgrade story for this package is mostly
untold at this point, and keeping this field seems just as likely to
cause unexpected bugs (e.g. a field was propagated but not updated
correctly when passed through an old version) as it seems to fix real
issues, so it also doesn't warrant its cost.

This reduces the in-memory representation size of all Raft protos.
Notably, it reduces the memory size of an `Entry` proto from *80 bytes*
to *48 bytes* and the memory size of a `Message` proto from *392 bytes*
to *264 bytes*. Both of these structs are used frequently, and often in
slices, where this wasted space really starts to add up.

This was motivated by a regression in microbenchmarks in CockroachDB due
to cc7b4fa, which was caught in https://github.com/cockroachdb/cockroach/issues/62212.
release-3.5
Nathan VanBenschoten 2021-03-20 02:33:40 -04:00
parent ebc01743df
commit e51c697ec6
5 changed files with 107 additions and 203 deletions

View File

@ -35,7 +35,6 @@ func (cs ConfState) Equivalent(cs2 ConfState) error {
s(&cs.Learners)
s(&cs.VotersOutgoing)
s(&cs.LearnersNext)
cs.XXX_unrecognized = nil
}
if !reflect.DeepEqual(cs1, cs2) {

View File

@ -264,13 +264,10 @@ func (ConfChangeType) EnumDescriptor() ([]byte, []int) {
}
type Entry struct {
Term uint64 `protobuf:"varint,2,opt,name=Term" json:"Term"`
Index uint64 `protobuf:"varint,3,opt,name=Index" json:"Index"`
Type EntryType `protobuf:"varint,1,opt,name=Type,enum=raftpb.EntryType" json:"Type"`
Data []byte `protobuf:"bytes,4,opt,name=Data" json:"Data,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
Term uint64 `protobuf:"varint,2,opt,name=Term" json:"Term"`
Index uint64 `protobuf:"varint,3,opt,name=Index" json:"Index"`
Type EntryType `protobuf:"varint,1,opt,name=Type,enum=raftpb.EntryType" json:"Type"`
Data []byte `protobuf:"bytes,4,opt,name=Data" json:"Data,omitempty"`
}
func (m *Entry) Reset() { *m = Entry{} }
@ -307,12 +304,9 @@ func (m *Entry) XXX_DiscardUnknown() {
var xxx_messageInfo_Entry proto.InternalMessageInfo
type SnapshotMetadata struct {
ConfState ConfState `protobuf:"bytes,1,opt,name=conf_state,json=confState" json:"conf_state"`
Index uint64 `protobuf:"varint,2,opt,name=index" json:"index"`
Term uint64 `protobuf:"varint,3,opt,name=term" json:"term"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
ConfState ConfState `protobuf:"bytes,1,opt,name=conf_state,json=confState" json:"conf_state"`
Index uint64 `protobuf:"varint,2,opt,name=index" json:"index"`
Term uint64 `protobuf:"varint,3,opt,name=term" json:"term"`
}
func (m *SnapshotMetadata) Reset() { *m = SnapshotMetadata{} }
@ -349,11 +343,8 @@ func (m *SnapshotMetadata) XXX_DiscardUnknown() {
var xxx_messageInfo_SnapshotMetadata proto.InternalMessageInfo
type Snapshot struct {
Data []byte `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"`
Metadata SnapshotMetadata `protobuf:"bytes,2,opt,name=metadata" json:"metadata"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
Data []byte `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"`
Metadata SnapshotMetadata `protobuf:"bytes,2,opt,name=metadata" json:"metadata"`
}
func (m *Snapshot) Reset() { *m = Snapshot{} }
@ -399,17 +390,14 @@ type Message struct {
// index=101, and the term of entry at index 100 is 5.
// (type=MsgAppResp,reject=true,index=100,logTerm=5) means follower rejects some
// entries from its leader as it already has an entry with term 5 at index 100.
LogTerm uint64 `protobuf:"varint,5,opt,name=logTerm" json:"logTerm"`
Index uint64 `protobuf:"varint,6,opt,name=index" json:"index"`
Entries []Entry `protobuf:"bytes,7,rep,name=entries" json:"entries"`
Commit uint64 `protobuf:"varint,8,opt,name=commit" json:"commit"`
Snapshot Snapshot `protobuf:"bytes,9,opt,name=snapshot" json:"snapshot"`
Reject bool `protobuf:"varint,10,opt,name=reject" json:"reject"`
RejectHint uint64 `protobuf:"varint,11,opt,name=rejectHint" json:"rejectHint"`
Context []byte `protobuf:"bytes,12,opt,name=context" json:"context,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
LogTerm uint64 `protobuf:"varint,5,opt,name=logTerm" json:"logTerm"`
Index uint64 `protobuf:"varint,6,opt,name=index" json:"index"`
Entries []Entry `protobuf:"bytes,7,rep,name=entries" json:"entries"`
Commit uint64 `protobuf:"varint,8,opt,name=commit" json:"commit"`
Snapshot Snapshot `protobuf:"bytes,9,opt,name=snapshot" json:"snapshot"`
Reject bool `protobuf:"varint,10,opt,name=reject" json:"reject"`
RejectHint uint64 `protobuf:"varint,11,opt,name=rejectHint" json:"rejectHint"`
Context []byte `protobuf:"bytes,12,opt,name=context" json:"context,omitempty"`
}
func (m *Message) Reset() { *m = Message{} }
@ -446,12 +434,9 @@ func (m *Message) XXX_DiscardUnknown() {
var xxx_messageInfo_Message proto.InternalMessageInfo
type HardState struct {
Term uint64 `protobuf:"varint,1,opt,name=term" json:"term"`
Vote uint64 `protobuf:"varint,2,opt,name=vote" json:"vote"`
Commit uint64 `protobuf:"varint,3,opt,name=commit" json:"commit"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
Term uint64 `protobuf:"varint,1,opt,name=term" json:"term"`
Vote uint64 `protobuf:"varint,2,opt,name=vote" json:"vote"`
Commit uint64 `protobuf:"varint,3,opt,name=commit" json:"commit"`
}
func (m *HardState) Reset() { *m = HardState{} }
@ -501,10 +486,7 @@ type ConfState struct {
LearnersNext []uint64 `protobuf:"varint,4,rep,name=learners_next,json=learnersNext" json:"learners_next,omitempty"`
// If set, the config is joint and Raft will automatically transition into
// the final config (i.e. remove the outgoing config) when this is safe.
AutoLeave bool `protobuf:"varint,5,opt,name=auto_leave,json=autoLeave" json:"auto_leave"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
AutoLeave bool `protobuf:"varint,5,opt,name=auto_leave,json=autoLeave" json:"auto_leave"`
}
func (m *ConfState) Reset() { *m = ConfState{} }
@ -547,10 +529,7 @@ type ConfChange struct {
// NB: this is used only by etcd to thread through a unique identifier.
// Ideally it should really use the Context instead. No counterpart to
// this field exists in ConfChangeV2.
ID uint64 `protobuf:"varint,1,opt,name=id" json:"id"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
ID uint64 `protobuf:"varint,1,opt,name=id" json:"id"`
}
func (m *ConfChange) Reset() { *m = ConfChange{} }
@ -589,11 +568,8 @@ var xxx_messageInfo_ConfChange proto.InternalMessageInfo
// ConfChangeSingle is an individual configuration change operation. Multiple
// such operations can be carried out atomically via a ConfChangeV2.
type ConfChangeSingle struct {
Type ConfChangeType `protobuf:"varint,1,opt,name=type,enum=raftpb.ConfChangeType" json:"type"`
NodeID uint64 `protobuf:"varint,2,opt,name=node_id,json=nodeId" json:"node_id"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
Type ConfChangeType `protobuf:"varint,1,opt,name=type,enum=raftpb.ConfChangeType" json:"type"`
NodeID uint64 `protobuf:"varint,2,opt,name=node_id,json=nodeId" json:"node_id"`
}
func (m *ConfChangeSingle) Reset() { *m = ConfChangeSingle{} }
@ -662,12 +638,9 @@ var xxx_messageInfo_ConfChangeSingle proto.InternalMessageInfo
//
// [1]: https://github.com/ongardie/dissertation/blob/master/online-trim.pdf
type ConfChangeV2 struct {
Transition ConfChangeTransition `protobuf:"varint,1,opt,name=transition,enum=raftpb.ConfChangeTransition" json:"transition"`
Changes []ConfChangeSingle `protobuf:"bytes,2,rep,name=changes" json:"changes"`
Context []byte `protobuf:"bytes,3,opt,name=context" json:"context,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
Transition ConfChangeTransition `protobuf:"varint,1,opt,name=transition,enum=raftpb.ConfChangeTransition" json:"transition"`
Changes []ConfChangeSingle `protobuf:"bytes,2,rep,name=changes" json:"changes"`
Context []byte `protobuf:"bytes,3,opt,name=context" json:"context,omitempty"`
}
func (m *ConfChangeV2) Reset() { *m = ConfChangeV2{} }
@ -722,71 +695,72 @@ func init() {
func init() { proto.RegisterFile("raft.proto", fileDescriptor_b042552c306ae59b) }
var fileDescriptor_b042552c306ae59b = []byte{
// 1011 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0xcd, 0x6e, 0xe3, 0x36,
0x17, 0xb5, 0x64, 0xc5, 0x3f, 0xd7, 0x8e, 0xc3, 0xdc, 0xc9, 0x37, 0x20, 0x82, 0xc0, 0xe3, 0xcf,
0xd3, 0x62, 0x8c, 0x14, 0x93, 0x16, 0x5e, 0x14, 0x45, 0x77, 0xf9, 0x19, 0x20, 0x29, 0xe2, 0x74,
0xea, 0x64, 0xb2, 0x28, 0x50, 0x04, 0x8c, 0x45, 0x2b, 0x6a, 0x2d, 0x51, 0xa0, 0xe8, 0x34, 0xd9,
0x14, 0x45, 0x9f, 0xa2, 0x9b, 0xd9, 0xf6, 0x01, 0xfa, 0x14, 0x59, 0x0e, 0xd0, 0xfd, 0xa0, 0x93,
0xbe, 0x48, 0x41, 0x8a, 0xb2, 0x65, 0x27, 0x98, 0x45, 0x77, 0xe4, 0xb9, 0x87, 0x97, 0xe7, 0xdc,
0x7b, 0x45, 0x01, 0x48, 0x36, 0x56, 0x3b, 0x89, 0x14, 0x4a, 0x60, 0x45, 0xaf, 0x93, 0xcb, 0xcd,
0x8d, 0x40, 0x04, 0xc2, 0x40, 0x9f, 0xeb, 0x55, 0x16, 0xed, 0xfe, 0x02, 0x2b, 0xaf, 0x62, 0x25,
0x6f, 0x91, 0x82, 0x77, 0xc6, 0x65, 0x44, 0xdd, 0x8e, 0xd3, 0xf3, 0xf6, 0xbc, 0xbb, 0xf7, 0xcf,
0x4a, 0x43, 0x83, 0xe0, 0x26, 0xac, 0x1c, 0xc5, 0x3e, 0xbf, 0xa1, 0xe5, 0x42, 0x28, 0x83, 0xf0,
0x33, 0xf0, 0xce, 0x6e, 0x13, 0x4e, 0x9d, 0x8e, 0xd3, 0x6b, 0xf5, 0xd7, 0x77, 0xb2, 0xbb, 0x76,
0x4c, 0x4a, 0x1d, 0x98, 0x25, 0xba, 0x4d, 0x38, 0x22, 0x78, 0x07, 0x4c, 0x31, 0xea, 0x75, 0x9c,
0x5e, 0x73, 0x68, 0xd6, 0xdd, 0x5f, 0x1d, 0x20, 0xa7, 0x31, 0x4b, 0xd2, 0x2b, 0xa1, 0x06, 0x5c,
0x31, 0x9f, 0x29, 0x86, 0x5f, 0x02, 0x8c, 0x44, 0x3c, 0xbe, 0x48, 0x15, 0x53, 0x59, 0xee, 0xc6,
0x3c, 0xf7, 0xbe, 0x88, 0xc7, 0xa7, 0x3a, 0x60, 0x73, 0xd7, 0x47, 0x39, 0xa0, 0x95, 0x86, 0x46,
0x69, 0xd1, 0x44, 0x06, 0x69, 0x7f, 0x4a, 0xfb, 0x2b, 0x9a, 0x30, 0x48, 0xf7, 0x7b, 0xa8, 0xe5,
0x0a, 0xb4, 0x44, 0xad, 0xc0, 0xdc, 0xd9, 0x1c, 0x9a, 0x35, 0x7e, 0x0d, 0xb5, 0xc8, 0x2a, 0x33,
0x89, 0x1b, 0x7d, 0x9a, 0x6b, 0x59, 0x56, 0x6e, 0xf3, 0xce, 0xf8, 0xdd, 0xb7, 0x65, 0xa8, 0x0e,
0x78, 0x9a, 0xb2, 0x80, 0xe3, 0x4b, 0xf0, 0xd4, 0xbc, 0x56, 0x4f, 0xf2, 0x1c, 0x36, 0x5c, 0xac,
0x96, 0xa6, 0xe1, 0x06, 0xb8, 0x4a, 0x2c, 0x38, 0x71, 0x95, 0xd0, 0x36, 0xc6, 0x52, 0x2c, 0xd9,
0xd0, 0xc8, 0xcc, 0xa0, 0xb7, 0x6c, 0x10, 0xdb, 0x50, 0x9d, 0x88, 0xc0, 0x74, 0x77, 0xa5, 0x10,
0xcc, 0xc1, 0x79, 0xd9, 0x2a, 0x0f, 0xcb, 0xf6, 0x12, 0xaa, 0x3c, 0x56, 0x32, 0xe4, 0x29, 0xad,
0x76, 0xca, 0xbd, 0x46, 0x7f, 0x75, 0xa1, 0xc7, 0x79, 0x2a, 0xcb, 0xc1, 0x2d, 0xa8, 0x8c, 0x44,
0x14, 0x85, 0x8a, 0xd6, 0x0a, 0xb9, 0x2c, 0x86, 0x7d, 0xa8, 0xa5, 0xb6, 0x62, 0xb4, 0x6e, 0x2a,
0x49, 0x96, 0x2b, 0x99, 0x57, 0x30, 0xe7, 0xe9, 0x8c, 0x92, 0xff, 0xc8, 0x47, 0x8a, 0x42, 0xc7,
0xe9, 0xd5, 0xf2, 0x8c, 0x19, 0x86, 0x9f, 0x00, 0x64, 0xab, 0xc3, 0x30, 0x56, 0xb4, 0x51, 0xb8,
0xb3, 0x80, 0x23, 0x85, 0xea, 0x48, 0xc4, 0x8a, 0xdf, 0x28, 0xda, 0x34, 0x8d, 0xcd, 0xb7, 0xdd,
0x1f, 0xa0, 0x7e, 0xc8, 0xa4, 0x9f, 0x8d, 0x4f, 0x5e, 0x41, 0xe7, 0x41, 0x05, 0x29, 0x78, 0xd7,
0x42, 0xf1, 0xc5, 0x8f, 0x43, 0x23, 0x05, 0xc3, 0xe5, 0x87, 0x86, 0xbb, 0x7f, 0x3a, 0x50, 0x9f,
0xcd, 0x2b, 0x3e, 0x85, 0x8a, 0x3e, 0x23, 0x53, 0xea, 0x74, 0xca, 0x3d, 0x6f, 0x68, 0x77, 0xb8,
0x09, 0xb5, 0x09, 0x67, 0x32, 0xd6, 0x11, 0xd7, 0x44, 0x66, 0x7b, 0x7c, 0x01, 0x6b, 0x19, 0xeb,
0x42, 0x4c, 0x55, 0x20, 0xc2, 0x38, 0xa0, 0x65, 0x43, 0x69, 0x65, 0xf0, 0xb7, 0x16, 0xc5, 0xe7,
0xb0, 0x9a, 0x1f, 0xba, 0x88, 0xb5, 0x53, 0xcf, 0xd0, 0x9a, 0x39, 0x78, 0xc2, 0x6f, 0x14, 0x3e,
0x07, 0x60, 0x53, 0x25, 0x2e, 0x26, 0x9c, 0x5d, 0x73, 0x33, 0x0c, 0x79, 0x41, 0xeb, 0x1a, 0x3f,
0xd6, 0x70, 0xf7, 0xad, 0x03, 0xa0, 0x45, 0xef, 0x5f, 0xb1, 0x38, 0xe0, 0xf8, 0x85, 0x1d, 0x5b,
0xd7, 0x8c, 0xed, 0xd3, 0xe2, 0x67, 0x98, 0x31, 0x1e, 0x4c, 0xee, 0x0b, 0xa8, 0xc6, 0xc2, 0xe7,
0x17, 0xa1, 0x6f, 0x8b, 0xd2, 0xd2, 0xc1, 0xfb, 0xf7, 0xcf, 0x2a, 0x27, 0xc2, 0xe7, 0x47, 0x07,
0xc3, 0x8a, 0x0e, 0x1f, 0xf9, 0xc5, 0xbe, 0x78, 0x0b, 0x7d, 0xc1, 0x4d, 0x70, 0x43, 0xdf, 0x36,
0x02, 0xec, 0x69, 0xf7, 0xe8, 0x60, 0xe8, 0x86, 0x7e, 0x37, 0x02, 0x32, 0xbf, 0xfc, 0x34, 0x8c,
0x83, 0xc9, 0x5c, 0xa4, 0xf3, 0x5f, 0x44, 0xba, 0x1f, 0x13, 0xd9, 0xfd, 0xc3, 0x81, 0xe6, 0x3c,
0xcf, 0x79, 0x1f, 0xf7, 0x00, 0x94, 0x64, 0x71, 0x1a, 0xaa, 0x50, 0xc4, 0xf6, 0xc6, 0xad, 0x47,
0x6e, 0x9c, 0x71, 0xf2, 0x89, 0x9c, 0x9f, 0xc2, 0xaf, 0xa0, 0x3a, 0x32, 0xac, 0xac, 0xe3, 0x85,
0x27, 0x65, 0xd9, 0x5a, 0xfe, 0x85, 0x59, 0x7a, 0xb1, 0x66, 0xe5, 0x85, 0x9a, 0x6d, 0x1f, 0x42,
0x7d, 0xf6, 0xee, 0xe2, 0x1a, 0x34, 0xcc, 0xe6, 0x44, 0xc8, 0x88, 0x4d, 0x48, 0x09, 0x9f, 0xc0,
0x9a, 0x01, 0xe6, 0xf9, 0x89, 0x83, 0xff, 0x83, 0xf5, 0x25, 0xf0, 0xbc, 0x4f, 0xdc, 0xed, 0xbf,
0x5c, 0x68, 0x14, 0x9e, 0x25, 0x04, 0xa8, 0x0c, 0xd2, 0xe0, 0x70, 0x9a, 0x90, 0x12, 0x36, 0xa0,
0x3a, 0x48, 0x83, 0x3d, 0xce, 0x14, 0x71, 0xec, 0xe6, 0xb5, 0x14, 0x09, 0x71, 0x2d, 0x6b, 0x37,
0x49, 0x48, 0x19, 0x5b, 0x00, 0xd9, 0x7a, 0xc8, 0xd3, 0x84, 0x78, 0x96, 0x78, 0x2e, 0x14, 0x27,
0x2b, 0x5a, 0x9b, 0xdd, 0x98, 0x68, 0xc5, 0x46, 0xf5, 0x13, 0x40, 0xaa, 0x48, 0xa0, 0xa9, 0x2f,
0xe3, 0x4c, 0xaa, 0x4b, 0x7d, 0x4b, 0x0d, 0x37, 0x80, 0x14, 0x11, 0x73, 0xa8, 0x8e, 0x08, 0xad,
0x41, 0x1a, 0xbc, 0x89, 0x25, 0x67, 0xa3, 0x2b, 0x76, 0x39, 0xe1, 0x04, 0x70, 0x1d, 0x56, 0x6d,
0x22, 0xfd, 0xc5, 0x4d, 0x53, 0xd2, 0xb0, 0xb4, 0xfd, 0x2b, 0x3e, 0xfa, 0xe9, 0xbb, 0xa9, 0x90,
0xd3, 0x88, 0x34, 0xb5, 0xed, 0x41, 0x1a, 0x98, 0x06, 0x8d, 0xb9, 0x3c, 0xe6, 0xcc, 0xe7, 0x92,
0xac, 0xda, 0xd3, 0x67, 0x61, 0xc4, 0xc5, 0x54, 0x9d, 0x88, 0x9f, 0x49, 0xcb, 0x8a, 0x19, 0x72,
0xe6, 0x9b, 0xff, 0x1d, 0x59, 0xb3, 0x62, 0x66, 0x88, 0x11, 0x43, 0xac, 0xdf, 0xd7, 0x92, 0x1b,
0x8b, 0xeb, 0xf6, 0x56, 0xbb, 0x37, 0x1c, 0xdc, 0xfe, 0xcd, 0x81, 0x8d, 0xc7, 0xc6, 0x03, 0xb7,
0x80, 0x3e, 0x86, 0xef, 0x4e, 0x95, 0x20, 0x25, 0xfc, 0x14, 0xfe, 0xff, 0x58, 0xf4, 0x1b, 0x11,
0xc6, 0xea, 0x28, 0x4a, 0x26, 0xe1, 0x28, 0xd4, 0xad, 0xf8, 0x18, 0xed, 0xd5, 0x8d, 0xa5, 0xb9,
0xdb, 0xb7, 0xd0, 0x5a, 0xfc, 0x28, 0x74, 0x31, 0xe6, 0xc8, 0xae, 0xef, 0xeb, 0xf1, 0x27, 0x25,
0xa4, 0x45, 0xb1, 0x43, 0x1e, 0x89, 0x6b, 0x6e, 0x22, 0xce, 0x62, 0xe4, 0x4d, 0xe2, 0x33, 0x95,
0x45, 0xdc, 0x45, 0x23, 0xbb, 0xbe, 0x7f, 0x9c, 0xbd, 0x3d, 0x26, 0x5a, 0xde, 0xa3, 0x77, 0x1f,
0xda, 0xa5, 0x77, 0x1f, 0xda, 0xa5, 0xbb, 0xfb, 0xb6, 0xf3, 0xee, 0xbe, 0xed, 0xfc, 0x7d, 0xdf,
0x76, 0x7e, 0xff, 0xa7, 0x5d, 0xfa, 0x37, 0x00, 0x00, 0xff, 0xff, 0xda, 0x82, 0xb6, 0x0d, 0xaf,
0x08, 0x00, 0x00,
// 1026 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0xcd, 0x6e, 0xdb, 0x46,
0x17, 0x25, 0x29, 0x5a, 0x3f, 0x57, 0xb2, 0x3c, 0xbe, 0xf1, 0x17, 0x10, 0x86, 0xc1, 0xe8, 0x53,
0x52, 0x44, 0x70, 0x11, 0xb7, 0xd0, 0xa2, 0x28, 0xba, 0xf3, 0x4f, 0x00, 0xab, 0xb0, 0xdc, 0x54,
0x76, 0xbc, 0x28, 0x50, 0x08, 0x63, 0x71, 0x44, 0xb3, 0x15, 0x39, 0x04, 0x39, 0x72, 0xed, 0x4d,
0x51, 0xf4, 0x09, 0xba, 0xec, 0x26, 0xdb, 0x3e, 0x40, 0x9f, 0xc2, 0x4b, 0x03, 0xdd, 0x74, 0x15,
0x34, 0xf6, 0x8b, 0x14, 0x33, 0x1c, 0x4a, 0x94, 0x6c, 0x64, 0xd1, 0xdd, 0xcc, 0xb9, 0x67, 0xee,
0x9c, 0x73, 0xef, 0xe5, 0x10, 0x20, 0xa1, 0x63, 0xb1, 0x13, 0x27, 0x5c, 0x70, 0x2c, 0xcb, 0x75,
0x7c, 0xbe, 0xb9, 0xe1, 0x73, 0x9f, 0x2b, 0xe8, 0x33, 0xb9, 0xca, 0xa2, 0xed, 0x9f, 0x61, 0xe5,
0x75, 0x24, 0x92, 0x6b, 0x74, 0xc0, 0x3e, 0x65, 0x49, 0xe8, 0x58, 0x2d, 0xb3, 0x63, 0xef, 0xd9,
0x37, 0xef, 0x9f, 0x19, 0x03, 0x85, 0xe0, 0x26, 0xac, 0xf4, 0x22, 0x8f, 0x5d, 0x39, 0xa5, 0x42,
0x28, 0x83, 0xf0, 0x53, 0xb0, 0x4f, 0xaf, 0x63, 0xe6, 0x98, 0x2d, 0xb3, 0xd3, 0xec, 0xae, 0xef,
0x64, 0x77, 0xed, 0xa8, 0x94, 0x32, 0x30, 0x4b, 0x74, 0x1d, 0x33, 0x44, 0xb0, 0x0f, 0xa8, 0xa0,
0x8e, 0xdd, 0x32, 0x3b, 0x8d, 0x81, 0x5a, 0xb7, 0x7f, 0x31, 0x81, 0x9c, 0x44, 0x34, 0x4e, 0x2f,
0xb8, 0xe8, 0x33, 0x41, 0x3d, 0x2a, 0x28, 0x7e, 0x01, 0x30, 0xe2, 0xd1, 0x78, 0x98, 0x0a, 0x2a,
0xb2, 0xdc, 0xf5, 0x79, 0xee, 0x7d, 0x1e, 0x8d, 0x4f, 0x64, 0x40, 0xe7, 0xae, 0x8d, 0x72, 0x40,
0x2a, 0x0d, 0x94, 0xd2, 0xa2, 0x89, 0x0c, 0x92, 0xfe, 0x84, 0xf4, 0x57, 0x34, 0xa1, 0x90, 0xf6,
0x77, 0x50, 0xcd, 0x15, 0x48, 0x89, 0x52, 0x81, 0xba, 0xb3, 0x31, 0x50, 0x6b, 0xfc, 0x0a, 0xaa,
0xa1, 0x56, 0xa6, 0x12, 0xd7, 0xbb, 0x4e, 0xae, 0x65, 0x59, 0xb9, 0xce, 0x3b, 0xe3, 0xb7, 0xdf,
0x95, 0xa0, 0xd2, 0x67, 0x69, 0x4a, 0x7d, 0x86, 0xaf, 0xc0, 0x16, 0xf3, 0x5a, 0x3d, 0xc9, 0x73,
0xe8, 0x70, 0xb1, 0x5a, 0x92, 0x86, 0x1b, 0x60, 0x09, 0xbe, 0xe0, 0xc4, 0x12, 0x5c, 0xda, 0x18,
0x27, 0x7c, 0xc9, 0x86, 0x44, 0x66, 0x06, 0xed, 0x65, 0x83, 0xe8, 0x42, 0x65, 0xc2, 0x7d, 0xd5,
0xdd, 0x95, 0x42, 0x30, 0x07, 0xe7, 0x65, 0x2b, 0x3f, 0x2c, 0xdb, 0x2b, 0xa8, 0xb0, 0x48, 0x24,
0x01, 0x4b, 0x9d, 0x4a, 0xab, 0xd4, 0xa9, 0x77, 0x57, 0x17, 0x7a, 0x9c, 0xa7, 0xd2, 0x1c, 0xdc,
0x82, 0xf2, 0x88, 0x87, 0x61, 0x20, 0x9c, 0x6a, 0x21, 0x97, 0xc6, 0xb0, 0x0b, 0xd5, 0x54, 0x57,
0xcc, 0xa9, 0xa9, 0x4a, 0x92, 0xe5, 0x4a, 0xe6, 0x15, 0xcc, 0x79, 0x32, 0x63, 0xc2, 0x7e, 0x60,
0x23, 0xe1, 0x40, 0xcb, 0xec, 0x54, 0xf3, 0x8c, 0x19, 0x86, 0x2f, 0x00, 0xb2, 0xd5, 0x61, 0x10,
0x09, 0xa7, 0x5e, 0xb8, 0xb3, 0x80, 0xa3, 0x03, 0x95, 0x11, 0x8f, 0x04, 0xbb, 0x12, 0x4e, 0x43,
0x35, 0x36, 0xdf, 0xb6, 0xbf, 0x87, 0xda, 0x21, 0x4d, 0xbc, 0x6c, 0x7c, 0xf2, 0x0a, 0x9a, 0x0f,
0x2a, 0xe8, 0x80, 0x7d, 0xc9, 0x05, 0x5b, 0xfc, 0x38, 0x24, 0x52, 0x30, 0x5c, 0x7a, 0x68, 0xb8,
0xfd, 0xa7, 0x09, 0xb5, 0xd9, 0xbc, 0xe2, 0x53, 0x28, 0xcb, 0x33, 0x49, 0xea, 0x98, 0xad, 0x52,
0xc7, 0x1e, 0xe8, 0x1d, 0x6e, 0x42, 0x75, 0xc2, 0x68, 0x12, 0xc9, 0x88, 0xa5, 0x22, 0xb3, 0x3d,
0xbe, 0x84, 0xb5, 0x8c, 0x35, 0xe4, 0x53, 0xe1, 0xf3, 0x20, 0xf2, 0x9d, 0x92, 0xa2, 0x34, 0x33,
0xf8, 0x1b, 0x8d, 0xe2, 0x73, 0x58, 0xcd, 0x0f, 0x0d, 0x23, 0xe9, 0xd4, 0x56, 0xb4, 0x46, 0x0e,
0x1e, 0xb3, 0x2b, 0x81, 0xcf, 0x01, 0xe8, 0x54, 0xf0, 0xe1, 0x84, 0xd1, 0x4b, 0xa6, 0x86, 0x21,
0x2f, 0x68, 0x4d, 0xe2, 0x47, 0x12, 0x6e, 0xbf, 0x33, 0x01, 0xa4, 0xe8, 0xfd, 0x0b, 0x1a, 0xf9,
0x0c, 0x3f, 0xd7, 0x63, 0x6b, 0xa9, 0xb1, 0x7d, 0x5a, 0xfc, 0x0c, 0x33, 0xc6, 0x83, 0xc9, 0x7d,
0x09, 0x95, 0x88, 0x7b, 0x6c, 0x18, 0x78, 0xba, 0x28, 0x4d, 0x19, 0xbc, 0x7b, 0xff, 0xac, 0x7c,
0xcc, 0x3d, 0xd6, 0x3b, 0x18, 0x94, 0x65, 0xb8, 0xe7, 0x15, 0xfb, 0x62, 0x2f, 0xf4, 0x05, 0x37,
0xc1, 0x0a, 0x3c, 0xdd, 0x08, 0xd0, 0xa7, 0xad, 0xde, 0xc1, 0xc0, 0x0a, 0xbc, 0x76, 0x08, 0x64,
0x7e, 0xf9, 0x49, 0x10, 0xf9, 0x93, 0xb9, 0x48, 0xf3, 0xbf, 0x88, 0xb4, 0x3e, 0x26, 0xb2, 0xfd,
0x87, 0x09, 0x8d, 0x79, 0x9e, 0xb3, 0x2e, 0xee, 0x01, 0x88, 0x84, 0x46, 0x69, 0x20, 0x02, 0x1e,
0xe9, 0x1b, 0xb7, 0x1e, 0xb9, 0x71, 0xc6, 0xc9, 0x27, 0x72, 0x7e, 0x0a, 0xbf, 0x84, 0xca, 0x48,
0xb1, 0xb2, 0x8e, 0x17, 0x9e, 0x94, 0x65, 0x6b, 0xf9, 0x17, 0xa6, 0xe9, 0xc5, 0x9a, 0x95, 0x16,
0x6a, 0xb6, 0x7d, 0x08, 0xb5, 0xd9, 0xbb, 0x8b, 0x6b, 0x50, 0x57, 0x9b, 0x63, 0x9e, 0x84, 0x74,
0x42, 0x0c, 0x7c, 0x02, 0x6b, 0x0a, 0x98, 0xe7, 0x27, 0x26, 0xfe, 0x0f, 0xd6, 0x97, 0xc0, 0xb3,
0x2e, 0xb1, 0xb6, 0xff, 0xb2, 0xa0, 0x5e, 0x78, 0x96, 0x10, 0xa0, 0xdc, 0x4f, 0xfd, 0xc3, 0x69,
0x4c, 0x0c, 0xac, 0x43, 0xa5, 0x9f, 0xfa, 0x7b, 0x8c, 0x0a, 0x62, 0xea, 0xcd, 0x9b, 0x84, 0xc7,
0xc4, 0xd2, 0xac, 0xdd, 0x38, 0x26, 0x25, 0x6c, 0x02, 0x64, 0xeb, 0x01, 0x4b, 0x63, 0x62, 0x6b,
0xe2, 0x19, 0x17, 0x8c, 0xac, 0x48, 0x6d, 0x7a, 0xa3, 0xa2, 0x65, 0x1d, 0x95, 0x4f, 0x00, 0xa9,
0x20, 0x81, 0x86, 0xbc, 0x8c, 0xd1, 0x44, 0x9c, 0xcb, 0x5b, 0xaa, 0xb8, 0x01, 0xa4, 0x88, 0xa8,
0x43, 0x35, 0x44, 0x68, 0xf6, 0x53, 0xff, 0x6d, 0x94, 0x30, 0x3a, 0xba, 0xa0, 0xe7, 0x13, 0x46,
0x00, 0xd7, 0x61, 0x55, 0x27, 0x92, 0x5f, 0xdc, 0x34, 0x25, 0x75, 0x4d, 0xdb, 0xbf, 0x60, 0xa3,
0x1f, 0xbf, 0x9d, 0xf2, 0x64, 0x1a, 0x92, 0x86, 0xb4, 0xdd, 0x4f, 0x7d, 0xd5, 0xa0, 0x31, 0x4b,
0x8e, 0x18, 0xf5, 0x58, 0x42, 0x56, 0xf5, 0xe9, 0xd3, 0x20, 0x64, 0x7c, 0x2a, 0x8e, 0xf9, 0x4f,
0xa4, 0xa9, 0xc5, 0x0c, 0x18, 0xf5, 0xd4, 0xff, 0x8e, 0xac, 0x69, 0x31, 0x33, 0x44, 0x89, 0x21,
0xda, 0xef, 0x9b, 0x84, 0x29, 0x8b, 0xeb, 0xfa, 0x56, 0xbd, 0x57, 0x1c, 0xdc, 0xfe, 0xd5, 0x84,
0x8d, 0xc7, 0xc6, 0x03, 0xb7, 0xc0, 0x79, 0x0c, 0xdf, 0x9d, 0x0a, 0x4e, 0x0c, 0xfc, 0x04, 0xfe,
0xff, 0x58, 0xf4, 0x6b, 0x1e, 0x44, 0xa2, 0x17, 0xc6, 0x93, 0x60, 0x14, 0xc8, 0x56, 0x7c, 0x8c,
0xf6, 0xfa, 0x4a, 0xd3, 0xac, 0xed, 0x6b, 0x68, 0x2e, 0x7e, 0x14, 0xb2, 0x18, 0x73, 0x64, 0xd7,
0xf3, 0xe4, 0xf8, 0x13, 0x03, 0x9d, 0xa2, 0xd8, 0x01, 0x0b, 0xf9, 0x25, 0x53, 0x11, 0x73, 0x31,
0xf2, 0x36, 0xf6, 0xa8, 0xc8, 0x22, 0xd6, 0xa2, 0x91, 0x5d, 0xcf, 0x3b, 0xca, 0xde, 0x1e, 0x15,
0x2d, 0xed, 0xbd, 0xb8, 0xf9, 0xe0, 0x1a, 0xb7, 0x1f, 0x5c, 0xe3, 0xe6, 0xce, 0x35, 0x6f, 0xef,
0x5c, 0xf3, 0x9f, 0x3b, 0xd7, 0xfc, 0xed, 0xde, 0x35, 0x7e, 0xbf, 0x77, 0x8d, 0xdb, 0x7b, 0xd7,
0xf8, 0xfb, 0xde, 0x35, 0xfe, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xee, 0xe3, 0x39, 0x8b, 0xbb, 0x08,
0x00, 0x00,
}
func (m *Entry) Marshal() (dAtA []byte, err error) {
@ -809,10 +783,6 @@ func (m *Entry) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
if m.XXX_unrecognized != nil {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
if m.Data != nil {
i -= len(m.Data)
copy(dAtA[i:], m.Data)
@ -852,10 +822,6 @@ func (m *SnapshotMetadata) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
if m.XXX_unrecognized != nil {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
i = encodeVarintRaft(dAtA, i, uint64(m.Term))
i--
dAtA[i] = 0x18
@ -895,10 +861,6 @@ func (m *Snapshot) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
if m.XXX_unrecognized != nil {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
{
size, err := m.Metadata.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
@ -939,10 +901,6 @@ func (m *Message) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
if m.XXX_unrecognized != nil {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
if m.Context != nil {
i -= len(m.Context)
copy(dAtA[i:], m.Context)
@ -1029,10 +987,6 @@ func (m *HardState) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
if m.XXX_unrecognized != nil {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
i = encodeVarintRaft(dAtA, i, uint64(m.Commit))
i--
dAtA[i] = 0x18
@ -1065,10 +1019,6 @@ func (m *ConfState) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
if m.XXX_unrecognized != nil {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
i--
if m.AutoLeave {
dAtA[i] = 1
@ -1128,10 +1078,6 @@ func (m *ConfChange) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
if m.XXX_unrecognized != nil {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
if m.Context != nil {
i -= len(m.Context)
copy(dAtA[i:], m.Context)
@ -1171,10 +1117,6 @@ func (m *ConfChangeSingle) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
if m.XXX_unrecognized != nil {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
i = encodeVarintRaft(dAtA, i, uint64(m.NodeID))
i--
dAtA[i] = 0x10
@ -1204,10 +1146,6 @@ func (m *ConfChangeV2) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
if m.XXX_unrecognized != nil {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
if m.Context != nil {
i -= len(m.Context)
copy(dAtA[i:], m.Context)
@ -1259,9 +1197,6 @@ func (m *Entry) Size() (n int) {
l = len(m.Data)
n += 1 + l + sovRaft(uint64(l))
}
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
return n
}
@ -1275,9 +1210,6 @@ func (m *SnapshotMetadata) Size() (n int) {
n += 1 + l + sovRaft(uint64(l))
n += 1 + sovRaft(uint64(m.Index))
n += 1 + sovRaft(uint64(m.Term))
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
return n
}
@ -1293,9 +1225,6 @@ func (m *Snapshot) Size() (n int) {
}
l = m.Metadata.Size()
n += 1 + l + sovRaft(uint64(l))
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
return n
}
@ -1326,9 +1255,6 @@ func (m *Message) Size() (n int) {
l = len(m.Context)
n += 1 + l + sovRaft(uint64(l))
}
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
return n
}
@ -1341,9 +1267,6 @@ func (m *HardState) Size() (n int) {
n += 1 + sovRaft(uint64(m.Term))
n += 1 + sovRaft(uint64(m.Vote))
n += 1 + sovRaft(uint64(m.Commit))
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
return n
}
@ -1374,9 +1297,6 @@ func (m *ConfState) Size() (n int) {
}
}
n += 2
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
return n
}
@ -1393,9 +1313,6 @@ func (m *ConfChange) Size() (n int) {
l = len(m.Context)
n += 1 + l + sovRaft(uint64(l))
}
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
return n
}
@ -1407,9 +1324,6 @@ func (m *ConfChangeSingle) Size() (n int) {
_ = l
n += 1 + sovRaft(uint64(m.Type))
n += 1 + sovRaft(uint64(m.NodeID))
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
return n
}
@ -1430,9 +1344,6 @@ func (m *ConfChangeV2) Size() (n int) {
l = len(m.Context)
n += 1 + l + sovRaft(uint64(l))
}
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
return n
}
@ -1577,7 +1488,6 @@ func (m *Entry) Unmarshal(dAtA []byte) error {
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
iNdEx += skippy
}
}
@ -1702,7 +1612,6 @@ func (m *SnapshotMetadata) Unmarshal(dAtA []byte) error {
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
iNdEx += skippy
}
}
@ -1823,7 +1732,6 @@ func (m *Snapshot) Unmarshal(dAtA []byte) error {
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
iNdEx += skippy
}
}
@ -2150,7 +2058,6 @@ func (m *Message) Unmarshal(dAtA []byte) error {
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
iNdEx += skippy
}
}
@ -2261,7 +2168,6 @@ func (m *HardState) Unmarshal(dAtA []byte) error {
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
iNdEx += skippy
}
}
@ -2639,7 +2545,6 @@ func (m *ConfState) Unmarshal(dAtA []byte) error {
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
iNdEx += skippy
}
}
@ -2784,7 +2689,6 @@ func (m *ConfChange) Unmarshal(dAtA []byte) error {
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
iNdEx += skippy
}
}
@ -2876,7 +2780,6 @@ func (m *ConfChangeSingle) Unmarshal(dAtA []byte) error {
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
iNdEx += skippy
}
}
@ -3017,7 +2920,6 @@ func (m *ConfChangeV2) Unmarshal(dAtA []byte) error {
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
iNdEx += skippy
}
}

View File

@ -8,6 +8,9 @@ option (gogoproto.sizer_all) = true;
option (gogoproto.unmarshaler_all) = true;
option (gogoproto.goproto_getters_all) = false;
option (gogoproto.goproto_enum_prefix_all) = false;
option (gogoproto.goproto_unkeyed_all) = false;
option (gogoproto.goproto_unrecognized_all) = false;
option (gogoproto.goproto_sizecache_all) = false;
enum EntryType {
EntryNormal = 0;

View File

@ -36,29 +36,29 @@ func TestProtoMemorySizes(t *testing.T) {
}
var e Entry
assert(unsafe.Sizeof(e), if64Bit(80, 48), "Entry")
assert(unsafe.Sizeof(e), if64Bit(48, 32), "Entry")
var sm SnapshotMetadata
assert(unsafe.Sizeof(sm), if64Bit(184, 100), "SnapshotMetadata")
assert(unsafe.Sizeof(sm), if64Bit(120, 68), "SnapshotMetadata")
var s Snapshot
assert(unsafe.Sizeof(s), if64Bit(240, 128), "Snapshot")
assert(unsafe.Sizeof(s), if64Bit(144, 80), "Snapshot")
var m Message
assert(unsafe.Sizeof(m), if64Bit(392, 232), "Message")
assert(unsafe.Sizeof(m), if64Bit(264, 168), "Message")
var hs HardState
assert(unsafe.Sizeof(hs), if64Bit(56, 40), "HardState")
assert(unsafe.Sizeof(hs), 24, "HardState")
var cs ConfState
assert(unsafe.Sizeof(cs), if64Bit(136, 68), "ConfState")
assert(unsafe.Sizeof(cs), if64Bit(104, 52), "ConfState")
var cc ConfChange
assert(unsafe.Sizeof(cc), if64Bit(80, 48), "ConfChange")
assert(unsafe.Sizeof(cc), if64Bit(48, 32), "ConfChange")
var ccs ConfChangeSingle
assert(unsafe.Sizeof(ccs), if64Bit(48, 28), "ConfChangeSingle")
assert(unsafe.Sizeof(ccs), if64Bit(16, 12), "ConfChangeSingle")
var ccv2 ConfChangeV2
assert(unsafe.Sizeof(ccv2), if64Bit(88, 44), "ConfChangeV2")
assert(unsafe.Sizeof(ccv2), if64Bit(56, 28), "ConfChangeV2")
}

View File

@ -103,7 +103,7 @@ stabilize 1 2
propose-conf-change 1
v3 v4 v5
----
INFO 1 ignoring conf change {ConfChangeTransitionAuto [{ConfChangeAddNode 3 {} [] 0} {ConfChangeAddNode 4 {} [] 0} {ConfChangeAddNode 5 {} [] 0}] [] {} [] 0} at config voters=(1 2)&&(1): must transition out of joint config first
INFO 1 ignoring conf change {ConfChangeTransitionAuto [{ConfChangeAddNode 3} {ConfChangeAddNode 4} {ConfChangeAddNode 5}] []} at config voters=(1 2)&&(1): must transition out of joint config first
# Propose a transition out of the joint config. We'll see this at index 6 below.
propose-conf-change 1
@ -165,7 +165,7 @@ stabilize
# Check that trying to transition out again won't do anything.
propose-conf-change 1
----
INFO 1 ignoring conf change {ConfChangeTransitionAuto [] [] {} [] 0} at config voters=(1 2): not in joint state; refusing empty conf change
INFO 1 ignoring conf change {ConfChangeTransitionAuto [] []} at config voters=(1 2): not in joint state; refusing empty conf change
# Finishes work for the empty entry we just proposed.
stabilize