uwplse / verdi-raft

An implementation of the Raft distributed consensus protocol, verified in Coq using the Verdi framework
BSD 2-Clause "Simplified" License
183 stars 19 forks source link

Correct handling of client ids #67

Closed dwoos closed 6 years ago

dwoos commented 6 years ago

See the accompanying PR on verdi-runtime for more. Basically, in order to do request deduplication we need clients to have the same id across servers, and right now they almost definitely won't. The clients now send their client id with every request, and vard is patched to work with the new shim.

We should migrate these changes to the DiskOp shim as well. When that's done, we can also change the other versions of vard that use that shim.

palmskog commented 6 years ago

If we were using UDP for clients, it would make sense to have every message contain the client id. But since we're on TCP, a "session-based" approach where clients reveal ids when connecting makes more sense.