SYMBOL INDEX (752 symbols across 67 files) FILE: lecture/l02 PRC_threads_crawler_kv/crawler.go function Serial (line 17) | func Serial(url string, fetcher Fetcher, fetched map[string]bool) { type fetchState (line 36) | type fetchState struct function ConcurrentMutex (line 41) | func ConcurrentMutex(url string, fetcher Fetcher, f *fetchState) { function makeState (line 66) | func makeState() *fetchState { function worker (line 76) | func worker(url string, ch chan []string, fetcher Fetcher) { function master (line 85) | func master(ch chan []string, fetcher Fetcher) { function ConcurrentChannel (line 103) | func ConcurrentChannel(url string, fetcher Fetcher) { function main (line 115) | func main() { type Fetcher (line 130) | type Fetcher interface type fakeFetcher (line 136) | type fakeFetcher method Fetch (line 143) | func (f fakeFetcher) Fetch(url string) ([]string, error) { type fakeResult (line 138) | type fakeResult struct FILE: lecture/l02 PRC_threads_crawler_kv/kv.go constant OK (line 16) | OK = "OK" constant ErrNoKey (line 17) | ErrNoKey = "ErrNoKey" type Err (line 20) | type Err type PutArgs (line 22) | type PutArgs struct type PutReply (line 27) | type PutReply struct type GetArgs (line 31) | type GetArgs struct type GetReply (line 35) | type GetReply struct function connect (line 44) | func connect() *rpc.Client { function get (line 52) | func get(key string) string { function put (line 64) | func put(key string, val string) { type KV (line 79) | type KV struct method Get (line 106) | func (kv *KV) Get(args *GetArgs, reply *GetReply) error { method Put (line 121) | func (kv *KV) Put(args *PutArgs, reply *PutReply) error { function server (line 84) | func server() { function main (line 134) | func main() { FILE: src/diskv/client.go type Clerk (line 11) | type Clerk struct method Get (line 85) | func (ck *Clerk) Get(key string) string { method PutAppend (line 122) | func (ck *Clerk) PutAppend(key string, value string, op string) { method Put (line 160) | func (ck *Clerk) Put(key string, value string) { method Append (line 163) | func (ck *Clerk) Append(key string, value string) { function nrand (line 18) | func nrand() int64 { function MakeClerk (line 25) | func MakeClerk(shardmasters []string) *Clerk { function call (line 49) | func call(srv string, rpcname string, function key2shard (line 71) | func key2shard(key string) int { FILE: src/diskv/common.go constant OK (line 13) | OK = "OK" constant ErrNoKey (line 14) | ErrNoKey = "ErrNoKey" constant ErrWrongGroup (line 15) | ErrWrongGroup = "ErrWrongGroup" type Err (line 18) | type Err type PutAppendArgs (line 20) | type PutAppendArgs struct type PutAppendReply (line 30) | type PutAppendReply struct type GetArgs (line 34) | type GetArgs struct type GetReply (line 39) | type GetReply struct FILE: src/diskv/dist_test.go function port (line 10) | func port(tag string, host int) string { function NextValue (line 22) | func NextValue(prev string, val string) string { function mcleanup (line 26) | func mcleanup(sma []*shardmaster.ShardMaster) { function TestConcurretnUnreliable (line 34) | func TestConcurretnUnreliable(t *tetsing.T) { FILE: src/diskv/server.go constant Debug (line 20) | Debug = 0 function DPrintf (line 22) | func DPrintf(format string, a ...interface{}) (n int, err error) { type Op (line 29) | type Op struct type DisKV (line 33) | type DisKV struct method shardDir (line 56) | func (kv *DisKV) shardDir(shard int) string { method encodeKey (line 73) | func (kv *DisKV) encodeKey(key string) string { method decodeKey (line 77) | func (kv *DisKV) decodeKey(filename string) (string, error) { method fileGet (line 83) | func (kv *DisKV) fileGet(shard int, key string) (string, error) { method filePut (line 92) | func (kv *DisKV) filePut(shard int, key string, content string) error { method fileReadShard (line 105) | func (kv *DisKV) fileReadShard(shard int) map[string]string { method fileReplaceShard (line 130) | func (kv *DisKV) fileReplaceShard(shard int, m map[string]string) { method Get (line 138) | func (kv *DisKV) Get(args *GetArgs, reply *GetReply) error { method PutAppend (line 144) | func (kv *DisKV) PutAppend(args *PutAppendArgs, reply *PutAppendReply)... method tick (line 153) | func (kv *DisKV) tick() { method kill (line 159) | func (kv *DisKV) kill() { method isdead (line 166) | func (kv *DisKV) isdead() bool { method Setunreliable (line 171) | func (kv *DisKV) Setunreliable(what bool) { method isunreliable (line 179) | func (kv *DisKV) isunreliable() bool { function StartServer (line 198) | func StartServer(gid int64, shardmasters []string, FILE: src/diskv/test.go type tServer (line 21) | type tServer struct type tGroup (line 29) | type tGroup struct type tCluster (line 35) | type tCluster struct method newport (line 52) | func (tc *tCluster) newport() string { method start1 (line 62) | func (tc *tCluster) start1(gi int, si int) { method kill1 (line 103) | func (tc *tCluster) kill1(gi int, si int, deletefiles bool) { method cleanup (line 119) | func (tc *tCluster) cleanup() { method shardclerk (line 140) | func (tc *tCluster) shardclerk() *shardmaster.Clerk { method clerk (line 144) | func (tc *tCluster) clerk() *Clerk { method join (line 148) | func (tc *tCluster) join(gi int) { method leave (line 156) | func (tc *tCluster) leave(gi int) { method space (line 161) | func (tc *tCluster) space() int64 { function randstring (line 45) | func randstring(n int) string { function setup (line 173) | func setup(t *testing.T, tag string, ngroups int, nreplicas int, unrelia... function Test4Basic (line 239) | func Test4Basic(t *testing.T) { function Test4Move (line 296) | func Test4Move(t *testing.T) { function Test4Limp (line 354) | func Test4Limp(t *testing.T) { function doConcurrent (line 420) | func doConcurrent(t *testing.T, unreliable bool) { function Test4Concurrent (line 466) | func Test4Concurrent(t *testing.T) { function Test4ConcurrentUnreliable (line 472) | func Test4ConcurrentUnreliable(t *testing.T) { function Test5BasicPersistence (line 486) | func Test5BasicPersistence(t *testing.T) { function Test5OneRestart (line 544) | func Test5OneRestart(t *testing.T) { function Test5DiskUse (line 599) | func Test5DiskUse(t *testing.T) { function Test5AppendUse (line 696) | func Test5AppendUse(t *testing.T) { function Test5OneLostDisk (line 795) | func Test5OneLostDisk(t *testing.T) { function Test5OneLostOneDown (line 874) | func Test5OneLostOneDown(t *testing.T) { function checkAppends (line 965) | func checkAppends(t *testing.T, v string, counts []int) { function doConcurrentCrash (line 987) | func doConcurrentCrash(t *testing.T, unreliable bool) { function Test5ConcurrentCrashReliable (line 1077) | func Test5ConcurrentCrashReliable(t *testing.T) { function Test5Simultaneous (line 1086) | func Test5Simultaneous(t *testing.T) { function Test5RejoinMix1 (line 1139) | func Test5RejoinMix1(t *testing.T) { function Test5RejoinMix3 (line 1219) | func Test5RejoinMix3(t *testing.T) { FILE: src/kvpaxos/client.go type Clerk (line 9) | type Clerk struct method Get (line 66) | func (ck *Clerk) Get(key string) string { method PutAppend (line 83) | func (ck *Clerk) PutAppend(key string, value string, op string) { method Put (line 96) | func (ck *Clerk) Put(key string, value string) { method Append (line 99) | func (ck *Clerk) Append(key string, value string) { function nrand (line 13) | func nrand() int64 { function MakeClerk (line 20) | func MakeClerk(servers []string) *Clerk { function call (line 44) | func call(srv string, rpcname string, FILE: src/kvpaxos/common.go constant OK (line 4) | OK = "OK" constant ErrNoKey (line 5) | ErrNoKey = "ErrNoKey" constant ErrPending (line 6) | ErrPending = "ErrPending" constant ErrForgotten (line 7) | ErrForgotten = "ErrForgotten" constant Get (line 11) | Get = "Get" constant Put (line 12) | Put = "Put" constant Append (line 13) | Append = "Append" type Err (line 16) | type Err type PutAppendArgs (line 19) | type PutAppendArgs struct type PutAppendReply (line 30) | type PutAppendReply struct type GetArgs (line 34) | type GetArgs struct type GetReply (line 39) | type GetReply struct FILE: src/kvpaxos/server.go constant Debug (line 17) | Debug = 0 function DPrintf (line 19) | func DPrintf(format string, a ...interface{}) (n int, err error) { type Op (line 26) | type Op struct type KVPaxos (line 36) | type KVPaxos struct method apply (line 50) | func (kv *KVPaxos) apply(op *Op) { method TryDecide (line 68) | func (kv *KVPaxos) TryDecide(op Op) (Err, string) { method Get (line 126) | func (kv *KVPaxos) Get(args *GetArgs, reply *GetReply) error { method PutAppend (line 133) | func (kv *KVPaxos) PutAppend(args *PutAppendArgs, reply *PutAppendRepl... method kill (line 142) | func (kv *KVPaxos) kill() { method isdead (line 150) | func (kv *KVPaxos) isdead() bool { method setunreliable (line 155) | func (kv *KVPaxos) setunreliable(what bool) { method isunreliable (line 163) | func (kv *KVPaxos) isunreliable() bool { function StartServer (line 173) | func StartServer(servers []string, me int) *KVPaxos { FILE: src/kvpaxos/test.go function check (line 14) | func check(t *testing.T, ck *Clerk, key string, value string) { function port (line 21) | func port(tag string, host int) string { function cleanup (line 32) | func cleanup(kva []*KVPaxos) { function NextValue (line 42) | func NextValue(prev string, val string) string { function TestBasic (line 46) | func TestBasic(t *testing.T) { function TestDone (line 119) | func TestDone(t *testing.T) { function pp (line 191) | func pp(tag string, src int, dst int) string { function cleanpp (line 201) | func cleanpp(tag string, n int) { function part (line 210) | func part(t *testing.T, tag string, npaxos int, p1 []int, p2 []int, p3 [... function TestPartition (line 229) | func TestPartition(t *testing.T) { function randclerk (line 332) | func randclerk(kvh []string) *Clerk { function checkAppends (line 344) | func checkAppends(t *testing.T, v string, counts []int) { function TestUnreliable (line 366) | func TestUnreliable(t *testing.T) { function TestHole (line 521) | func TestHole(t *testing.T) { function TestManyPartition (line 612) | func TestManyPartition(t *testing.T) { FILE: src/kvraft/client.go type Clerk (line 8) | type Clerk struct method Get (line 39) | func (ck *Clerk) Get(key string) string { method PutAppend (line 55) | func (ck *Clerk) PutAppend(key string, value string, op string) { method Put (line 59) | func (ck *Clerk) Put(key string, value string) { method Append (line 62) | func (ck *Clerk) Append(key string, value string) { function nrand (line 13) | func nrand() int64 { function MakeClerk (line 20) | 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 20) | type PutAppendReply struct type GetArgs (line 25) | type GetArgs struct type GetReply (line 30) | 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 constant Debug (line 11) | Debug = 0 function DPrintf (line 13) | func DPrintf(format string, a ...interface{}) (n int, err error) { type Op (line 21) | type Op struct type KVServer (line 27) | type KVServer struct method Get (line 39) | func (kv *KVServer) Get(args *GetArgs, reply *GetReply) { method PutAppend (line 43) | func (kv *KVServer) PutAppend(args *PutAppendArgs, reply *PutAppendRep... method Kill (line 53) | func (kv *KVServer) Kill() { function StartKVServer (line 72) | func StartKVServer(servers []*labrpc.ClientEnd, me int, persister *raft.... FILE: src/kvraft/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 299) | func (rn *Network) MakeEnd(endname interface{}) *ClientEnd { method AddServer (line 318) | func (rn *Network) AddServer(servername interface{}, rs *Server) { method DeleteServer (line 325) | func (rn *Network) DeleteServer(servername interface{}) { method Connect (line 334) | func (rn *Network) Connect(endname interface{}, servername interface{}) { method Enable (line 342) | func (rn *Network) Enable(endname interface{}, enabled bool) { method GetCount (line 350) | func (rn *Network) GetCount(servername interface{}) int { method GetTotalCount (line 358) | func (rn *Network) GetTotalCount() int { function MakeNetwork (line 130) | func MakeNetwork() *Network { type Server (line 368) | type Server struct method AddService (line 380) | func (rs *Server) AddService(svc *Service) { method dispatch (line 386) | func (rs *Server) dispatch(req reqMsg) replyMsg { method GetCount (line 413) | func (rs *Server) GetCount() int { function MakeServer (line 374) | func MakeServer() *Server { type Service (line 421) | type Service struct method dispatch (line 459) | func (svc *Service) dispatch(methname string, req reqMsg) replyMsg { function MakeService (line 428) | 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 11) | func mapF(document string, value string) (res []mapreduce.KeyValue) { function reduceF (line 18) | func reduceF(key string, values []string) string { function main (line 26) | 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 16) | func mapF(filename string, contents string) []mapreduce.KeyValue { function reduceF (line 25) | func reduceF(key string, values []string) string { function main (line 33) | 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 7) | func doMap( function ihash (line 58) | func ihash(s string) int { FILE: src/mapreduce/common_reduce.go function doReduce (line 3) | 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 14) | 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/paxos/paxos.go type Fate (line 40) | type Fate constant Decided (line 43) | Decided Fate = iota + 1 constant Pending (line 44) | Pending constant Forgotten (line 45) | Forgotten type Paxos (line 48) | type Paxos struct method Prepare (line 201) | func (px *Paxos) Prepare(args *PrepareArgs, reply *PrepareReply) error { method Accept (line 218) | func (px *Paxos) Accept(args *AcceptArgs, reply *AcceptReply) error { method Decide (line 235) | func (px *Paxos) Decide(args *DecideArgs, reply *DecideReply) error { method Start (line 389) | func (px *Paxos) Start(seq int, v interface{}) { method Done (line 408) | func (px *Paxos) Done(seq int) { method UpdateDoneSeqs (line 424) | func (px *Paxos) UpdateDoneSeqs(args *SeqArgs, reply *SeqReply) error { method Max (line 474) | func (px *Paxos) Max() int { method Min (line 512) | func (px *Paxos) Min() int { method Status (line 526) | func (px *Paxos) Status(seq int) (Fate, interface{}) { method Kill (line 544) | func (px *Paxos) Kill() { method isdead (line 554) | func (px *Paxos) isdead() bool { method setunreliable (line 559) | func (px *Paxos) setunreliable(what bool) { method isunreliable (line 567) | func (px *Paxos) isunreliable() bool { type ProposerManager (line 68) | type ProposerManager struct method RunProposer (line 172) | func (proposerMgr *ProposerManager) RunProposer(seq int, v interface{}) { type AcceptorManager (line 78) | type AcceptorManager struct method GetInstance (line 187) | func (acceptorMgr *AcceptorManager) GetInstance(seq int) *Acceptor { type Acceptor (line 84) | type Acceptor struct type Proposer (line 92) | type Proposer struct method Propose (line 245) | func (proposer *Proposer) Propose() { type PrepareArgs (line 99) | type PrepareArgs struct type PrepareReply (line 104) | type PrepareReply struct type AcceptArgs (line 111) | type AcceptArgs struct type AcceptReply (line 117) | type AcceptReply struct type DecideArgs (line 122) | type DecideArgs struct type DecideReply (line 127) | type DecideReply type SeqArgs (line 129) | type SeqArgs struct type SeqReply (line 134) | type SeqReply function call (line 152) | func call(srv string, name string, args interface{}, reply interface{}) ... function Make (line 576) | func Make(peers []string, me int, rpcs *rpc.Server) *Paxos { FILE: src/paxos/test_test.go function randstring (line 14) | func randstring(n int) string { function port (line 21) | func port(tag string, host int) string { function ndecided (line 32) | func ndecided(t *testing.T, pxa []*Paxos, seq int) int { function waitn (line 51) | func waitn(t *testing.T, pxa []*Paxos, seq int, wanted int) { function waitmajority (line 68) | func waitmajority(t *testing.T, pxa []*Paxos, seq int) { function checkmax (line 72) | func checkmax(t *testing.T, pxa []*Paxos, seq int, max int) { function cleanup (line 80) | func cleanup(pxa []*Paxos) { function noTestSpeed (line 88) | func noTestSpeed(t *testing.T) { function TestBasic (line 114) | func TestBasic(t *testing.T) { function TestDeaf (line 174) | func TestDeaf(t *testing.T) { function TestForget (line 217) | func TestForget(t *testing.T) { function TestManyForget (line 299) | func TestManyForget(t *testing.T) { function TestForgetMem (line 371) | func TestForgetMem(t *testing.T) { function TestDoneMax (line 459) | func TestDoneMax(t *testing.T) { function TestRPCCount (line 503) | func TestRPCCount(t *testing.T) { function TestMany (line 578) | func TestMany(t *testing.T) { function TestOld (line 628) | func TestOld(t *testing.T) { function TestManyUnreliable (line 665) | func TestManyUnreliable(t *testing.T) { function pp (line 712) | func pp(tag string, src int, dst int) string { function cleanpp (line 722) | func cleanpp(tag string, n int) { function part (line 731) | func part(t *testing.T, tag string, npaxos int, p1 []int, p2 []int, p3 [... function TestPartition (line 753) | func TestPartition(t *testing.T) { function TestLots (line 852) | func TestLots(t *testing.T) { FILE: src/pbservice/client.go type Clerk (line 10) | type Clerk struct method Get (line 78) | func (ck *Clerk) Get(key string) string { method PutAppend (line 97) | func (ck *Clerk) PutAppend(key string, value string, op string) { method Put (line 116) | func (ck *Clerk) Put(key string, value string) { method Append (line 124) | func (ck *Clerk) Append(key string, value string) { function nrand (line 19) | func nrand() int64 { function MakeClerk (line 26) | func MakeClerk(vshost string, me string) *Clerk { function call (line 54) | func call(srv string, rpcname string, FILE: src/pbservice/common.go constant OK (line 4) | OK = "OK" constant ErrNoKey (line 5) | ErrNoKey = "ErrNoKey" constant ErrWrongServer (line 6) | ErrWrongServer = "ErrWrongServer" constant Put (line 10) | Put = "Put" constant Append (line 11) | Append = "Append" type Err (line 14) | type Err type PutAppendArgs (line 17) | type PutAppendArgs struct type PutAppendReply (line 30) | type PutAppendReply struct type GetArgs (line 34) | type GetArgs struct type GetReply (line 39) | type GetReply struct type BackupArgs (line 44) | type BackupArgs struct type BackupReply (line 50) | type BackupReply struct FILE: src/pbservice/server.go constant RoleNull (line 17) | RoleNull = 0 constant RolePrimary (line 18) | RolePrimary = 1 constant RoleBackup (line 19) | RoleBackup = 2 type PBServer (line 22) | type PBServer struct method LocalOp (line 42) | func (pb *PBServer) LocalOp(args *PutAppendArgs) { method BackupOp (line 53) | func (pb *PBServer) BackupOp(args *PutAppendArgs, reply *PutAppendRepl... method LocalPut (line 74) | func (pb *PBServer) LocalPut(key string, value string) { method LocalAppend (line 78) | func (pb *PBServer) LocalAppend(key string, value string) { method Backup (line 86) | func (pb *PBServer) Backup(args *BackupArgs, reply *BackupReply) error { method Get (line 97) | func (pb *PBServer) Get(args *GetArgs, reply *GetReply) error { method PutAppend (line 128) | func (pb *PBServer) PutAppend(args *PutAppendArgs, reply *PutAppendRep... method Replicate (line 182) | func (pb *PBServer) Replicate() { method tick (line 208) | func (pb *PBServer) tick() { method kill (line 256) | func (pb *PBServer) kill() { method isdead (line 262) | func (pb *PBServer) isdead() bool { method setunreliable (line 267) | func (pb *PBServer) setunreliable(what bool) { method isunreliable (line 275) | func (pb *PBServer) isunreliable() bool { function StartServer (line 279) | func StartServer(vshost string, me string) *PBServer { FILE: src/pbservice/test.go function check (line 18) | func check(ck *Clerk, key string, value string) { function port (line 25) | func port(tag string, host int) string { function TestBasicFail (line 36) | func TestBasicFail(t *testing.T) { function TestAtMostOnce (line 178) | func TestAtMostOnce(t *testing.T) { function TestFailPut (line 232) | func TestFailPut(t *testing.T) { function TestConcurrentSame (line 321) | func TestConcurrentSame(t *testing.T) { function checkAppends (line 419) | func checkAppends(t *testing.T, v string, counts []int) { function TestConcurrentSameAppend (line 444) | func TestConcurrentSameAppend(t *testing.T) { function TestConcurrentSameUnreliable (line 551) | func TestConcurrentSameUnreliable(t *testing.T) { function TestRepeatedCrash (line 666) | func TestRepeatedCrash(t *testing.T) { function TestRepeatedCrashUnreliable (line 778) | func TestRepeatedCrashUnreliable(t *testing.T) { function proxy (line 890) | func proxy(t *testing.T, port string, delay *int32) { function TestPartition1 (line 950) | func TestPartition1(t *testing.T) { function TestPartition2 (line 1044) | func TestPartition2(t *testing.T) { 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 type ApplyMsg (line 39) | type ApplyMsg struct type Raft (line 48) | type Raft struct method GetState (line 62) | func (rf *Raft) GetState() (int, bool) { method persist (line 76) | func (rf *Raft) persist() { method readPersist (line 91) | func (rf *Raft) readPersist(data []byte) { method RequestVote (line 132) | func (rf *Raft) RequestVote(args *RequestVoteArgs, reply *RequestVoteR... method sendRequestVote (line 165) | func (rf *Raft) sendRequestVote(server int, args *RequestVoteArgs, rep... method Start (line 185) | func (rf *Raft) Start(command interface{}) (int, int, bool) { method Kill (line 202) | func (rf *Raft) Kill() { type RequestVoteArgs (line 117) | type RequestVoteArgs struct type RequestVoteReply (line 125) | type RequestVoteReply struct function Make (line 217) | 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 22) | func key2shard(key string) int { function nrand (line 31) | func nrand() int64 { type Clerk (line 38) | type Clerk struct method Get (line 68) | func (ck *Clerk) Get(key string) string { method PutAppend (line 101) | func (ck *Clerk) PutAppend(key string, value string, op string) { method Put (line 130) | func (ck *Clerk) Put(key string, value string) { method Append (line 133) | func (ck *Clerk) Append(key string, value string) { function MakeClerk (line 54) | func MakeClerk(masters []*labrpc.ClientEnd, make_end func(string) *labrp... FILE: src/shardkv/common.go constant OK (line 13) | OK = "OK" constant ErrNoKey (line 14) | ErrNoKey = "ErrNoKey" constant ErrWrongGroup (line 15) | ErrWrongGroup = "ErrWrongGroup" type Err (line 18) | type Err type PutAppendArgs (line 21) | type PutAppendArgs struct type PutAppendReply (line 31) | type PutAppendReply struct type GetArgs (line 36) | type GetArgs struct type GetReply (line 41) | type GetReply struct 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 12) | type Op struct type ShardKV (line 18) | type ShardKV struct method Get (line 32) | func (kv *ShardKV) Get(args *GetArgs, reply *GetReply) { method PutAppend (line 36) | func (kv *ShardKV) PutAppend(args *PutAppendArgs, reply *PutAppendRepl... method Kill (line 46) | func (kv *ShardKV) Kill() { function StartServer (line 80) | 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 12) | type Clerk struct method Query (line 56) | func (ck *Clerk) Query(num int) Config { method Join (line 72) | func (ck *Clerk) Join(gid int64, servers []string) { method Leave (line 89) | func (ck *Clerk) Leave(gid int64) { method Move (line 105) | func (ck *Clerk) Move(shard int, gid int64) { function MakeClerk (line 16) | func MakeClerk(servers []string) *Clerk { function call (line 39) | func call(srv string, rpcname string, FILE: src/shardmaster/common.go constant NShards (line 21) | NShards = 10 type Config (line 25) | type Config struct constant OK (line 32) | OK = "OK" type Err (line 35) | type Err type JoinArgs (line 37) | type JoinArgs struct type JoinReply (line 41) | type JoinReply struct type LeaveArgs (line 46) | type LeaveArgs struct type LeaveReply (line 50) | type LeaveReply struct type MoveArgs (line 55) | type MoveArgs struct type MoveReply (line 60) | type MoveReply struct type QueryArgs (line 65) | type QueryArgs struct type QueryReply (line 69) | type QueryReply struct 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 ShardMaster (line 20) | type ShardMaster struct method join (line 73) | func (sm *ShardMaster) join(op *Op) { method leave (line 160) | func (sm *ShardMaster) leave(op *Op) { method move (line 242) | func (sm *ShardMaster) move(op *Op) { method query (line 272) | func (sm *ShardMaster) query(op *Op) interface{} { method apply (line 314) | func (sm *ShardMaster) apply(op *Op) { method TryDecide (line 331) | func (sm *ShardMaster) TryDecide(op Op) error { method Join (line 372) | func (sm *ShardMaster) Join(args *JoinArgs, reply *JoinReply) error { method Leave (line 385) | func (sm *ShardMaster) Leave(args *LeaveArgs, reply *LeaveReply) error { method Move (line 397) | func (sm *ShardMaster) Move(args *MoveArgs, reply *MoveReply) error { method Query (line 409) | func (sm *ShardMaster) Query(args *QueryArgs, reply *QueryReply) error { method Kill (line 422) | func (sm *ShardMaster) Kill() { method isdead (line 429) | func (sm *ShardMaster) isdead() bool { method setunreliable (line 434) | func (sm *ShardMaster) setunreliable(what bool) { method isunreliable (line 442) | func (sm *ShardMaster) isunreliable() bool { type GroupShardsNumSlice (line 38) | type GroupShardsNumSlice method Len (line 50) | func (s GroupShardsNumSlice) Len() int { return len(s) } method Swap (line 51) | func (s GroupShardsNumSlice) Swap(i, j int) { s[i], s[j] = s[j], ... method Less (line 52) | func (s GroupShardsNumSlice) Less(i, j int) bool { return s[i].num < s... type GroupShardsNum (line 40) | type GroupShardsNum struct type ShardGid (line 45) | type ShardGid struct type Op (line 54) | type Op struct constant OP_JOIN (line 66) | OP_JOIN = "join" constant OP_LEAVE (line 67) | OP_LEAVE = "leave" constant OP_MOVE (line 68) | OP_MOVE = "move" constant OP_QUERY (line 69) | OP_QUERY = "query" function getGroupsSize (line 283) | func getGroupsSize(nShards, groupsNum int) []int { function copyCfg (line 298) | func copyCfg(lastCfg Config) Config { function nrand (line 307) | func nrand() int64 { function StartServer (line 452) | func StartServer(servers []string, me int) *ShardMaster { 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) { FILE: src/viewservice/client.go type Clerk (line 10) | type Clerk struct method Ping (line 56) | func (ck *Clerk) Ping(viewnum uint) (View, error) { method Get (line 72) | func (ck *Clerk) Get() (View, bool) { method Primary (line 82) | func (ck *Clerk) Primary() string { function MakeClerk (line 15) | func MakeClerk(me string, server string) *Clerk { function call (line 39) | func call(srv string, rpcname string, FILE: src/viewservice/common.go type View (line 36) | type View struct constant PingInterval (line 44) | PingInterval = time.Millisecond * 100 constant DeadPings (line 48) | DeadPings = 5 type PingArgs (line 60) | type PingArgs struct type PingReply (line 65) | type PingReply struct type GetArgs (line 75) | type GetArgs struct type GetReply (line 78) | type GetReply struct FILE: src/viewservice/server.go type ViewServer (line 12) | type ViewServer struct method Ping (line 29) | func (vs *ViewServer) Ping(args *PingArgs, reply *PingReply) error { method Get (line 82) | func (vs *ViewServer) Get(args *GetArgs, reply *GetReply) error { method tick (line 93) | func (vs *ViewServer) tick() { method Kill (line 147) | func (vs *ViewServer) Kill() { method isdead (line 155) | func (vs *ViewServer) isdead() bool { method GetRPCCount (line 160) | func (vs *ViewServer) GetRPCCount() int32 { function StartServer (line 164) | func StartServer(me string) *ViewServer { FILE: src/viewservice/test.go function check (line 11) | func check(t *testing.T, ck *Clerk, p string, b string, n uint) { function port (line 27) | func port(suffix string) string { function Test1 (line 37) | func Test1(t *testing.T) {