
The primary goal of the PolicyEngine is to encapsulate the potential complex computation of the TransitionGraph[1] from the CurrentClusterState[2].
The PolicyEngine does not do any network IO, it only runs this algorithm.
The ClusterResourceManager[3] starts the PolicyEngine on demand, or when becomes DesignatedCoordinator[4].
The PolicyEngine starts up and signs in with the ClusterResourceManager[3]. This stage verifies the version numbers et cetera.
The PolicyEngine waits for orders from the ClusterResourceManager[3].
Either a ClusterInformationBase[5] dump requesting a computation of a transition graph.
The answer is sent back to the ClusterResourceManager[3].
In case of the shutdown request, this message signs us out from the ClusterResourceManager[3].
Otherwise, we sent back the TransitionGraph[1].
To ease testing, the PolicyEngine shall have a commandline mode which only reads the ClusterInformationBase[5] dump from stdin and outputs the TransitionGraph[1] on stdout.
AndrewBeekhof[7]: It would be nice if we could give you a ClusterInformationBase[5] dump (possibly minus StateInformation[8]) and the PolicyEngine gave a yes or no answer as to whether it was solvable/valid. We could then decide if an AdministrationUpdate[9] was ok to apply to the ClusterInformationBase[5].
| [1] | http://www.linux-ha.org/TransitionGraph |
| [2] | http://www.linux-ha.org/CurrentClusterState |
| [3] | http://www.linux-ha.org/ClusterResourceManager |
| [4] | http://www.linux-ha.org/DesignatedCoordinator |
| [5] | http://www.linux-ha.org/ClusterInformationBase |
| [6] | http://www.linux-ha.org/PolicyEngineComputation |
| [7] | http://www.linux-ha.org/AndrewBeekhof |
| [8] | http://www.linux-ha.org/StateInformation |
| [9] | http://www.linux-ha.org/AdministrationUpdate |
This information provided courtesy of the Linux-HA project at http://linux-ha.org/