kv

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Sep 5, 2020 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	OK             = "OK"
	ErrNoKey       = "ErrNoKey"
	ErrWrongLeader = "ErrWrongLeader"
	NoKeyValue     = ""
	RPCGet         = "KVServer.Get"
	RPCPutAppend   = "KVServer.PutAppend"
	OpPut          = "Put"
	OpAppend       = "Append"
	OpGet          = "Get"
	CommitTimeout  = "CommitTimeout"
)
View Source
const Debug = 1

Variables

This section is empty.

Functions

func DPrintf

func DPrintf(format string, a ...interface{}) (n int, err error)

func GetClientEnds

func GetClientEnds(path string) []*rpcutil.ClientEnd

Types

type Clerk

type Clerk struct {
	// contains filtered or unexported fields
}

func MakeClerk

func MakeClerk(servers []*rpcutil.ClientEnd) *Clerk

func (*Clerk) Append

func (ck *Clerk) Append(key string, value string)

func (*Clerk) Get

func (ck *Clerk) Get(key string) string

func (*Clerk) Put

func (ck *Clerk) Put(key string, value string)

type ClientConfig

type ClientConfig struct {
	ClientEnd []struct {
		Ip   string
		Port string
	} `yaml:"servers"`
}

type CommonReply

type CommonReply struct {
	Serial *uuid.UUID
	Err    Err
	Key    string
	Value  string
}

type Err

type Err string

type GetArgs

type GetArgs struct {
	Key    string
	Id     uuid.UUID
	Serial uuid.UUID
}

type GetReply

type GetReply struct {
	Err   Err
	Value string
}

type KVServer

type KVServer struct {
	// contains filtered or unexported fields
}

func StartKVServer

func StartKVServer(servers []*rpcutil.ClientEnd, me int, persister *raft.Persister, maxraftstate int) *KVServer

func (*KVServer) Get

func (kv *KVServer) Get(args *GetArgs, reply *GetReply) error

func (*KVServer) Kill

func (kv *KVServer) Kill()

func (*KVServer) PutAppend

func (kv *KVServer) PutAppend(args *PutAppendArgs, reply *PutAppendReply) error

type Op

type Op struct {
	Type   string
	Key    string
	Value  string
	Serial uuid.UUID
}

type PutAppendArgs

type PutAppendArgs struct {
	Key    string
	Value  string
	Op     string // "Put" or "Append"
	Id     uuid.UUID
	Serial uuid.UUID
}

Put or Append

type PutAppendReply

type PutAppendReply struct {
	Err Err
}

Jump to

Keyboard shortcuts

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