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, stopclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetMutualAuthRequestTypes, getRequestTypes, getServerAuthRequestTypespublic 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)
ReplicaCoordinatorcreateReplicaGroup in interface ReplicaCoordinator<NodeIDType>createReplicaGroup in class AbstractReplicaCoordinator<NodeIDType>public boolean deleteReplicaGroup(java.lang.String serviceName,
int epoch)
ReplicaCoordinatordeleteReplicaGroup in interface ReplicaCoordinator<NodeIDType>deleteReplicaGroup in class AbstractReplicaCoordinator<NodeIDType>public java.util.Set<NodeIDType> getReplicaGroup(java.lang.String serviceName)
ReplicaCoordinatorgetReplicaGroup in interface ReplicaCoordinator<NodeIDType>getReplicaGroup in class AbstractReplicaCoordinator<NodeIDType>serviceName.