Actor responsible for bridging the gap between the Paxos layer and
the persistence layer.
Actor responsible for bridging the gap between the Paxos layer and
the persistence layer.
This Actor contains the necessary logic for assuring that events are only
applied to the persistence layer in order. As designed currently (on
purpose) the Paxos system will blindly deliver decisions, even if they have
already been decided. This allows nodes that are behind to catch up. Also,
there is no guarantee that events will arrive in order, so a later event
may arrive before a current event.
To accomplish this we buffer events that come before their time, only keeping
the first copy of each.
XXX: in its current form it does not wait for confirmation that an event has been
committed to disk by the persistence layer, we should really add that, but for
now this should be good enough.
Actor responsible for bridging the gap between the Paxos layer and the persistence layer.
This Actor contains the necessary logic for assuring that events are only applied to the persistence layer in order. As designed currently (on purpose) the Paxos system will blindly deliver decisions, even if they have already been decided. This allows nodes that are behind to catch up. Also, there is no guarantee that events will arrive in order, so a later event may arrive before a current event.
To accomplish this we buffer events that come before their time, only keeping the first copy of each.
XXX: in its current form it does not wait for confirmation that an event has been committed to disk by the persistence layer, we should really add that, but for now this should be good enough.