NodeIDType
- FIXME: a hack(?) to use paxos just for persistent record keeping
of epoch related info at a replica coordinator. What is really
needed here is just a DB, but paxos provides similar features, so
it is handy to use even when the consensus part of it is not
really needed. When the concrete replica coordinator does need
paxos, it can conveniently just use this paxos manager.
This class is incomplete and may get deprecated.public abstract class AbstractReplicaCoordinatorPersistent<NodeIDType> extends AbstractReplicaCoordinator<NodeIDType>
app, messenger
Constructor and Description |
---|
AbstractReplicaCoordinatorPersistent(Replicable app,
JSONMessenger<NodeIDType> messenger,
Stringifiable<NodeIDType> unstringer) |
Modifier and Type | Method and Description |
---|---|
boolean |
createReplicaGroup(java.lang.String serviceName,
int epoch,
java.lang.String state,
java.util.Set<NodeIDType> nodes)
This method should return true if the replica group is successfully
created or one already exists with the same set of nodes.
|
boolean |
deleteReplicaGroup(java.lang.String serviceName,
int epoch)
This method should result in all state corresponding to serviceName being
deleted
|
protected PaxosManager<NodeIDType> |
getPaxosManager() |
java.util.Set<NodeIDType> |
getReplicaGroup(java.lang.String serviceName)
This method must return the replica group that was most recently
successfully created for the serviceName using createReplicaGroup.
|
callCallback, checkpoint, coordinateRequest, createReplicaGroup, deleteFinalState, execute, execute, execute, getAppRequestTypes, getARARNodesAsString, getARRCNodesAsString, getCallback, getCoordinatorRequestTypes, getEpoch, getFinalState, getMessenger, getMutualAuthAppRequestTypes, getMyID, getRequest, getRequest, getRequest, getStopRequest, handleIncoming, hasLargeCheckpoints, putInitialState, registerCoordination, restore, sendAllLazy, setCallback, setLargeCheckpoints, setMessenger, setStopCallback, stop
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getMutualAuthRequestTypes, getRequestTypes, getServerAuthRequestTypes
public AbstractReplicaCoordinatorPersistent(Replicable app, JSONMessenger<NodeIDType> messenger, Stringifiable<NodeIDType> unstringer)
protected PaxosManager<NodeIDType> getPaxosManager()
public boolean createReplicaGroup(java.lang.String serviceName, int epoch, java.lang.String state, java.util.Set<NodeIDType> nodes)
ReplicaCoordinator
createReplicaGroup
in interface ReplicaCoordinator<NodeIDType>
createReplicaGroup
in class AbstractReplicaCoordinator<NodeIDType>
public boolean deleteReplicaGroup(java.lang.String serviceName, int epoch)
ReplicaCoordinator
deleteReplicaGroup
in interface ReplicaCoordinator<NodeIDType>
deleteReplicaGroup
in class AbstractReplicaCoordinator<NodeIDType>
public java.util.Set<NodeIDType> getReplicaGroup(java.lang.String serviceName)
ReplicaCoordinator
getReplicaGroup
in interface ReplicaCoordinator<NodeIDType>
getReplicaGroup
in class AbstractReplicaCoordinator<NodeIDType>
serviceName
.