Closed dqian3 closed 3 weeks ago
We also need to implement the interface between the application client and this (the protocol client). For example, the application client would need some mechanism to submit requests and receive responses. The application client would likely also be used to measure end to end latency and throughput.
In addition to submitting requests, we still need to implement the client's side of the fast path and normal path protocol., i.e. collecting and sending certificates to the replicas, and also identifying contention. We also need to finish designing and implement ways for clients to avoid starvation; i.e. retrying requests to different proxies or even directly to replicas.
Note one detail we have discussed is testing variations of how the client handles receiving 2f + 1 replies from replicas.
In (1), we potentially add latency to the "normal path", in (2) we add an overhead of messages.