SYMBOL INDEX (560 symbols across 46 files) FILE: src/kvraft/client.go type Clerk (line 10) | type Clerk struct method Get (line 33) | func (ck *Clerk) Get(key string) string { method PutAppend (line 51) | func (ck *Clerk) PutAppend(key string, value string, op string) { method Put (line 72) | func (ck *Clerk) Put(key string, value string) { method Append (line 75) | func (ck *Clerk) Append(key string, value string) { function nrand (line 17) | func nrand() int64 { function MakeClerk (line 24) | func MakeClerk(servers []*labrpc.ClientEnd) *Clerk { FILE: src/kvraft/common.go constant OK (line 4) | OK = "OK" constant ErrNoKey (line 5) | ErrNoKey = "ErrNoKey" type Err (line 8) | type Err type PutAppendArgs (line 11) | type PutAppendArgs struct type PutAppendReply (line 19) | type PutAppendReply struct type GetArgs (line 24) | type GetArgs struct type GetReply (line 28) | type GetReply struct FILE: src/kvraft/config.go function randstring (line 19) | func randstring(n int) string { function makeSeed (line 26) | func makeSeed() int64 { function random_handles (line 34) | func random_handles(kvh []*labrpc.ClientEnd) []*labrpc.ClientEnd { type config (line 44) | type config struct method checkTimeout (line 62) | func (cfg *config) checkTimeout() { method cleanup (line 69) | func (cfg *config) cleanup() { method LogSize (line 82) | func (cfg *config) LogSize() int { method SnapshotSize (line 94) | func (cfg *config) SnapshotSize() int { method connectUnlocked (line 107) | func (cfg *config) connectUnlocked(i int, to []int) { method connect (line 123) | func (cfg *config) connect(i int, to []int) { method disconnectUnlocked (line 131) | func (cfg *config) disconnectUnlocked(i int, from []int) { method disconnect (line 151) | func (cfg *config) disconnect(i int, from []int) { method All (line 157) | func (cfg *config) All() []int { method ConnectAll (line 165) | func (cfg *config) ConnectAll() { method partition (line 174) | func (cfg *config) partition(p1 []int, p2 []int) { method makeClient (line 191) | func (cfg *config) makeClient(to []int) *Clerk { method deleteClient (line 211) | func (cfg *config) deleteClient(ck *Clerk) { method ConnectClientUnlocked (line 223) | func (cfg *config) ConnectClientUnlocked(ck *Clerk, to []int) { method ConnectClient (line 232) | func (cfg *config) ConnectClient(ck *Clerk, to []int) { method DisconnectClientUnlocked (line 239) | func (cfg *config) DisconnectClientUnlocked(ck *Clerk, from []int) { method DisconnectClient (line 248) | func (cfg *config) DisconnectClient(ck *Clerk, from []int) { method ShutdownServer (line 255) | func (cfg *config) ShutdownServer(i int) { method StartServer (line 287) | func (cfg *config) StartServer(i int) { method Leader (line 325) | func (cfg *config) Leader() (bool, int) { method make_partition (line 339) | func (cfg *config) make_partition() ([]int, []int) { method rpcTotal (line 392) | func (cfg *config) rpcTotal() int { method begin (line 399) | func (cfg *config) begin(description string) { method op (line 406) | func (cfg *config) op() { method end (line 414) | func (cfg *config) end() { function make_config (line 360) | func make_config(t *testing.T, n int, unreliable bool, maxraftstate int)... FILE: src/kvraft/server.go type Op (line 13) | type Op struct type KVServer (line 20) | type KVServer struct method println (line 34) | func (kv *KVServer) println(args ...interface{}) { method opt (line 40) | func (kv *KVServer) opt(client int64,msgId int64,req interface{}) (boo... method Get (line 60) | func (kv *KVServer) Get(req *GetArgs, reply *GetReply) { method PutAppend (line 68) | func (kv *KVServer) PutAppend(req *PutAppendArgs, reply *PutAppendRepl... method putAppend (line 73) | func (kv *KVServer) putAppend(req *PutAppendArgs) { method get (line 87) | func (kv *KVServer) get(args *GetArgs) (value string) { method Kill (line 96) | func (kv *KVServer) Kill() { method isRepeated (line 102) | func (kv *KVServer) isRepeated(client int64,msgId int64,update bool) b... method ifSaveSnapshot (line 116) | func (kv *KVServer) ifSaveSnapshot() { method updateSnapshot (line 128) | func (kv *KVServer) updateSnapshot(index int,data []byte) { method onApply (line 142) | func (kv *KVServer) onApply(applyMsg raft.ApplyMsg) { method mainLoop (line 171) | func (kv *KVServer) mainLoop() { function StartKVServer (line 185) | func StartKVServer(servers []*labrpc.ClientEnd, me int, persister *raft.... FILE: src/kvraft/test_test.go constant electionTimeout (line 16) | electionTimeout = 1 * time.Second constant linearizabilityCheckTimeout (line 18) | linearizabilityCheckTimeout = 1 * time.Second function Get (line 21) | func Get(cfg *config, ck *Clerk, key string) string { function Put (line 27) | func Put(cfg *config, ck *Clerk, key string, value string) { function Append (line 32) | func Append(cfg *config, ck *Clerk, key string, value string) { function check (line 37) | func check(cfg *config, t *testing.T, ck *Clerk, key string, value strin... function run_client (line 45) | func run_client(t *testing.T, cfg *config, me int, ca chan bool, fn func... function spawn_clients_and_wait (line 55) | func spawn_clients_and_wait(t *testing.T, cfg *config, ncli int, fn func... function NextValue (line 72) | func NextValue(prev string, val string) string { function checkClntAppends (line 78) | func checkClntAppends(t *testing.T, clnt int, v string, count int) { function checkConcurrentAppends (line 99) | func checkConcurrentAppends(t *testing.T, v string, counts []int) { function partitioner (line 122) | func partitioner(t *testing.T, cfg *config, ch chan bool, done *int32) { function GenericTest (line 151) | func GenericTest(t *testing.T, part string, nclients int, unreliable boo... function GenericTestLinearizability (line 285) | func GenericTestLinearizability(t *testing.T, part string, nclients int,... function TestBasic3A (line 426) | func TestBasic3A(t *testing.T) { function TestConcurrent3A (line 431) | func TestConcurrent3A(t *testing.T) { function TestUnreliable3A (line 436) | func TestUnreliable3A(t *testing.T) { function TestUnreliableOneKey3A (line 441) | func TestUnreliableOneKey3A(t *testing.T) { function TestOnePartition3A (line 476) | func TestOnePartition3A(t *testing.T) { function TestManyPartitionsOneClient3A (line 551) | func TestManyPartitionsOneClient3A(t *testing.T) { function TestManyPartitionsManyClients3A (line 556) | func TestManyPartitionsManyClients3A(t *testing.T) { function TestPersistOneClient3A (line 561) | func TestPersistOneClient3A(t *testing.T) { function TestPersistConcurrent3A (line 566) | func TestPersistConcurrent3A(t *testing.T) { function TestPersistConcurrentUnreliable3A (line 571) | func TestPersistConcurrentUnreliable3A(t *testing.T) { function TestPersistPartition3A (line 576) | func TestPersistPartition3A(t *testing.T) { function TestPersistPartitionUnreliable3A (line 581) | func TestPersistPartitionUnreliable3A(t *testing.T) { function TestPersistPartitionUnreliableLinearizable3A (line 586) | func TestPersistPartitionUnreliableLinearizable3A(t *testing.T) { function TestSnapshotRPC3B (line 597) | func TestSnapshotRPC3B(t *testing.T) { function TestSnapshotSize3B (line 653) | func TestSnapshotSize3B(t *testing.T) { function TestSnapshotRecover3B (line 684) | func TestSnapshotRecover3B(t *testing.T) { function TestSnapshotRecoverManyClients3B (line 689) | func TestSnapshotRecoverManyClients3B(t *testing.T) { function TestSnapshotUnreliable3B (line 694) | func TestSnapshotUnreliable3B(t *testing.T) { function TestSnapshotUnreliableRecover3B (line 699) | func TestSnapshotUnreliableRecover3B(t *testing.T) { function TestSnapshotUnreliableRecoverConcurrentPartition3B (line 704) | func TestSnapshotUnreliableRecoverConcurrentPartition3B(t *testing.T) { function TestSnapshotUnreliableRecoverConcurrentPartitionLinearizable3B (line 709) | func TestSnapshotUnreliableRecoverConcurrentPartitionLinearizable3B(t *t... FILE: src/labgob/labgob.go type LabEncoder (line 22) | type LabEncoder struct method Encode (line 32) | func (enc *LabEncoder) Encode(e interface{}) error { method EncodeValue (line 37) | func (enc *LabEncoder) EncodeValue(value reflect.Value) error { function NewEncoder (line 26) | func NewEncoder(w io.Writer) *LabEncoder { type LabDecoder (line 42) | type LabDecoder struct method Decode (line 52) | func (dec *LabDecoder) Decode(e interface{}) error { function NewDecoder (line 46) | func NewDecoder(r io.Reader) *LabDecoder { function Register (line 58) | func Register(value interface{}) { function RegisterName (line 63) | func RegisterName(name string, value interface{}) { function checkValue (line 68) | func checkValue(value interface{}) { function checkType (line 72) | func checkType(t reflect.Type) { function checkDefault (line 122) | func checkDefault(value interface{}) { function checkDefault1 (line 129) | func checkDefault1(value reflect.Value, depth int, name string) { FILE: src/labgob/test_test.go type T1 (line 7) | type T1 struct type T2 (line 14) | type T2 struct type T3 (line 20) | type T3 struct function TestGOB (line 27) | func TestGOB(t *testing.T) { type T4 (line 110) | type T4 struct function TestCapital (line 119) | func TestCapital(t *testing.T) { function TestDefault (line 146) | func TestDefault(t *testing.T) { FILE: src/labrpc/labrpc.go type reqMsg (line 62) | type reqMsg struct type replyMsg (line 70) | type replyMsg struct type ClientEnd (line 75) | type ClientEnd struct method Call (line 84) | func (e *ClientEnd) Call(svcMeth string, args interface{}, reply inter... type Network (line 116) | type Network struct method Cleanup (line 156) | func (rn *Network) Cleanup() { method Reliable (line 160) | func (rn *Network) Reliable(yes bool) { method LongReordering (line 167) | func (rn *Network) LongReordering(yes bool) { method LongDelays (line 174) | func (rn *Network) LongDelays(yes bool) { method ReadEndnameInfo (line 181) | func (rn *Network) ReadEndnameInfo(endname interface{}) (enabled bool, method IsServerDead (line 197) | func (rn *Network) IsServerDead(endname interface{}, servername interf... method ProcessReq (line 207) | func (rn *Network) ProcessReq(req reqMsg) { method MakeEnd (line 300) | func (rn *Network) MakeEnd(endname interface{}) *ClientEnd { method AddServer (line 319) | func (rn *Network) AddServer(servername interface{}, rs *Server) { method DeleteServer (line 326) | func (rn *Network) DeleteServer(servername interface{}) { method Connect (line 335) | func (rn *Network) Connect(endname interface{}, servername interface{}) { method Enable (line 343) | func (rn *Network) Enable(endname interface{}, enabled bool) { method GetCount (line 351) | func (rn *Network) GetCount(servername interface{}) int { method GetTotalCount (line 359) | func (rn *Network) GetTotalCount() int { function MakeNetwork (line 130) | func MakeNetwork() *Network { type Server (line 369) | type Server struct method AddService (line 381) | func (rs *Server) AddService(svc *Service) { method dispatch (line 387) | func (rs *Server) dispatch(req reqMsg) replyMsg { method GetCount (line 414) | func (rs *Server) GetCount() int { function MakeServer (line 375) | func MakeServer() *Server { type Service (line 422) | type Service struct method dispatch (line 460) | func (svc *Service) dispatch(methname string, req reqMsg) replyMsg { function MakeService (line 429) | func MakeService(rcvr interface{}) *Service { FILE: src/labrpc/test_test.go type JunkArgs (line 10) | type JunkArgs struct type JunkReply (line 13) | type JunkReply struct type JunkServer (line 17) | type JunkServer struct method Handler1 (line 23) | func (js *JunkServer) Handler1(args string, reply *int) { method Handler2 (line 30) | func (js *JunkServer) Handler2(args int, reply *string) { method Handler3 (line 37) | func (js *JunkServer) Handler3(args int, reply *int) { method Handler4 (line 45) | func (js *JunkServer) Handler4(args *JunkArgs, reply *JunkReply) { method Handler5 (line 50) | func (js *JunkServer) Handler5(args JunkArgs, reply *JunkReply) { function TestBasic (line 54) | func TestBasic(t *testing.T) { function TestTypes (line 89) | func TestTypes(t *testing.T) { function TestDisconnect (line 131) | func TestDisconnect(t *testing.T) { function TestCounts (line 170) | func TestCounts(t *testing.T) { function TestConcurrentMany (line 206) | func TestConcurrentMany(t *testing.T) { function TestUnreliable (line 264) | func TestUnreliable(t *testing.T) { function TestConcurrentOne (line 317) | func TestConcurrentOne(t *testing.T) { function TestRegression1 (line 379) | func TestRegression1(t *testing.T) { function TestKilled (line 454) | func TestKilled(t *testing.T) { function TestBenchmark (line 499) | func TestBenchmark(t *testing.T) { FILE: src/linearizability/bitset.go type bitset (line 3) | type bitset method clone (line 17) | func (b bitset) clone() bitset { method set (line 27) | func (b bitset) set(pos uint) bitset { method clear (line 33) | func (b bitset) clear(pos uint) bitset { method get (line 39) | func (b bitset) get(pos uint) bool { method popcnt (line 44) | func (b bitset) popcnt() uint { method hash (line 56) | func (b bitset) hash() uint64 { method equals (line 64) | func (b bitset) equals(b2 bitset) bool { function newBitset (line 8) | func newBitset(bits uint) bitset { function bitsetIndex (line 23) | func bitsetIndex(pos uint) (uint, uint) { FILE: src/linearizability/linearizability.go type entryKind (line 9) | type entryKind constant callEntry (line 12) | callEntry entryKind = false constant returnEntry (line 13) | returnEntry = true type entry (line 16) | type entry struct type byTime (line 23) | type byTime method Len (line 25) | func (a byTime) Len() int { method Swap (line 29) | func (a byTime) Swap(i, j int) { method Less (line 33) | func (a byTime) Less(i, j int) bool { function makeEntries (line 37) | func makeEntries(history []Operation) []entry { type node (line 51) | type node struct function insertBefore (line 59) | func insertBefore(n *node, mark *node) *node { function length (line 72) | func length(n *node) uint { function renumber (line 81) | func renumber(events []Event) []Event { function convertEntries (line 97) | func convertEntries(events []Event) []entry { function makeLinkedEntries (line 109) | func makeLinkedEntries(entries []entry) *node { type cacheEntry (line 128) | type cacheEntry struct function cacheContains (line 133) | func cacheContains(model Model, cache map[uint64][]cacheEntry, entry cac... type callsEntry (line 142) | type callsEntry struct function lift (line 147) | func lift(entry *node) { function unlift (line 157) | func unlift(entry *node) { function checkSingle (line 167) | func checkSingle(model Model, subhistory *node, kill *int32) bool { function fillDefault (line 216) | func fillDefault(model Model) Model { function CheckOperations (line 229) | func CheckOperations(model Model, history []Operation) bool { function CheckOperationsTimeout (line 235) | func CheckOperationsTimeout(model Model, history []Operation, timeout ti... function CheckEvents (line 272) | func CheckEvents(model Model, history []Event) bool { function CheckEventsTimeout (line 278) | func CheckEventsTimeout(model Model, history []Event, timeout time.Durat... FILE: src/linearizability/model.go type Operation (line 3) | type Operation struct type EventKind (line 10) | type EventKind constant CallEvent (line 13) | CallEvent EventKind = false constant ReturnEvent (line 14) | ReturnEvent EventKind = true type Event (line 17) | type Event struct type Model (line 23) | type Model struct function NoPartition (line 41) | func NoPartition(history []Operation) [][]Operation { function NoPartitionEvent (line 45) | func NoPartitionEvent(history []Event) [][]Event { function ShallowEqual (line 49) | func ShallowEqual(state1, state2 interface{}) bool { FILE: src/linearizability/models.go type KvInput (line 5) | type KvInput struct type KvOutput (line 11) | type KvOutput struct function KvModel (line 15) | func KvModel() Model { FILE: src/main/diskvd.go function usage (line 25) | func usage() { function main (line 30) | func main() { FILE: src/main/ii.go function mapF (line 13) | func mapF(document string, value string) (res []mapreduce.KeyValue) { function reduceF (line 39) | func reduceF(key string, values []string) string { function main (line 48) | func main() { FILE: src/main/lockc.go function usage (line 11) | func usage() { function main (line 16) | func main() { FILE: src/main/lockd.go function main (line 19) | func main() { FILE: src/main/pbc.go function usage (line 25) | func usage() { function main (line 31) | func main() { FILE: src/main/pbd.go function main (line 12) | func main() { FILE: src/main/viewd.go function main (line 12) | func main() { FILE: src/main/wc.go function mapF (line 12) | func mapF(filename string, contents string) []mapreduce.KeyValue { function reduceF (line 39) | func reduceF(key string, values []string) string { function main (line 56) | func main() { FILE: src/mapreduce/common.go constant debugEnabled (line 9) | debugEnabled = false function debug (line 12) | func debug(format string, a ...interface{}) (n int, err error) { type jobPhase (line 20) | type jobPhase constant mapPhase (line 23) | mapPhase jobPhase = "mapPhase" constant reducePhase (line 24) | reducePhase = "reducePhase" type KeyValue (line 29) | type KeyValue struct function reduceName (line 36) | func reduceName(jobName string, mapTask int, reduceTask int) string { function mergeName (line 41) | func mergeName(jobName string, reduceTask int) string { FILE: src/mapreduce/common_map.go function doMap (line 11) | func doMap( function ihash (line 51) | func ihash(s string) int { FILE: src/mapreduce/common_reduce.go function doReduce (line 9) | func doReduce( FILE: src/mapreduce/common_rpc.go type DoTaskArgs (line 13) | type DoTaskArgs struct type ShutdownReply (line 27) | type ShutdownReply struct type RegisterArgs (line 32) | type RegisterArgs struct function call (line 51) | func call(srv string, rpcname string, FILE: src/mapreduce/master.go type Master (line 14) | type Master struct method Register (line 36) | func (mr *Master) Register(args *RegisterArgs, _ *struct{}) error { method forwardRegistrations (line 85) | func (mr *Master) forwardRegistrations(ch chan string) { method run (line 132) | func (mr *Master) run(jobName string, files []string, nreduce int, method Wait (line 155) | func (mr *Master) Wait() { method killWorkers (line 161) | func (mr *Master) killWorkers() []int { function newMaster (line 49) | func newMaster(master string) (mr *Master) { function Sequential (line 60) | func Sequential(jobName string, files []string, nreduce int, function Distributed (line 105) | func Distributed(jobName string, files []string, nreduce int, master str... FILE: src/mapreduce/master_rpc.go method Shutdown (line 12) | func (mr *Master) Shutdown(_, _ *struct{}) error { method startRPCServer (line 21) | func (mr *Master) startRPCServer() { method stopRPCServer (line 59) | func (mr *Master) stopRPCServer() { FILE: src/mapreduce/master_splitmerge.go method merge (line 14) | func (mr *Master) merge() { function removeFile (line 54) | func removeFile(n string) { method CleanupFiles (line 62) | func (mr *Master) CleanupFiles() { FILE: src/mapreduce/schedule.go function schedule (line 17) | func schedule(jobName string, mapFiles []string, nReduce int, phase jobP... FILE: src/mapreduce/test_test.go constant nNumber (line 17) | nNumber = 100000 constant nMap (line 18) | nMap = 20 constant nReduce (line 19) | nReduce = 10 function MapFunc (line 26) | func MapFunc(file string, value string) (res []KeyValue) { function ReduceFunc (line 37) | func ReduceFunc(key string, values []string) string { function check (line 46) | func check(t *testing.T, files []string) { function checkWorker (line 90) | func checkWorker(t *testing.T, l []int) { function makeInputs (line 99) | func makeInputs(num int) []string { function port (line 122) | func port(suffix string) string { function setup (line 132) | func setup() *Master { function cleanup (line 139) | func cleanup(mr *Master) { function TestSequentialSingle (line 146) | func TestSequentialSingle(t *testing.T) { function TestSequentialMany (line 154) | func TestSequentialMany(t *testing.T) { function TestParallelBasic (line 162) | func TestParallelBasic(t *testing.T) { function TestParallelCheck (line 174) | func TestParallelCheck(t *testing.T) { function TestOneFailure (line 194) | func TestOneFailure(t *testing.T) { function TestManyFailures (line 207) | func TestManyFailures(t *testing.T) { FILE: src/mapreduce/worker.go type Parallelism (line 18) | type Parallelism struct type Worker (line 25) | type Worker struct method DoTask (line 40) | func (wk *Worker) DoTask(arg *DoTaskArgs, _ *struct{}) error { method Shutdown (line 98) | func (wk *Worker) Shutdown(_ *struct{}, res *ShutdownReply) error { method register (line 108) | func (wk *Worker) register(master string) { function RunWorker (line 119) | func RunWorker(MasterAddress string, me string, FILE: src/raft/config.go function randstring (line 23) | func randstring(n int) string { function makeSeed (line 30) | func makeSeed() int64 { type config (line 37) | type config struct method crash1 (line 98) | func (cfg *config) crash1(i int) { method start1 (line 135) | func (cfg *config) start1(i int) { method checkTimeout (line 217) | func (cfg *config) checkTimeout() { method cleanup (line 224) | func (cfg *config) cleanup() { method connect (line 235) | func (cfg *config) connect(i int) { method disconnect (line 258) | func (cfg *config) disconnect(i int) { method rpcCount (line 280) | func (cfg *config) rpcCount(server int) int { method rpcTotal (line 284) | func (cfg *config) rpcTotal() int { method setunreliable (line 288) | func (cfg *config) setunreliable(unrel bool) { method setlongreordering (line 292) | func (cfg *config) setlongreordering(longrel bool) { method checkOneLeader (line 298) | func (cfg *config) checkOneLeader() int { method checkTerms (line 331) | func (cfg *config) checkTerms() int { method checkNoLeader (line 347) | func (cfg *config) checkNoLeader() { method nCommitted (line 359) | func (cfg *config) nCommitted(index int) (int, interface{}) { method wait (line 385) | func (cfg *config) wait(index int, n int, startTerm int) interface{} { method one (line 426) | func (cfg *config) one(cmd int, expectedServers int, retry bool) int { method begin (line 478) | func (cfg *config) begin(description string) { method end (line 490) | func (cfg *config) end() { function make_config (line 59) | func make_config(t *testing.T, n int, unreliable bool) *config { FILE: src/raft/persister.go type Persister (line 14) | type Persister struct method Copy (line 24) | func (ps *Persister) Copy() *Persister { method SaveRaftState (line 33) | func (ps *Persister) SaveRaftState(state []byte) { method ReadRaftState (line 39) | func (ps *Persister) ReadRaftState() []byte { method RaftStateSize (line 45) | func (ps *Persister) RaftStateSize() int { method SaveStateAndSnapshot (line 53) | func (ps *Persister) SaveStateAndSnapshot(state []byte, snapshot []byt... method ReadSnapshot (line 60) | func (ps *Persister) ReadSnapshot() []byte { method SnapshotSize (line 66) | func (ps *Persister) SnapshotSize() int { function MakePersister (line 20) | func MakePersister() *Persister { FILE: src/raft/raft.go constant Fallower (line 15) | Fallower, Leader, Candidate int = 1, 2, 3 constant HeartbeatDuration (line 18) | HeartbeatDuration = time.Duration(time.Millisecond * 600) constant CandidateDuration (line 21) | CandidateDuration = HeartbeatDuration * 2 type ApplyMsg (line 26) | type ApplyMsg struct type LogEntry (line 33) | type LogEntry struct type LogSnapshot (line 39) | type LogSnapshot struct type RequestVoteArgs (line 45) | type RequestVoteArgs struct type RequestVoteReply (line 53) | type RequestVoteReply struct type AppendEntries (line 59) | type AppendEntries struct type RespEntries (line 70) | type RespEntries struct type Raft (line 76) | type Raft struct method println (line 101) | func (rf *Raft) println(args ...interface{}) { method lock (line 107) | func (rf *Raft) lock(info string) { method unlock (line 112) | func (rf *Raft) unlock(info string) { method sendRequestVote (line 118) | func (rf *Raft) sendRequestVote(server int, args *RequestVoteArgs, rep... method sendAppendEnteries (line 134) | func (rf *Raft) sendAppendEnteries(server int, req *AppendEntries, res... method GetState (line 149) | func (rf *Raft) GetState() (int, bool) { method setTerm (line 157) | func (rf *Raft) setTerm(term int) { method addTerm (line 164) | func (rf *Raft) addTerm(term int) { method setStatus (line 171) | func (rf *Raft) setStatus(status int) { method getStatus (line 191) | func (rf *Raft) getStatus() int { method getCommitIndex (line 198) | func (rf *Raft) getCommitIndex() int { method setCommitIndex (line 205) | func (rf *Raft) setCommitIndex(index int) { method getLogTermAndIndex (line 212) | func (rf *Raft) getLogTermAndIndex() (int, int) { method getLogTermOfIndex (line 229) | func (rf *Raft) getLogTermOfIndex(index int) int { method getSnapshot (line 240) | func (rf *Raft) getSnapshot(index int, snapshot *LogSnapshot) int { method getEntriesInfo (line 251) | func (rf *Raft) getEntriesInfo(index int, snapshot *LogSnapshot,entrie... method getAppendEntries (line 278) | func (rf *Raft) getAppendEntries(peer int) AppendEntries { method incNext (line 294) | func (rf *Raft) incNext(peer int) { method setNext (line 303) | func (rf *Raft) setNext(peer int, next int) { method setNextAndMatch (line 310) | func (rf *Raft) setNextAndMatch(peer int, index int) { method updateLog (line 318) | func (rf *Raft) updateLog(start int, logEntrys []LogEntry,snapshot *Lo... method insertLog (line 348) | func (rf *Raft) insertLog(command interface{}) int { method updateCommitIndex (line 368) | func (rf *Raft) updateCommitIndex() bool { method apply (line 392) | func (rf *Raft) apply() { method setLastLog (line 438) | func (rf *Raft) setLastLog(req *AppendEntries) { method isOldRequest (line 445) | func (rf *Raft) isOldRequest(req *AppendEntries) bool { method resetCandidateTimer (line 457) | func (rf *Raft) resetCandidateTimer() { method persist (line 463) | func (rf *Raft) persist() { method readPersist (line 486) | func (rf *Raft) readPersist(data []byte) { method RequestVote (line 517) | func (rf *Raft) RequestVote(req *RequestVoteArgs, reply *RequestVoteRe... method Vote (line 547) | func (rf *Raft) Vote() { method ElectionLoop (line 600) | func (rf *Raft) ElectionLoop() { method RequestAppendEntries (line 624) | func (rf *Raft) RequestAppendEntries(req *AppendEntries, resp *RespEnt... method replicateLogTo (line 675) | func (rf *Raft) replicateLogTo(peer int) bool { method replicateLogNow (line 718) | func (rf *Raft) replicateLogNow() { method ReplicateLogLoop (line 727) | func (rf *Raft) ReplicateLogLoop(peer int) { method Start (line 752) | func (rf *Raft) Start(command interface{}) (index int, term int, isLea... method Kill (line 764) | func (rf *Raft) Kill() { method SaveSnapshot (line 772) | func (rf *Raft) SaveSnapshot(index int,snapshot []byte) { function Make (line 793) | func Make(peers []*labrpc.ClientEnd, me int, FILE: src/raft/test_test.go constant RaftElectionTimeout (line 20) | RaftElectionTimeout = 1000 * time.Millisecond function TestInitialElection2A (line 22) | func TestInitialElection2A(t *testing.T) { function TestReElection2A (line 50) | func TestReElection2A(t *testing.T) { function TestBasicAgree2B (line 86) | func TestBasicAgree2B(t *testing.T) { function TestFailAgree2B (line 109) | func TestFailAgree2B(t *testing.T) { function TestFailNoAgree2B (line 140) | func TestFailNoAgree2B(t *testing.T) { function TestConcurrentStarts2B (line 191) | func TestConcurrentStarts2B(t *testing.T) { function TestRejoin2B (line 292) | func TestRejoin2B(t *testing.T) { function TestBackup2B (line 330) | func TestBackup2B(t *testing.T) { function TestCount2B (line 402) | func TestCount2B(t *testing.T) { function TestPersist12C (line 512) | func TestPersist12C(t *testing.T) { function TestPersist22C (line 558) | func TestPersist22C(t *testing.T) { function TestPersist32C (line 604) | func TestPersist32C(t *testing.T) { function TestFigure82C (line 644) | func TestFigure82C(t *testing.T) { function TestUnreliableAgree2C (line 700) | func TestUnreliableAgree2C(t *testing.T) { function TestFigure8Unreliable2C (line 729) | func TestFigure8Unreliable2C(t *testing.T) { function internalChurn (line 784) | func internalChurn(t *testing.T, unreliable bool) { function TestReliableChurn2C (line 929) | func TestReliableChurn2C(t *testing.T) { function TestUnreliableChurn2C (line 933) | func TestUnreliableChurn2C(t *testing.T) { FILE: src/raft/util.go constant Debug (line 6) | Debug = 0 function DPrintf (line 8) | func DPrintf(format string, a ...interface{}) (n int, err error) { FILE: src/shardkv/client.go function key2shard (line 24) | func key2shard(key string) int { function nrand (line 33) | func nrand() int64 { type Clerk (line 40) | type Clerk struct method Get (line 72) | func (ck *Clerk) Get(key string) string { method PutAppend (line 107) | func (ck *Clerk) PutAppend(key string, value string, op string) { method Put (line 138) | func (ck *Clerk) Put(key string, value string) { method Append (line 141) | func (ck *Clerk) Append(key string, value string) { function MakeClerk (line 57) | func MakeClerk(masters []*labrpc.ClientEnd, make_end func(string) *labrp... FILE: src/shardkv/common.go constant OK (line 15) | OK = "OK" constant ErrNoKey (line 16) | ErrNoKey = "ErrNoKey" constant ErrWrongGroup (line 17) | ErrWrongGroup = "ErrWrongGroup" type Err (line 20) | type Err type PutAppendArgs (line 23) | type PutAppendArgs struct type PutAppendReply (line 32) | type PutAppendReply struct type GetArgs (line 37) | type GetArgs struct type GetReply (line 42) | type GetReply struct type ReqShared (line 48) | type ReqShared struct type RespShared (line 53) | type RespShared struct type RespShareds (line 61) | type RespShareds struct type ReqDeleteShared (line 65) | type ReqDeleteShared struct type RespDeleteShared (line 70) | type RespDeleteShared struct function GetGroupShards (line 75) | func GetGroupShards(Shards *[shardmaster.NShards]int, group int) map[int... function GetGroupShardsString (line 85) | func GetGroupShardsString(shards map[int][]int) (rst string ){ function GetServiceShardsString (line 98) | func GetServiceShardsString(kvs *[shardmaster.NShards] map[string]string... FILE: src/shardkv/config.go function randstring (line 20) | func randstring(n int) string { function makeSeed (line 27) | func makeSeed() int64 { function random_handles (line 35) | func random_handles(kvh []*labrpc.ClientEnd) []*labrpc.ClientEnd { type group (line 45) | type group struct type config (line 53) | type config struct method checkTimeout (line 72) | func (cfg *config) checkTimeout() { method cleanup (line 79) | func (cfg *config) cleanup() { method checklogs (line 88) | func (cfg *config) checklogs() { method mastername (line 105) | func (cfg *config) mastername(i int) string { method servername (line 111) | func (cfg *config) servername(gid int, i int) string { method makeClient (line 115) | func (cfg *config) makeClient() *Clerk { method deleteClient (line 141) | func (cfg *config) deleteClient(ck *Clerk) { method ShutdownServer (line 153) | func (cfg *config) ShutdownServer(gi int, i int) { method ShutdownGroup (line 194) | func (cfg *config) ShutdownGroup(gi int) { method StartServer (line 201) | func (cfg *config) StartServer(gi int, i int) { method StartGroup (line 261) | func (cfg *config) StartGroup(gi int) { method StartMasterServer (line 267) | func (cfg *config) StartMasterServer(i int) { method shardclerk (line 289) | func (cfg *config) shardclerk() *shardmaster.Clerk { method join (line 303) | func (cfg *config) join(gi int) { method joinm (line 307) | func (cfg *config) joinm(gis []int) { method leave (line 321) | func (cfg *config) leave(gi int) { method leavem (line 325) | func (cfg *config) leavem(gis []int) { function make_config (line 335) | func make_config(t *testing.T, n int, unreliable bool, maxraftstate int)... FILE: src/shardkv/server.go type Op (line 13) | type Op struct type ShardKV (line 20) | type ShardKV struct method println (line 47) | func (kv *ShardKV) println(args ...interface{}) { method isRepeated (line 53) | func (kv *ShardKV) isRepeated(client int64,msgId int64) bool { method cofigCompleted (line 66) | func (kv *ShardKV) cofigCompleted(Num int) bool { method setConfig (line 72) | func (kv *ShardKV) setConfig(config *shardmaster.Config) bool { method startShard (line 82) | func (kv *ShardKV) startShard(shards *RespShareds) { method startConfig (line 104) | func (kv *ShardKV) startConfig(config *shardmaster.Config) { method isTrueGroup (line 116) | func (kv *ShardKV) isTrueGroup(shard int) bool{ method opt (line 134) | func (kv *ShardKV) opt(req interface{}) (bool,interface{}) { method Get (line 151) | func (kv *ShardKV) Get(req *GetArgs, reply *GetReply) { method PutAppend (line 159) | func (kv *ShardKV) PutAppend(req *PutAppendArgs, reply *PutAppendReply) { method GetShard (line 167) | func (kv *ShardKV) GetShard(req *ReqShared, reply *RespShared) { method Kill (line 175) | func (kv *ShardKV) Kill() { method ifSaveSnapshot (line 182) | func (kv *ShardKV) ifSaveSnapshot(save bool) { method updateSnapshot (line 197) | func (kv *ShardKV) updateSnapshot(index int,data []byte) { method putAppend (line 217) | func (kv *ShardKV) putAppend(req *PutAppendArgs) Err { method get (line 237) | func (kv *ShardKV) get(req *GetArgs) (resp GetReply) { method onDeleteShards (line 255) | func (kv *ShardKV) onDeleteShards(req *ReqDeleteShared) { method DeleteShards (line 273) | func (kv *ShardKV) DeleteShards(req *ReqDeleteShared,resp *RespDeleteS... method deleteGroupShards (line 283) | func (kv *ShardKV) deleteGroupShards(config *shardmaster.Config,respSh... method onSetShard (line 301) | func (kv *ShardKV) onSetShard(resp *RespShared) { method onSetShards (line 328) | func (kv *ShardKV) onSetShards(resp *RespShareds) { method onGetShard (line 338) | func (kv *ShardKV) onGetShard(req *ReqShared) (resp RespShared) { method getNewShards (line 367) | func (kv *ShardKV) getNewShards() (map[int][]int,bool) { method onConfig (line 391) | func (kv *ShardKV) onConfig(config *shardmaster.Config) { method isReadyShards (line 404) | func (kv *ShardKV) isReadyShards(group int) bool { method isUpdateConfig (line 415) | func (kv *ShardKV) isUpdateConfig() (bool,map[int][]int) { method updateConfig (line 425) | func (kv *ShardKV) updateConfig() { method onApply (line 435) | func (kv *ShardKV) onApply(applyMsg raft.ApplyMsg) { method mainLoop (line 470) | func (kv *ShardKV) mainLoop() { method isLeader (line 489) | func (kv *ShardKV) isLeader() bool { method getShardFromOther (line 494) | func (kv *ShardKV) getShardFromOther(group int,shards []int,ch chan bo... method shardLoop (line 532) | func (kv *ShardKV) shardLoop() { function StartServer (line 577) | func StartServer(servers []*labrpc.ClientEnd, me int, persister *raft.Pe... FILE: src/shardkv/test_test.go constant linearizabilityCheckTimeout (line 13) | linearizabilityCheckTimeout = 1 * time.Second function check (line 15) | func check(t *testing.T, ck *Clerk, key string, value string) { function TestStaticShards (line 25) | func TestStaticShards(t *testing.T) { function TestJoinLeave (line 89) | func TestJoinLeave(t *testing.T) { function TestSnapshot (line 142) | func TestSnapshot(t *testing.T) { function TestMissChange (line 210) | func TestMissChange(t *testing.T) { function TestConcurrent1 (line 296) | func TestConcurrent1(t *testing.T) { function TestConcurrent2 (line 377) | func TestConcurrent2(t *testing.T) { function TestUnreliable1 (line 448) | func TestUnreliable1(t *testing.T) { function TestUnreliable2 (line 490) | func TestUnreliable2(t *testing.T) { function TestUnreliable3 (line 553) | func TestUnreliable3(t *testing.T) { function TestChallenge1Delete (line 653) | func TestChallenge1Delete(t *testing.T) { function TestChallenge1Concurrent (line 734) | func TestChallenge1Concurrent(t *testing.T) { function TestChallenge2Unaffected (line 807) | func TestChallenge2Unaffected(t *testing.T) { function TestChallenge2Partial (line 877) | func TestChallenge2Partial(t *testing.T) { FILE: src/shardmaster/client.go type Clerk (line 13) | type Clerk struct method Query (line 36) | func (ck *Clerk) Query(num int) Config { method Join (line 52) | func (ck *Clerk) Join(servers map[int][]string) { method Leave (line 71) | func (ck *Clerk) Leave(gids []int) { method Move (line 90) | func (ck *Clerk) Move(shard int, gid int) { function nrand (line 20) | func nrand() int64 { function MakeClerk (line 27) | func MakeClerk(servers []*labrpc.ClientEnd) *Clerk { FILE: src/shardmaster/common.go constant NShards (line 6) | NShards = 10 type Config (line 10) | type Config struct constant OK (line 17) | OK = "OK" type Err (line 20) | type Err type JoinArgs (line 22) | type JoinArgs struct type JoinReply (line 28) | type JoinReply struct type LeaveArgs (line 33) | type LeaveArgs struct type LeaveReply (line 39) | type LeaveReply struct type MoveArgs (line 44) | type MoveArgs struct type MoveReply (line 51) | type MoveReply struct type QueryArgs (line 56) | type QueryArgs struct type QueryReply (line 60) | type QueryReply struct function CopyGroups (line 67) | func CopyGroups(config *Config, groups map[int][]string) { function MergeGroups (line 75) | func MergeGroups(config *Config, groups map[int][]string) { function DeleteGroups (line 97) | func DeleteGroups(config *Config, groups []int) { function SortGroup (line 116) | func SortGroup(groups map[int][]string) []int { function DistributionGroups (line 126) | func DistributionGroups(config *Config) { function GetCountGroup (line 141) | func GetCountGroup(Shards *[NShards]int, group int) (rst []int) { function GetCountShards (line 151) | func GetCountShards(config *Config) map[int][]int { function SortCountShards (line 171) | func SortCountShards(shards map[int][]int) []int { function GetMaxCountShards (line 181) | func GetMaxCountShards(config *Config)(group int,rst []int) { function GetMinCountShards (line 198) | func GetMinCountShards(config *Config, without int) int { function GetSlientInfoString (line 219) | func GetSlientInfoString(Shards []int) string { function GetShardsInfoString (line 231) | func GetShardsInfoString(Shards *[NShards]int) string { function GetShardsCountInfoString (line 243) | func GetShardsCountInfoString(config *Config) string { function GetGroupCountsInfoString (line 248) | func GetGroupCountsInfoString(groups map[int][]int) string { function GetGroupsInfoString (line 264) | func GetGroupsInfoString(groups map[int][]string) string { FILE: src/shardmaster/config.go function randstring (line 16) | func randstring(n int) string { function random_handles (line 24) | func random_handles(kvh []*labrpc.ClientEnd) []*labrpc.ClientEnd { type config (line 34) | type config struct method checkTimeout (line 47) | func (cfg *config) checkTimeout() { method cleanup (line 54) | func (cfg *config) cleanup() { method LogSize (line 67) | func (cfg *config) LogSize() int { method connectUnlocked (line 80) | func (cfg *config) connectUnlocked(i int, to []int) { method connect (line 96) | func (cfg *config) connect(i int, to []int) { method disconnectUnlocked (line 104) | func (cfg *config) disconnectUnlocked(i int, from []int) { method disconnect (line 124) | func (cfg *config) disconnect(i int, from []int) { method All (line 130) | func (cfg *config) All() []int { method ConnectAll (line 138) | func (cfg *config) ConnectAll() { method partition (line 147) | func (cfg *config) partition(p1 []int, p2 []int) { method makeClient (line 164) | func (cfg *config) makeClient(to []int) *Clerk { method deleteClient (line 184) | func (cfg *config) deleteClient(ck *Clerk) { method ConnectClientUnlocked (line 196) | func (cfg *config) ConnectClientUnlocked(ck *Clerk, to []int) { method ConnectClient (line 205) | func (cfg *config) ConnectClient(ck *Clerk, to []int) { method DisconnectClientUnlocked (line 212) | func (cfg *config) DisconnectClientUnlocked(ck *Clerk, from []int) { method DisconnectClient (line 221) | func (cfg *config) DisconnectClient(ck *Clerk, from []int) { method ShutdownServer (line 228) | func (cfg *config) ShutdownServer(i int) { method StartServer (line 260) | func (cfg *config) StartServer(i int) { method Leader (line 299) | func (cfg *config) Leader() (bool, int) { method make_partition (line 313) | func (cfg *config) make_partition() ([]int, []int) { function make_config (line 332) | func make_config(t *testing.T, n int, unreliable bool) *config { FILE: src/shardmaster/server.go type Op (line 13) | type Op struct type ShardMaster (line 18) | type ShardMaster struct method println (line 31) | func (sm *ShardMaster) println(args ...interface{}) { method getCurrentConfig (line 38) | func (sm *ShardMaster) getCurrentConfig() Config { method getConfig (line 46) | func (sm *ShardMaster) getConfig(index int, config *Config) bool { method appendConfig (line 57) | func (sm *ShardMaster) appendConfig(config *Config) { method isRepeated (line 64) | func (sm *ShardMaster) isRepeated(client int64,msgId int64,update bool... method opt (line 78) | func (sm *ShardMaster) opt(client int64,msgId int64,req interface{}) (... method Join (line 98) | func (sm *ShardMaster) Join(args *JoinArgs, reply *JoinReply) { method Leave (line 103) | func (sm *ShardMaster) Leave(args *LeaveArgs, reply *LeaveReply) { method Move (line 108) | func (sm *ShardMaster) Move(args *MoveArgs, reply *MoveReply) { method Query (line 113) | func (sm *ShardMaster) Query(args *QueryArgs, reply *QueryReply) { method Kill (line 126) | func (sm *ShardMaster) Kill() { method Raft (line 131) | func (sm *ShardMaster) Raft() *raft.Raft { method join (line 135) | func (sm *ShardMaster) join(args *JoinArgs) bool { method leave (line 152) | func (sm *ShardMaster) leave(args *LeaveArgs) bool { method move (line 164) | func (sm *ShardMaster) move(args *MoveArgs,) bool{ method query (line 176) | func (sm *ShardMaster) query(args *QueryArgs) Config { method onApply (line 183) | func (sm *ShardMaster)onApply(applyMsg raft.ApplyMsg) { method mainLoop (line 205) | func (sm *ShardMaster) mainLoop() { function StartServer (line 220) | func StartServer(servers []*labrpc.ClientEnd, me int, persister *raft.Pe... FILE: src/shardmaster/test_test.go function check (line 11) | func check(t *testing.T, groups []int, ck *Clerk) { function check_same_config (line 55) | func check_same_config(t *testing.T, c1 Config, c2 Config) { function TestBasic (line 80) | func TestBasic(t *testing.T) { function TestMulti (line 252) | func TestMulti(t *testing.T) {