eraftpb

package
v0.0.0-...-1338f1b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 15, 2024 License: Apache-2.0 Imports: 4 Imported by: 11

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidLengthEraftpb = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowEraftpb   = fmt.Errorf("proto: integer overflow")
)
View Source
var ConfChangeType_name = map[int32]string{
	0: "AddNode",
	1: "RemoveNode",
}
View Source
var ConfChangeType_value = map[string]int32{
	"AddNode":    0,
	"RemoveNode": 1,
}
View Source
var EntryType_name = map[int32]string{
	0: "EntryNormal",
	1: "EntryConfChange",
}
View Source
var EntryType_value = map[string]int32{
	"EntryNormal":     0,
	"EntryConfChange": 1,
}
View Source
var MessageType_name = map[int32]string{
	0:  "MsgHup",
	1:  "MsgBeat",
	2:  "MsgPropose",
	3:  "MsgAppend",
	4:  "MsgAppendResponse",
	5:  "MsgRequestVote",
	6:  "MsgRequestVoteResponse",
	7:  "MsgSnapshot",
	8:  "MsgHeartbeat",
	9:  "MsgHeartbeatResponse",
	11: "MsgTransferLeader",
	12: "MsgTimeoutNow",
}
View Source
var MessageType_value = map[string]int32{
	"MsgHup":                 0,
	"MsgBeat":                1,
	"MsgPropose":             2,
	"MsgAppend":              3,
	"MsgAppendResponse":      4,
	"MsgRequestVote":         5,
	"MsgRequestVoteResponse": 6,
	"MsgSnapshot":            7,
	"MsgHeartbeat":           8,
	"MsgHeartbeatResponse":   9,
	"MsgTransferLeader":      11,
	"MsgTimeoutNow":          12,
}

Functions

This section is empty.

Types

type ConfChange

