public static final class Eraftpb.ConfChangeV2 extends com.google.protobuf.GeneratedMessageV3 implements Eraftpb.ConfChangeV2OrBuilder
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.pdfProtobuf type
eraftpb.ConfChangeV2| Modifier and Type | Class and Description |
|---|---|
static class |
Eraftpb.ConfChangeV2.Builder
ConfChangeV2 messages initiate configuration changes.
|
com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageType extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage,BuilderType extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageType,BuilderType>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageType extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageType extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter| Modifier and Type | Field and Description |
|---|---|
static int |
CHANGES_FIELD_NUMBER |
static int |
CONTEXT_FIELD_NUMBER |
static int |
TRANSITION_FIELD_NUMBER |
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(Object obj) |
Eraftpb.ConfChangeSingle |
getChanges(int index)
repeated .eraftpb.ConfChangeSingle changes = 2; |
int |
getChangesCount()
repeated .eraftpb.ConfChangeSingle changes = 2; |
List<Eraftpb.ConfChangeSingle> |
getChangesList()
repeated .eraftpb.ConfChangeSingle changes = 2; |
Eraftpb.ConfChangeSingleOrBuilder |
getChangesOrBuilder(int index)
repeated .eraftpb.ConfChangeSingle changes = 2; |
List<? extends Eraftpb.ConfChangeSingleOrBuilder> |
getChangesOrBuilderList()
repeated .eraftpb.ConfChangeSingle changes = 2; |
com.google.protobuf.ByteString |
getContext()
bytes context = 3; |
static Eraftpb.ConfChangeV2 |
getDefaultInstance() |
Eraftpb.ConfChangeV2 |
getDefaultInstanceForType() |
static com.google.protobuf.Descriptors.Descriptor |
getDescriptor() |
com.google.protobuf.Parser<Eraftpb.ConfChangeV2> |
getParserForType() |
int |
getSerializedSize() |
Eraftpb.ConfChangeTransition |
getTransition()
.eraftpb.ConfChangeTransition transition = 1; |
int |
getTransitionValue()
.eraftpb.ConfChangeTransition transition = 1; |
com.google.protobuf.UnknownFieldSet |
getUnknownFields() |
int |
hashCode() |
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable |
internalGetFieldAccessorTable() |
boolean |
isInitialized() |
static Eraftpb.ConfChangeV2.Builder |
newBuilder() |
static Eraftpb.ConfChangeV2.Builder |
newBuilder(Eraftpb.ConfChangeV2 prototype) |
Eraftpb.ConfChangeV2.Builder |
newBuilderForType() |
protected Eraftpb.ConfChangeV2.Builder |
newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) |
protected Object |
newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused) |
static Eraftpb.ConfChangeV2 |
parseDelimitedFrom(InputStream input) |
static Eraftpb.ConfChangeV2 |
parseDelimitedFrom(InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
static Eraftpb.ConfChangeV2 |
parseFrom(byte[] data) |
static Eraftpb.ConfChangeV2 |
parseFrom(byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
static Eraftpb.ConfChangeV2 |
parseFrom(ByteBuffer data) |
static Eraftpb.ConfChangeV2 |
parseFrom(ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
static Eraftpb.ConfChangeV2 |
parseFrom(com.google.protobuf.ByteString data) |
static Eraftpb.ConfChangeV2 |
parseFrom(com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
static Eraftpb.ConfChangeV2 |
parseFrom(com.google.protobuf.CodedInputStream input) |
static Eraftpb.ConfChangeV2 |
parseFrom(com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
static Eraftpb.ConfChangeV2 |
parseFrom(InputStream input) |
static Eraftpb.ConfChangeV2 |
parseFrom(InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
static com.google.protobuf.Parser<Eraftpb.ConfChangeV2> |
parser() |
Eraftpb.ConfChangeV2.Builder |
toBuilder() |
void |
writeTo(com.google.protobuf.CodedOutputStream output) |
canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, hasField, hasOneof, internalGetMapField, isStringEmpty, makeExtensionsImmutable, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTagfindInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toStringaddAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeToclone, finalize, getClass, notify, notifyAll, wait, wait, waitpublic static final int TRANSITION_FIELD_NUMBER
public static final int CHANGES_FIELD_NUMBER
public static final int CONTEXT_FIELD_NUMBER
protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
newInstance in class com.google.protobuf.GeneratedMessageV3public final com.google.protobuf.UnknownFieldSet getUnknownFields()
getUnknownFields in interface com.google.protobuf.MessageOrBuildergetUnknownFields in class com.google.protobuf.GeneratedMessageV3public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3public int getTransitionValue()
.eraftpb.ConfChangeTransition transition = 1;getTransitionValue in interface Eraftpb.ConfChangeV2OrBuilderpublic Eraftpb.ConfChangeTransition getTransition()
.eraftpb.ConfChangeTransition transition = 1;getTransition in interface Eraftpb.ConfChangeV2OrBuilderpublic List<Eraftpb.ConfChangeSingle> getChangesList()
repeated .eraftpb.ConfChangeSingle changes = 2;getChangesList in interface Eraftpb.ConfChangeV2OrBuilderpublic List<? extends Eraftpb.ConfChangeSingleOrBuilder> getChangesOrBuilderList()
repeated .eraftpb.ConfChangeSingle changes = 2;getChangesOrBuilderList in interface Eraftpb.ConfChangeV2OrBuilderpublic int getChangesCount()
repeated .eraftpb.ConfChangeSingle changes = 2;getChangesCount in interface Eraftpb.ConfChangeV2OrBuilderpublic Eraftpb.ConfChangeSingle getChanges(int index)
repeated .eraftpb.ConfChangeSingle changes = 2;getChanges in interface Eraftpb.ConfChangeV2OrBuilderpublic Eraftpb.ConfChangeSingleOrBuilder getChangesOrBuilder(int index)
repeated .eraftpb.ConfChangeSingle changes = 2;getChangesOrBuilder in interface Eraftpb.ConfChangeV2OrBuilderpublic com.google.protobuf.ByteString getContext()
bytes context = 3;getContext in interface Eraftpb.ConfChangeV2OrBuilderpublic final boolean isInitialized()
isInitialized in interface com.google.protobuf.MessageLiteOrBuilderisInitialized in class com.google.protobuf.GeneratedMessageV3public void writeTo(com.google.protobuf.CodedOutputStream output)
throws IOException
writeTo in interface com.google.protobuf.MessageLitewriteTo in class com.google.protobuf.GeneratedMessageV3IOExceptionpublic int getSerializedSize()
getSerializedSize in interface com.google.protobuf.MessageLitegetSerializedSize in class com.google.protobuf.GeneratedMessageV3public boolean equals(Object obj)
equals in interface com.google.protobuf.Messageequals in class com.google.protobuf.AbstractMessagepublic int hashCode()
hashCode in interface com.google.protobuf.MessagehashCode in class com.google.protobuf.AbstractMessagepublic static Eraftpb.ConfChangeV2 parseFrom(ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
com.google.protobuf.InvalidProtocolBufferExceptionpublic static Eraftpb.ConfChangeV2 parseFrom(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
com.google.protobuf.InvalidProtocolBufferExceptionpublic static Eraftpb.ConfChangeV2 parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException
com.google.protobuf.InvalidProtocolBufferExceptionpublic static Eraftpb.ConfChangeV2 parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
com.google.protobuf.InvalidProtocolBufferExceptionpublic static Eraftpb.ConfChangeV2 parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException
com.google.protobuf.InvalidProtocolBufferExceptionpublic static Eraftpb.ConfChangeV2 parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
com.google.protobuf.InvalidProtocolBufferExceptionpublic static Eraftpb.ConfChangeV2 parseFrom(InputStream input) throws IOException
IOExceptionpublic static Eraftpb.ConfChangeV2 parseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
IOExceptionpublic static Eraftpb.ConfChangeV2 parseDelimitedFrom(InputStream input) throws IOException
IOExceptionpublic static Eraftpb.ConfChangeV2 parseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
IOExceptionpublic static Eraftpb.ConfChangeV2 parseFrom(com.google.protobuf.CodedInputStream input) throws IOException
IOExceptionpublic static Eraftpb.ConfChangeV2 parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
IOExceptionpublic Eraftpb.ConfChangeV2.Builder newBuilderForType()
newBuilderForType in interface com.google.protobuf.MessagenewBuilderForType in interface com.google.protobuf.MessageLitepublic static Eraftpb.ConfChangeV2.Builder newBuilder()
public static Eraftpb.ConfChangeV2.Builder newBuilder(Eraftpb.ConfChangeV2 prototype)
public Eraftpb.ConfChangeV2.Builder toBuilder()
toBuilder in interface com.google.protobuf.MessagetoBuilder in interface com.google.protobuf.MessageLiteprotected Eraftpb.ConfChangeV2.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
newBuilderForType in class com.google.protobuf.GeneratedMessageV3public static Eraftpb.ConfChangeV2 getDefaultInstance()
public static com.google.protobuf.Parser<Eraftpb.ConfChangeV2> parser()
public com.google.protobuf.Parser<Eraftpb.ConfChangeV2> getParserForType()
getParserForType in interface com.google.protobuf.MessagegetParserForType in interface com.google.protobuf.MessageLitegetParserForType in class com.google.protobuf.GeneratedMessageV3public Eraftpb.ConfChangeV2 getDefaultInstanceForType()
getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuildergetDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilderCopyright © 2025 PingCAP. All rights reserved.