概览
pdos.csail.mit.edu/6.824/labs/…
要点
核心是要解决重试 RPC 的幂等问题
- Hint中有提示每个 client 发送 RPC 得到返回后才会发送下一个RPC。所以 kv server 维护 duplicate table( clientID -> rpcID,value)。注意这里为了防止 map 过大,以 clientID 为 key
- 单测时检查内存使用一直不通过,后来发现 Get Put 本来就是幂等的,duplicate table 可以不缓存这些 RPC 的返回值,然后就 go test 通过了