... | ... | @@ -100,6 +100,8 @@ An example sequence of view changes: |
|
|
|
|
|
The above example is overspecified; for example, when the view server gets `Ping(1)` from S1 for the first time, it is also OK for it to return view 1, as long as it eventually switches to view 2 (which includes S2).
|
|
|
|
|
|
It is important to note that servers may not immediately switch to the new view returned by the view servers. For example, S1 could continue sending `Ping(0)` even if the view server returns View 1. This indicates that the server is not ready to move into the new view, which will be important for Part B of this lab. The view server should not consider the view to be acknowledged until the primary sends a ping with the view number (i.e., S1 sends `Ping(1)`).
|
|
|
|
|
|
We provide you with a complete `client.go` and appropriate RPC definitions in `common.go`. Your job is to supply the needed code in `server.go`. When you're done, you should pass all the viewservice tests:
|
|
|
|
|
|
```shell
|
... | ... | |