type ConfChange struct {
	ChangeType ConfChangeType `protobuf:"varint,1,opt,name=change_type,json=changeType,proto3,enum=eraftpb.ConfChangeType" json:"change_type,omitempty"`
	// node will be add/remove
	NodeId               uint64   `protobuf:"varint,2,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
	Context              []byte   `protobuf:"bytes,3,opt,name=context,proto3" json:"context,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

ConfChange is the data that attach on entry with EntryConfChange type

func (*ConfChange) Descriptor

func (*ConfChange) Descriptor() ([]byte, []int)

func (*ConfChange) GetChangeType

func (m *ConfChange) GetChangeType() ConfChangeType

func (*ConfChange) GetContext

func (m *ConfChange) GetContext() []byte

func (*ConfChange) GetNodeId

func (m *ConfChange) GetNodeId() uint64

func (*ConfChange) Marshal

func (m *ConfChange) Marshal() (dAtA []byte, err error)

func (*ConfChange) MarshalTo

func (m *ConfChange) MarshalTo(dAtA []byte) (int, error)

func (*ConfChange) ProtoMessage

func (*ConfChange) ProtoMessage()

func (*ConfChange) Reset

func (m *ConfChange) Reset()

func (*ConfChange) Size

func (m *ConfChange) Size() (n int)

func (*ConfChange) String

func (m *ConfChange) String() string

func (*ConfChange) Unmarshal

func (m *ConfChange) Unmarshal(dAtA []byte) error

func (*ConfChange) XXX_DiscardUnknown

func (m *ConfChange) XXX_DiscardUnknown()

func (*ConfChange) XXX_Marshal

func (m *ConfChange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*ConfChange) XXX_Merge

func (dst *ConfChange) XXX_Merge(src proto.Message)

func (*ConfChange) XXX_Size

func (m *ConfChange) XXX_Size() int

func (*ConfChange) XXX_Unmarshal

func (m *ConfChange) XXX_Unmarshal(b []byte) error

type ConfChangeType

type ConfChangeType int32
const (
	ConfChangeType_AddNode    ConfChangeType = 0
	ConfChangeType_RemoveNode ConfChangeType = 1
)

func (ConfChangeType) EnumDescriptor

func (ConfChangeType) EnumDescriptor() ([]byte, []int)

func (ConfChangeType) String

func (x ConfChangeType) String() string

type ConfState

type ConfState struct {
	// all node id
	Nodes                []uint64 `protobuf:"varint,1,rep,packed,name=nodes" json:"nodes,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

ConfState contains the current membership information of the raft group

func (*ConfState) Descriptor

func (*ConfState) Descriptor() ([]byte, []int)

func (*ConfState) GetNodes

func (m *ConfState) GetNodes() []uint64

func (*ConfState) Marshal

func (m *ConfState) Marshal() (dAtA []byte, err error)

func (*ConfState) MarshalTo

func (m *ConfState) MarshalTo(dAtA []byte) (int, error)

func (*ConfState) ProtoMessage

func (*ConfState) ProtoMessage()

func (*ConfState) Reset

func (m *ConfState) Reset()

func (*ConfState) Size

func (m *ConfState) Size() (n int)

func (*ConfState) String

func (m *ConfState) String() string

func (*ConfState) Unmarshal

func (m *ConfState) Unmarshal(dAtA []byte) error

func (*ConfState) XXX_DiscardUnknown

func (m *ConfState) XXX_DiscardUnknown()

func (*ConfState) XXX_Marshal

func (m *ConfState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*ConfState) XXX_Merge

func (dst *ConfState) XXX_Merge(src proto.Message)

func (*ConfState) XXX_Size

func (m *ConfState) XXX_Size() int

func (*ConfState) XXX_Unmarshal

func (m *ConfState) XXX_Unmarshal(b []byte) error

type Entry

type Entry struct {
	EntryType            EntryType `protobuf:"varint,1,opt,name=entry_type,json=entryType,proto3,enum=eraftpb.EntryType" json:"entry_type,omitempty"`
	Term                 uint64    `protobuf:"varint,2,opt,name=term,proto3" json:"term,omitempty"`
	Index                uint64    `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"`
	Data                 []byte    `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

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 is for the user to set and use in this case.

func (*Entry) Descriptor

func (*Entry) Descriptor() ([]byte, []int)

func (*Entry) GetData

func (m *Entry) GetData() []byte

func (*Entry) GetEntryType

func (m *Entry) GetEntryType() EntryType

func (*Entry) GetIndex

func (m *Entry) GetIndex() uint64

func (*Entry) GetTerm

func (m *Entry) GetTerm() uint64

func (*Entry) Marshal

func (m *Entry) Marshal() (dAtA []byte, err error)

func (*Entry) MarshalTo

func (m *Entry) MarshalTo(dAtA []byte) (int, error)

func (*Entry) ProtoMessage

func (*Entry) ProtoMessage()

func (*Entry) Reset

func (m *Entry) Reset()

func (*Entry) Size

func (m *Entry) Size() (n int)

func (*Entry) String

func (m *Entry) String() string

func (*Entry) Unmarshal

func (m *Entry) Unmarshal(dAtA []byte) error

func (*Entry) XXX_DiscardUnknown

func (m *Entry) XXX_DiscardUnknown()

func (*Entry) XXX_Marshal

func (m *Entry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Entry) XXX_Merge

func (dst *Entry) XXX_Merge(src proto.Message)

func (*Entry) XXX_Size

func (m *Entry) XXX_Size() int

func (*Entry) XXX_Unmarshal

func (m *Entry) XXX_Unmarshal(b []byte) error

type EntryType

type EntryType int32
const (
	EntryType_EntryNormal     EntryType = 0
	EntryType_EntryConfChange EntryType = 1
)

func (EntryType) EnumDescriptor

func (EntryType) EnumDescriptor() ([]byte, []int)

func (EntryType) String

func (x EntryType) String() string

type HardState

type HardState struct {
	Term                 uint64   `protobuf:"varint,1,opt,name=term,proto3" json:"term,omitempty"`
	Vote                 uint64   `protobuf:"varint,2,opt,name=vote,proto3" json:"vote,omitempty"`
	Commit               uint64   `protobuf:"varint,3,opt,name=commit,proto3" json:"commit,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

HardState contains the state of a node need to be peristed, including the current term, commit index and the vote record

func (*HardState) Descriptor

func (*HardState) Descriptor() ([]byte, []int)

func (*HardState) GetCommit

func (m *HardState) GetCommit() uint64

func (*HardState) GetTerm

func (m *HardState) GetTerm() uint64

func (*HardState) GetVote

func (m *HardState) GetVote() uint64

func (*HardState) Marshal

func (m *HardState) Marshal() (dAtA []byte, err error)

func (*HardState) MarshalTo

func (m *HardState) MarshalTo(dAtA []byte) (int, error)

func (*HardState) ProtoMessage

func (*HardState) ProtoMessage()

func (*HardState) Reset

func (m *HardState) Reset()

func (*HardState) Size

func (m *HardState) Size() (n int)

func (*HardState) String

func (m *HardState) String() string

func (*HardState) Unmarshal

func (m *HardState) Unmarshal(dAtA []byte) error

func (*HardState) XXX_DiscardUnknown

func (m *HardState) XXX_DiscardUnknown()

func (*HardState) XXX_Marshal

func (m *HardState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*HardState) XXX_Merge

func (dst *HardState) XXX_Merge(src proto.Message)

func (*HardState) XXX_Size

func (m *HardState) XXX_Size() int

func (*HardState) XXX_Unmarshal

func (m *HardState) XXX_Unmarshal(b []byte) error

type Message

type Message struct {
	MsgType              MessageType `protobuf:"varint,1,opt,name=msg_type,json=msgType,proto3,enum=eraftpb.MessageType" json:"msg_type,omitempty"`
	To                   uint64      `protobuf:"varint,2,opt,name=to,proto3" json:"to,omitempty"`
	From                 uint64      `protobuf:"varint,3,opt,name=from,proto3" json:"from,omitempty"`
	Term                 uint64      `protobuf:"varint,4,opt,name=term,proto3" json:"term,omitempty"`
	LogTerm              uint64      `protobuf:"varint,5,opt,name=log_term,json=logTerm,proto3" json:"log_term,omitempty"`
	Index                uint64      `protobuf:"varint,6,opt,name=index,proto3" json:"index,omitempty"`
	Entries              []*Entry    `protobuf:"bytes,7,rep,name=entries" json:"entries,omitempty"`
	Commit               uint64      `protobuf:"varint,8,opt,name=commit,proto3" json:"commit,omitempty"`
	Snapshot             *Snapshot   `protobuf:"bytes,9,opt,name=snapshot" json:"snapshot,omitempty"`
	Reject               bool        `protobuf:"varint,10,opt,name=reject,proto3" json:"reject,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (*Message) Descriptor

func (*Message) Descriptor() ([]byte, []int)

func (*Message) GetCommit

func (m *Message) GetCommit() uint64

func (*Message) GetEntries

func (m *Message) GetEntries() []*Entry

func (*Message) GetFrom

func (m *Message) GetFrom() uint64

func (*Message) GetIndex

func (m *Message) GetIndex() uint64

func (*Message) GetLogTerm

func (m *Message) GetLogTerm() uint64

func (*Message) GetMsgType

func (m *Message) GetMsgType() MessageType

func (*Message) GetReject

func (m *Message) GetReject() bool

func (*Message) GetSnapshot

func (m *Message) GetSnapshot() *Snapshot

func (*Message) GetTerm

func (m *Message) GetTerm() uint64

func (*Message) GetTo

func (m *Message) GetTo() uint64

func (*Message) Marshal

func (m *Message) Marshal() (dAtA []byte, err error)

func (*Message) MarshalTo

func (m *Message) MarshalTo(dAtA []byte) (int, error)

func (*Message) ProtoMessage

func (*Message) ProtoMessage()

func (*Message) Reset

func (m *Message) Reset()

func (*Message) Size

func (m *Message) Size() (n int)

func (*Message) String

func (m *Message) String() string

func (*Message) Unmarshal

func (m *Message) Unmarshal(dAtA []byte) error

func (*Message) XXX_DiscardUnknown

func (m *Message) XXX_DiscardUnknown()

func (*Message) XXX_Marshal

func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Message) XXX_Merge

func (dst *Message) XXX_Merge(src proto.Message)

func (*Message) XXX_Size

func (m *Message) XXX_Size() int

func (*Message) XXX_Unmarshal

func (m *Message) XXX_Unmarshal(b []byte) error

type MessageType

type MessageType int32

Some MessageType defined here are local messages which not come from the network, but should also use the Step method to handle

const (
	// 'MessageType_MsgHup' is a local message used for election. If an election timeout happened,
	// the node should pass 'MessageType_MsgHup' to its Step method and start a new election.
	MessageType_MsgHup MessageType = 0
	// 'MessageType_MsgBeat' is a local message that signals the leader to send a heartbeat
	// of the 'MessageType_MsgHeartbeat' type to its followers.
	MessageType_MsgBeat MessageType = 1
	// 'MessageType_MsgPropose' is a local message that proposes to append data to the leader's log entries.
	MessageType_MsgPropose MessageType = 2
	// 'MessageType_MsgAppend' contains log entries to replicate.
	MessageType_MsgAppend MessageType = 3
	// 'MessageType_MsgAppendResponse' is response to log replication request('MessageType_MsgAppend').
	MessageType_MsgAppendResponse MessageType = 4
	// 'MessageType_MsgRequestVote' requests votes for election.
	MessageType_MsgRequestVote MessageType = 5
	// 'MessageType_MsgRequestVoteResponse' contains responses from voting request.
	MessageType_MsgRequestVoteResponse MessageType = 6
	// 'MessageType_MsgSnapshot' requests to install a snapshot message.
	MessageType_MsgSnapshot MessageType = 7
	// 'MessageType_MsgHeartbeat' sends heartbeat from leader to its followers.
	MessageType_MsgHeartbeat MessageType = 8
	// 'MessageType_MsgHeartbeatResponse' is a response to 'MessageType_MsgHeartbeat'.
	MessageType_MsgHeartbeatResponse MessageType = 9
	// 'MessageType_MsgTransferLeader' requests the leader to transfer its leadership.
	MessageType_MsgTransferLeader MessageType = 11
	// 'MessageType_MsgTimeoutNow' send from the leader to the leadership transfer target, to let
	// the transfer target timeout immediately and start a new election.
	MessageType_MsgTimeoutNow MessageType = 12
)

func (MessageType) EnumDescriptor

func (MessageType) EnumDescriptor() ([]byte, []int)

func (MessageType) String

func (x MessageType) String() string

type Snapshot

type Snapshot struct {
	Data                 []byte            `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
	Metadata             *SnapshotMetadata `protobuf:"bytes,2,opt,name=metadata" json:"metadata,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (*Snapshot) Descriptor

func (*Snapshot) Descriptor() ([]byte, []int)

func (*Snapshot) GetData

func (m *Snapshot) GetData() []byte

func (*Snapshot) GetMetadata

func (m *Snapshot) GetMetadata() *SnapshotMetadata

func (*Snapshot) Marshal

func (m *Snapshot) Marshal() (dAtA []byte, err error)

func (*Snapshot) MarshalTo

func (m *Snapshot) MarshalTo(dAtA []byte) (int, error)

func (*Snapshot) ProtoMessage

func (*Snapshot) ProtoMessage()

func (*Snapshot) Reset

func (m *Snapshot) Reset()

func (*Snapshot) Size

func (m *Snapshot) Size() (n int)

func (*Snapshot) String

func (m *Snapshot) String() string

func (*Snapshot) Unmarshal

func (m *Snapshot) Unmarshal(dAtA []byte) error

func (*Snapshot) XXX_DiscardUnknown

func (m *Snapshot) XXX_DiscardUnknown()

func (*Snapshot) XXX_Marshal

func (m *Snapshot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Snapshot) XXX_Merge

func (dst *Snapshot) XXX_Merge(src proto.Message)

func (*Snapshot) XXX_Size

func (m *Snapshot) XXX_Size() int

func (*Snapshot) XXX_Unmarshal

func (m *Snapshot) XXX_Unmarshal(b []byte) error

type SnapshotMetadata

type SnapshotMetadata struct {
	ConfState            *ConfState `protobuf:"bytes,1,opt,name=conf_state,json=confState" json:"conf_state,omitempty"`
	Index                uint64     `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"`
	Term                 uint64     `protobuf:"varint,3,opt,name=term,proto3" json:"term,omitempty"`
	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
	XXX_unrecognized     []byte     `json:"-"`
	XXX_sizecache        int32      `json:"-"`
}

SnapshotMetadata contains the log index and term of the last log applied to this Snapshot, along with the membership information of the time the last log applied.

func (*SnapshotMetadata) Descriptor

func (*SnapshotMetadata) Descriptor() ([]byte, []int)

func (*SnapshotMetadata) GetConfState

func (m *SnapshotMetadata) GetConfState() *ConfState

func (*SnapshotMetadata) GetIndex

func (m *SnapshotMetadata) GetIndex() uint64

func (*SnapshotMetadata) GetTerm

func (m *SnapshotMetadata) GetTerm() uint64

func (*SnapshotMetadata) Marshal

func (m *SnapshotMetadata) Marshal() (dAtA []byte, err error)

func (*SnapshotMetadata) MarshalTo

func (m *SnapshotMetadata) MarshalTo(dAtA []byte) (int, error)

func (*SnapshotMetadata) ProtoMessage

func (*SnapshotMetadata) ProtoMessage()

func (*SnapshotMetadata) Reset

func (m *SnapshotMetadata) Reset()

func (*SnapshotMetadata) Size

func (m *SnapshotMetadata) Size() (n int)

func (*SnapshotMetadata) String

func (m *SnapshotMetadata) String() string

func (*SnapshotMetadata) Unmarshal

func (m *SnapshotMetadata) Unmarshal(dAtA []byte) error

func (*SnapshotMetadata) XXX_DiscardUnknown

func (m *SnapshotMetadata) XXX_DiscardUnknown()

func (*SnapshotMetadata) XXX_Marshal

func (m *SnapshotMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*SnapshotMetadata) XXX_Merge

func (dst *SnapshotMetadata) XXX_Merge(src proto.Message)

func (*SnapshotMetadata) XXX_Size

func (m *SnapshotMetadata) XXX_Size() int

func (*SnapshotMetadata) XXX_Unmarshal

func (m *SnapshotMetadata) XXX_Unmarshal(b []byte) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL