package eraftpb

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

message ConfChange

eraftpb.proto:136

message ConfChangeSingle

eraftpb.proto:146

ConfChangeSingle is an individual configuration change operation. Multiple such operations can be carried out atomically via a ConfChangeV2.

Used in: ConfChangeV2

enum ConfChangeTransition

eraftpb.proto:97

Used in: ConfChangeV2

enum ConfChangeType

eraftpb.proto:130

Used in: ConfChange, ConfChangeSingle, pdpb.ChangePeer, raft_cmdpb.ChangePeerRequest

message ConfChangeV2

eraftpb.proto:183

ConfChangeV2 messages initiate configuration changes. They support both the simple "one at a time" membership change protocol and full Joint Consensus allowing for arbitrary changes in membership. The supplied context is treated as an opaque payload and can be used to attach an action on the state machine to the application of the config change proposal. Note that contrary to Joint Consensus as outlined in the Raft paper[1], configuration changes become active when they are *applied* to the state machine (not when they are appended to the log). The simple protocol can be used whenever only a single change is made. Non-simple changes require the use of Joint Consensus, for which two configuration changes are run. The first configuration change specifies the desired changes and transitions the Raft group into the joint configuration, in which quorum requires a majority of both the pre-changes and post-changes configuration. Joint Consensus avoids entering fragile intermediate configurations that could compromise survivability. For example, without the use of Joint Consensus and running across three availability zones with a replication factor of three, it is not possible to replace a voter without entering an intermediate configuration that does not survive the outage of one availability zone. The provided ConfChangeTransition specifies how (and whether) Joint Consensus is used, and assigns the task of leaving the joint configuration either to Raft or the application. Leaving the joint configuration is accomplished by proposing a ConfChangeV2 with only and optionally the Context field populated. For details on Raft membership changes, see: [1]: https://github.com/ongardie/dissertation/blob/master/online-trim.pdf

message ConfState

eraftpb.proto:115

Used in: SnapshotMetadata

message Entry

eraftpb.proto:20

The entry is a type of change that needs to be applied. It contains two data fields. While the fields are built into the model; their usage is determined by the entry_type. For normal entries, the data field should contain the data change that should be applied. The context field can be used for any contextual data that might be relevant to the application of the data. For configuration changes, the data will contain the ConfChange message and the context will provide anything needed to assist the configuration change. The context if for the user to set and use in this case.

Used in: debugpb.RaftLogResponse, Message, raft_cmdpb.CommitMergeRequest

enum EntryType

eraftpb.proto:4

Used in: Entry

message HardState

eraftpb.proto:91

Used in: raft_serverpb.RaftLocalState

message Message

eraftpb.proto:68

Used in: raft_serverpb.RaftMessage

enum MessageType

eraftpb.proto:46

Used in: Message

message Snapshot

eraftpb.proto:41

Used in: Message

message SnapshotMetadata

eraftpb.proto:32

Used in: Snapshot