弥补大学遗憾系列 - mit 6.5840 2024(原6.824)- Lab2 KV Server

114 阅读1分钟

概览

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 通过了