This does the next step of refactoring to put a bunch of leader code into frontend rather than centralized - which will eventually be renamed to replica.
This has the benchmarks/load test passing as well as adding unit tests for the periodic read and write behavior expected by the leader.
The configuration has gotten a bit awkward, since the current clientconfig / serverconfig / trustdomainconfig doesn't directly map with the leader/replica split. Currently the frontend uses both the 'frontendaddr' from clientconfig to know which port it should bind on / the trustdomains there to know where replicas are, and the info in 'serverconfig' to do periodic flushes and batching of requests.
This does the next step of refactoring to put a bunch of leader code into
frontend
rather thancentralized
- which will eventually be renamed toreplica
.This has the
benchmarks/load
test passing as well as adding unit tests for the periodic read and write behavior expected by the leader.The configuration has gotten a bit awkward, since the current clientconfig / serverconfig / trustdomainconfig doesn't directly map with the leader/replica split. Currently the frontend uses both the 'frontendaddr' from clientconfig to know which port it should bind on / the trustdomains there to know where replicas are, and the info in 'serverconfig' to do periodic flushes and batching of requests.