omnipaxos
omnipaxos copied to clipboard
OmniPaxos struct
Create a unified OmniPaxos
struct that has the BLE and SequencePaxos structs as private fields instead.
We previously had separated BLE and SequencePaxos as described in the pseudo code. However, this is not necessary. This change will be another step towards making OmniPaxos appear as a log. The user will only interact with one struct, and we can do the leader change logic internally.
What needs to be considered is how we do the outgoing message queues. Using a single message queue for both BLE and SequencePaxos messages is nice from the user's perspective, but then we need to ensure that heartbeats don't get queued up behind a bunch of replication messages. One approach is to piggyback the heartbeats with the replication messages.
This will also enable having a single logical clock and make it easier to implement #33