Documentation ¶
Index ¶
- Constants
- func DPrintf(format string, a ...interface{}) (n int, err error)
- func NewHeapGroupShard(groups map[int][]string) *heapGroupShard
- type BaseArgs
- type Clerk
- type Config
- type Err
- type GroupShard
- type JoinArgs
- type JoinReply
- type LeaveArgs
- type LeaveReply
- type MoveArgs
- type MoveReply
- type OpInfo
- type OpResult
- type QueryArgs
- type QueryReply
- type ShardMaster
- func (sm *ShardMaster) Join(args *JoinArgs, reply *JoinReply)
- func (sm *ShardMaster) Kill()
- func (sm *ShardMaster) Leave(args *LeaveArgs, reply *LeaveReply)
- func (sm *ShardMaster) Move(args *MoveArgs, reply *MoveReply)
- func (sm *ShardMaster) Query(args *QueryArgs, reply *QueryReply)
- func (sm *ShardMaster) Raft() *raft.Raft
- type Wait
Constants ¶
View Source
const ( OK = "OK" ErrConfigNum = "ErrConfigNum" ErrWrongLeader = "ErrWrongLeader" ErrOpTimeout = "ErrOpTimeout" ErrKVServerClosed = "ErrKVServerClosed" ErrOutdatedRequest = "ErrOutdatedRequest" OpTimeout = raft.ELECTIONTIMEOUT ClientOpWait = raft.HEARTBEAT NotifyKeyFormat = "%d_%d" )
View Source
const Debug = 0
View Source
const NShards = 10
The number of shards.
Variables ¶
This section is empty.
Functions ¶
func NewHeapGroupShard ¶
Types ¶
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 GroupShard ¶
type LeaveReply ¶
type LeaveReply struct {
Result string
}
type QueryReply ¶
type ShardMaster ¶
type ShardMaster struct {
// contains filtered or unexported fields
}
func StartServer ¶
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)
type Wait ¶
type Wait struct {
// contains filtered or unexported fields
}
func (*Wait) Unregister ¶
Click to show internal directories.
Click to hide internal directories.