-
Notifications
You must be signed in to change notification settings - Fork 27
Home
The Controller
receives clients' requests, calls a Timeouter
on each request and keeps it in the RequestPool
. If the current View
indicates that this process is the leader then the Controller
batches requests with the Batcher
, making sure first to check if the VerificationSequence
has changed and if so it verifies each request. Then with the help of the Assembler
it builds a new Proposal
which is then proposed to the current view.
The View
runs all three phases of the normal path, prePrepare, prepare, and commit. If it finished successfully it delivers the decision by calling the Decider
. The View
and the RequestPool
may complain to the ViewChanger
by sending a view change message.
The ViewChanger
runs the view change protocol and informs the Controller
about the new view. The Controller
then aborts the current View
and uses the ViewBuilder
to start a new one.
The Synchronizer
is used for replication when a node is behind. It is called by the View
when it suspects that something is wrong.