... | ... | @@ -100,7 +100,7 @@ First you'll implement the shard master, in `shardmaster/server.go`. When you're |
|
|
done, you should pass all the tests in the shardmaster directory (after ignoring
|
|
|
Go's many complaints):
|
|
|
|
|
|
```sh
|
|
|
```
|
|
|
$ cd $GOPATH/src/shardmaster
|
|
|
$ go test
|
|
|
Test: Basic leave/join ...
|
... | ... | @@ -228,7 +228,7 @@ part of your support for dealing with duplicate client RPCs, much as in the |
|
|
kvpaxos lab.
|
|
|
|
|
|
When you're done your code should pass the shardkv tests:
|
|
|
```sh
|
|
|
```
|
|
|
$ cd $GOPATH/src/shardkv
|
|
|
$ go test
|
|
|
Test: Basic Join/Leave ...
|
... | ... | @@ -278,9 +278,9 @@ the keys and values for some shards. |
|
|
|
|
|
**Hint:** call `px.Done()` to let Paxos free old parts of its log.
|
|
|
|
|
|
**Hint:** When the test fails, check for gob error (e.g. `rpc: writing response:
|
|
|
gob: type not registered for interface ...`) in the log because go doesn't
|
|
|
consider the error fatal, although it is fatal for the lab.
|
|
|
**Hint:** When the test fails, check for gob error (e.g.
|
|
|
`rpc: writing response: gob: type not registered for interface ...`) in the log
|
|
|
because go doesn't consider the error fatal, although it is fatal for the lab.
|
|
|
|
|
|
**Hint:** Be careful about implementing at-most-once semantic for RPC. When a
|
|
|
server sends shards to another, the server needs to send the clients state as
|
... | ... | |