shardmaster

package
v0.0.0-...-1bd0170 Latest Latest
Warning

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

Go to latest
Published: Oct 14, 2016 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	OK      = "OK"
	TimeOut = "TimeOut"
	Error   = "Error"
)
View Source
const Debug = 0
View Source
const NShards = 10

The number of shards.

Variables

This section is empty.

Functions

func DPrintf

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

Types

type Clerk

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

func MakeClerk

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

func (*Clerk) Join

func (ck *Clerk) Join(servers map[int][]string)

func (*Clerk) Leave

func (ck *Clerk) Leave(gids []int)

func (*Clerk) Move

func (ck *Clerk) Move(shard int, gid int)

func (*Clerk) Query

func (ck *Clerk) Query(num int) Config

type Config

type Config struct {
	Num    int              // config number
	Shards [NShards]int     // shard -> gid
	Groups map[int][]string // gid -> servers[]
}

A configuration -- an assignment of shards to groups. Please don't change this.

type Err

type Err string

type JoinArgs

type JoinArgs struct {
	Servers map[int][]string // new GID -> servers mappings

	Cid int64
	Seq int64
}

type JoinReply

type JoinReply struct {
	WrongLeader bool
	Err         Err
}

type LeaveArgs

type LeaveArgs struct {
	GIDs []int

	Cid int64
	Seq int64
}

type LeaveReply

type LeaveReply struct {
	WrongLeader bool
	Err         Err
}

type MoveArgs

type MoveArgs struct {
	Shard int
	GID   int

	Cid int64
	Seq int64
}

type MoveReply

type MoveReply struct {
	WrongLeader bool
	Err         Err
}

type Op

type Op struct {
	Cid     int64
	Seq     int64
	Action  string
	Servers map[int][]string
	GIDs    []int
	Shard   int
	GID     int
	Num     int
}

type OpReply

type OpReply struct {
	Cid         int64
	Seq         int64
	Conf        Config
	WrongLeader bool
	Err         Err
}

type QueryArgs

type QueryArgs struct {
	Num int // desired config number

	Cid int64
	Seq int64
}

type QueryReply

type QueryReply struct {
	WrongLeader bool
	Err         Err
	Config      Config
}

type ShardMaster

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

func StartServer

func StartServer(servers []*labrpc.ClientEnd, me int, persister *raft.Persister) *ShardMaster

servers[] contains the ports of the set of servers that will cooperate via Paxos to form the fault-tolerant shardmaster service. me is the index of the current server in servers[].

func (*ShardMaster) Join

func (sm *ShardMaster) Join(args *JoinArgs, reply *JoinReply)

func (*ShardMaster) Kill

func (sm *ShardMaster) Kill()

the tester calls Kill() when a ShardMaster instance won't be needed again. you are not required to do anything in Kill(), but it might be convenient to (for example) turn off debug output from this instance.

func (*ShardMaster) Leave

func (sm *ShardMaster) Leave(args *LeaveArgs, reply *LeaveReply)

func (*ShardMaster) Move

func (sm *ShardMaster) Move(args *MoveArgs, reply *MoveReply)

func (*ShardMaster) Query

func (sm *ShardMaster) Query(args *QueryArgs, reply *QueryReply)

func (*ShardMaster) Raft

func (sm *ShardMaster) Raft() *raft.Raft

needed by shardkv tester

Jump to

Keyboard shortcuts

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