Help us shape the future of Go! Take the 2026 Go Developer Survey

raft_badger

package module
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Oct 21, 2024 License: Apache-2.0 Imports: 16 Imported by: 0

README

Raft-badger is a full implementation raft kv store based on badger

Source code info

  • log_store.go
raft log store based on badger
  • stable_store.go
stable log store based on badger ( for config)
  • fsm.go
fsm store based on badger ( for client)

Quick start

braftd

Documentation

Index

Constants

View Source
const (
	FsmCommandSet = "Set"
	FsmCommandDel = "Delete"
)
View Source
const (
	BucketSpliter = "@"
)

Variables

View Source
var (
	EmptyBucket       = []byte{}
	EmptyBucketLength = len(EmptyBucket)

	LogBucket       = []byte("_rlb_") // raft log bucket
	LogBucketLength = len(LogBucket)

	StableBucket       = []byte("_rsl_") // raft stable log
	StableBucketLength = len(StableBucket)

	FsmBucket       = []byte("_rfb_") // raft fsm bucket
	FsmBucketLength = len(FsmBucket)

	FsmCmd = map[string]interface{}{
		FsmCommandSet: nil,
		FsmCommandDel: nil,
	}
)

Functions

func MKeys

func MKeys(m map[string]string) []string

func PrintMapDiff

func PrintMapDiff(baseKv, newKv map[string]string)

Types

type FsmCommand

type FsmCommand struct {
	Op    string `json:"op,omitempty"`
	Error error  `json:"-"` // only output, not input param,

	Bucket string            `json:"bucket,omitempty"` // check where to be used
	Kv     map[string]string `json:"kv,omitempty"`
}

type Peer

type Peer struct {
	RaftDir  string
	RaftBind string
	// contains filtered or unexported fields
}

func NewPeer

func NewPeer(dir, bind string) *Peer

func (*Peer) Close

func (s *Peer) Close() error

Close peer

func (*Peer) Delete

func (s *Peer) Delete(bucket, key string) error

Delete a kv on leader

func (*Peer) Get

func (s *Peer) Get(bucket, k string) (result string, found bool, e error)

Get a kv on any peer

func (*Peer) Join

func (s *Peer) Join(nodeID, addr string) error

Join a raft cluster

func (*Peer) Keys

func (s *Peer) Keys(bucket string) (map[string]string, error)

Keys all in bucket

func (*Peer) KeysWithoutValues

func (s *Peer) KeysWithoutValues(bucket string) (keys []string, err error)

KeysWithoutValues in bucket

func (*Peer) MakeSureLeader

func (s *Peer) MakeSureLeader() error

MakeSureLeader user set, delete should on leader. no need to read

func (*Peer) Open

func (s *Peer) Open(enableSingle bool, localID string) error

Open a peer, ready to do join or joined by other peers

func (*Peer) PDelete

func (s *Peer) PDelete(bucket string, keys []string) error

PDelete multi kv on leader, Non-atomic operation

func (*Peer) PGet

func (s *Peer) PGet(bucket string, keys []string) (map[string]string, error)

PGet multi keys' values on any peer

func (*Peer) PSet

func (s *Peer) PSet(bucket string, kv map[string]string) error

PSet multi kv on leader, Non-atomic operation

func (*Peer) Set

func (s *Peer) Set(bucket, k, v string) error

Set a kv on leader

func (*Peer) Stats

func (s *Peer) Stats() map[string]string

type Stats

type Stats struct {
}

Jump to

Keyboard shortcuts

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