Documentation
¶
Index ¶
- Variables
- func ErrSkipEntry() error
- func NewMemberUnaryInterceptor(cs ClusterServer) grpc.UnaryServerInterceptor
- func WithExpectedTerm(ctx context.Context, term uint64) context.Context
- func WithReqDoneCallback(ctx context.Context, cb ReqDoneCallback) context.Context
- type Channel
- type ClusterServer
- type ConfChangeContext
- type Config
- type DoingRequest
- type Entries
- type Entry
- type Executor
- type InitialState
- type Key
- type MaintenanceServer
- type MapLocker
- type MemberStatus
- type Message
- type MockStorage
- func (_m *MockStorage) Describe(w io.Writer)
- func (_m *MockStorage) Entries(lo uint64, hi uint64, maxSize uint64) ([]raftpb.Entry, error)
- func (_m *MockStorage) FirstIndex() (uint64, error)
- func (_m *MockStorage) GetAllMemberURLs() (map[refs.PeerID][]string, error)
- func (_m *MockStorage) GetAllRefs() (map[string]refs.Hash, error)
- func (_m *MockStorage) GetConfState() (*raftpb.ConfState, error)
- func (_m *MockStorage) GetInitState() (*InitialState, error)
- func (_m *MockStorage) GetLeaderTerm() uint64
- func (_m *MockStorage) GetURLsByMemberID(id refs.PeerID) ([]string, error)
- func (_m *MockStorage) InitialState() (raftpb.HardState, raftpb.ConfState, error)
- func (_m *MockStorage) LastIndex() (uint64, error)
- func (_m *MockStorage) OnConfIndexChange(confIndex uint64)
- func (_m *MockStorage) Save(hardState raftpb.HardState, entries []raftpb.Entry) error
- func (_m *MockStorage) Snapshot() (raftpb.Snapshot, error)
- func (_m *MockStorage) Term(i uint64) (uint64, error)
- type Node
- type NodeOptions
- type OpEvent
- type PeerID
- type Raft
- type ReadyHandler
- type ReqDoneCallback
- type RequestContextManager
- type RpcChannel
- type Runner
- type RunnerFunc
- type ServerConfig
- type Snapshot
- type StateMachine
- type Status
- type Storage
- type Tracker
- type Tx
- type TxIniter
- type Unlocker
- func LockGlobal(ctx context.Context, txnLocker MapLocker, lockErr error, storage Storage) (map[plumbing.ReferenceName]plumbing.Hash, bool, Unlocker, error)
- func LockRefList(ctx context.Context, txnLocker MapLocker, storage Storage, ...) (map[plumbing.ReferenceName]plumbing.Hash, bool, Unlocker, error)
Constants ¶
This section is empty.
Variables ¶
var ( ErrNotImplemented = errors.New("Not Implemented") ErrTimeoutLeaderTransfer = errors.New("request timed out, leader transfer took too long") )
var CtxExpectedTermKey = ctxExpectedTerm{}
var CtxReqDoneCallback = ctxReqDoneCallback{}
var ErrStopped = errors.New("stopped")
Functions ¶
func ErrSkipEntry ¶
func ErrSkipEntry() error
func NewMemberUnaryInterceptor ¶
func NewMemberUnaryInterceptor(cs ClusterServer) grpc.UnaryServerInterceptor
func WithReqDoneCallback ¶
func WithReqDoneCallback(ctx context.Context, cb ReqDoneCallback) context.Context
Types ¶
type Channel ¶
type Channel struct {
// contains filtered or unexported fields
}
func NewChannel ¶
type ClusterServer ¶
type ClusterServer = *clusterServer
func NewClusterServer ¶
func NewClusterServer(config ServerConfig) ClusterServer
type ConfChangeContext ¶
type DoingRequest ¶
type Executor ¶
type Executor interface { Runner OnLeaderStart(term uint64) OnLeaderStop() OnEntry(entry *pb.Entry) error OnConfState(index uint64, state pb.ConfState, members []refs.Member, opType pb.ConfChangeType) error OnSnapshot(snapsnot pb.Snapshot, srcId PeerID) error }
func StartExecutor ¶
func StartExecutor( raft Raft, sm StateMachine, ) (Executor, error)
type InitialState ¶
type Key ¶
type Key = plumbing.ReferenceName
type MaintenanceServer ¶
type MaintenanceServer = *maintenanceServer
func NewMaintenanceServer ¶
func NewMaintenanceServer(config ServerConfig) MaintenanceServer
type MemberStatus ¶
type MemberStatus struct { ID string `json:"id"` Lead string `json:"lead"` Commit uint64 `json:"commit"` RaftState string `json:"raftState"` Progress map[string]Tracker `json:"progress"` Members map[string][]string `json:"members"` }
func (MemberStatus) String ¶
func (s MemberStatus) String() string
type MockStorage ¶
MockStorage is an autogenerated mock type for the Storage type
func (*MockStorage) Describe ¶
func (_m *MockStorage) Describe(w io.Writer)
Describe provides a mock function with given fields: w
func (*MockStorage) FirstIndex ¶
func (_m *MockStorage) FirstIndex() (uint64, error)
FirstIndex provides a mock function with given fields:
func (*MockStorage) GetAllMemberURLs ¶
func (_m *MockStorage) GetAllMemberURLs() (map[refs.PeerID][]string, error)
GetAllMemberURLs provides a mock function with given fields:
func (*MockStorage) GetAllRefs ¶
func (_m *MockStorage) GetAllRefs() (map[string]refs.Hash, error)
GetAllRefs provides a mock function with given fields:
func (*MockStorage) GetConfState ¶
func (_m *MockStorage) GetConfState() (*raftpb.ConfState, error)
GetConfState provides a mock function with given fields:
func (*MockStorage) GetInitState ¶
func (_m *MockStorage) GetInitState() (*InitialState, error)
GetInitState provides a mock function with given fields:
func (*MockStorage) GetLeaderTerm ¶
func (_m *MockStorage) GetLeaderTerm() uint64
GetLeaderTerm provides a mock function with given fields:
func (*MockStorage) GetURLsByMemberID ¶
func (_m *MockStorage) GetURLsByMemberID(id refs.PeerID) ([]string, error)
GetURLsByMemberID provides a mock function with given fields: id
func (*MockStorage) InitialState ¶
InitialState provides a mock function with given fields:
func (*MockStorage) LastIndex ¶
func (_m *MockStorage) LastIndex() (uint64, error)
LastIndex provides a mock function with given fields:
func (*MockStorage) OnConfIndexChange ¶
func (_m *MockStorage) OnConfIndexChange(confIndex uint64)
OnConfIndexChange provides a mock function with given fields: confIndex
type Node ¶
type Node interface { Handler() http.Handler ClusterService() ClusterServer MaintenanceService() MaintenanceServer InitRouter(mux *http.ServeMux) GetStatus(ctx context.Context) (*Status, error) ReadIndex(ctx context.Context) (uint64, error) Propose(ctx context.Context, cmds []*packp.Command, pack []byte, handle refs.ReqHandle) (DoingRequest, error) BeginTx(initer TxIniter) (*Tx, error) }
A key-value stream backed by raft
type NodeOptions ¶
type NodeOptions interface {
// contains filtered or unexported methods
}
func WithDialOptions ¶
func WithDialOptions(options ...grpc.DialOption) NodeOptions
func WithNewMemberID ¶
func WithNewMemberID(fn func(peerURLs []string) refs.PeerID) NodeOptions
func WithReadIndexTimeout ¶
func WithReadIndexTimeout(d time.Duration) NodeOptions
func WithTLSInfo ¶
func WithTLSInfo(tlsInfo transport.TLSInfo) NodeOptions
func WithTxnLocker ¶
func WithTxnLocker(txnLocker MapLocker) NodeOptions
type Raft ¶
type Raft interface { rafthttp.Raft Runner Start(node *raft.RawNode, readyHandler ReadyHandler, d time.Duration) InitRouter(mux *http.ServeMux) Propose(ctx context.Context, cmds []*packp.Command, pack []byte, handle refs.ReqHandle) (DoingRequest, error) Describe(w io.Writer) // contains filtered or unexported methods }
func NewRaft ¶
func NewRaft(config Config, opts ...NodeOptions) Raft
type ReadyHandler ¶
type ReqDoneCallback ¶
type ReqDoneCallback func(err error)
type RequestContextManager ¶
type RequestContextManager = *requestContextManager
func NewRequestContextManager ¶
func NewRequestContextManager() RequestContextManager
type RpcChannel ¶
type Runner ¶
type Runner interface { Stop() Done() <-chan struct{} Error() error }
func StartRunner ¶
func StartRunner(fn RunnerFunc) Runner
type RunnerFunc ¶
type RunnerFunc = func(stopC <-chan struct{}) error
type ServerConfig ¶
type ServerConfig struct {
// contains filtered or unexported fields
}
type StateMachine ¶
type StateMachine interface { OnStart() error OnLeaderStart(term uint64) OnLeaderStop() OnApply(term, index uint64, oplog *refs.Oplog, handle refs.ReqHandle) error OnConfState(index uint64, confState pb.ConfState, members []refs.Member, opType pb.ConfChangeType) error OnSnapshot(snapshot pb.Snapshot, srcId PeerID) error StartSubscriber(ctx context.Context, appliedIndex uint64, eventCh chan<- OpEvent) error WaitForApplyIndex(ctx context.Context, index uint64) error }
type Storage ¶
type Storage interface { raft.Storage GetInitState() (*InitialState, error) Save(hardState pb.HardState, entries []pb.Entry) error GetLeaderTerm() uint64 GetAllRefs() (map[string]refs.Hash, error) GetAllMemberURLs() (map[PeerID][]string, error) GetURLsByMemberID(id PeerID) ([]string, error) GetConfState() (*pb.ConfState, error) Describe(w io.Writer) OnConfIndexChange(confIndex uint64) }
type Unlocker ¶
type Unlocker func()
func LockGlobal ¶
func LockRefList ¶
func LockRefList( ctx context.Context, txnLocker MapLocker, storage Storage, refName plumbing.ReferenceName, refNames ...plumbing.ReferenceName) ( map[plumbing.ReferenceName]plumbing.Hash, bool, Unlocker, error)