▲ | jleahy 3 days ago | |
> So no RDMA? We can saturate the network interfaces of our flash boxes with our very simple Go block server, because it uses sendfile under the hood. It would be easy to switch to RDMA (it’s just a transport layer change) but right now we didn’t need to. We’ve had to make some difficult prioritisation decisions here. PRs welcome! > Implementing distributed consensus correctly from scratch is very hard - why not use some battle-tested implementations? We’re used to building things like this, trading systems are giant distributed systems with shared state operating at millions of updates per second. We also cheated, right now there is no automatic failover enabled. Failures are rare and we will only enable that post-Jepsen. If we used somebody else’s implementation we would never be able to do the multi-master stuff that we need to equalise latency for non-primary regions. > This is not true for NFSv3 and older, it tends to be stateless (no notion of open file). Even NFSv3 needs a duplicate request cache because requests are not idempotent. Idempotency of all requests is hard to achieve but rewarding. |