
public class ODistributedResponseManager extends Object
TODO: - set flags during collecting of response for fast computation on checking for the status
| Modifier and Type | Field and Description |
|---|---|
static int |
ADDITIONAL_TIMEOUT_CLUSTER_SHAPE |
| Constructor and Description |
|---|
ODistributedResponseManager(ODistributedServerManager iManager,
ODistributedRequest iRequest,
Collection<String> expectedResponses,
Set<String> iNodesConcurInQuorum,
int iTotalExpectedResponses,
int iQuorum,
boolean iWaitForLocalNode,
long iSynchTimeout,
long iTotalTimeout,
boolean iGroupResponsesByResult,
OCallable<Void,ODistributedResponseManager> endCallback) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
addFollowupToServer(String server) |
void |
cancel() |
protected boolean |
checkNoWinnerCase(List<ODistributedResponse> bestResponsesGroup) |
boolean |
collectResponse(ODistributedResponse response)
Not synchronized, it's called when a message arrives
|
boolean |
executeInLock(OCallable<Boolean,ODistributedResponseManager> callback) |
protected boolean |
fixNodesInConflict(List<ODistributedResponse> bestResponsesGroup,
int conflicts,
boolean cannotFixRecordLockException) |
protected int |
getBestResponsesGroup()
Returns the biggest response group.
|
protected List<ODistributedResponse> |
getConflictResponses()
Returns all the responses in conflict.
|
List<String> |
getConflictServers()
Returns all the servers in conflict.
|
String |
getDatabaseName() |
Set<String> |
getExpectedNodes() |
protected int |
getExpectedResponses() |
ODistributedResponse |
getFinalResponse() |
ODistributedRequestId |
getMessageId() |
List<String> |
getMissingNodes()
Returns the list of node names that didn't provide a response.
|
protected int |
getMissingResponses() |
int |
getQuorum() |
ODistributedResponse |
getQuorumResponse() |
protected List<ODistributedResponse> |
getReceivedResponses()
Returns the received response objects.
|
protected int |
getReceivedResponsesCount() |
ODistributedRequest |
getRequest() |
List<String> |
getRespondingNodes()
Returns the list of node names that provided a response.
|
Object |
getResponseFromServer(String s) |
long |
getSentOn() |
Set<String> |
getServersWithoutFollowup() |
long |
getSynchTimeout() |
protected long |
getTotalTimeout() |
boolean |
isCanceled() |
protected boolean |
isMinimumQuorumReached(boolean reachedTimeout) |
boolean |
isReceivedCurrentNode() |
boolean |
isSynchronousWaiting() |
boolean |
isWaitForLocalNode() |
protected RuntimeException |
manageConflicts() |
void |
removeServerBecauseUnreachable(String node) |
boolean |
setLocalResult(String localNodeName,
Object localResult) |
void |
timeout() |
protected boolean |
undoRequest() |
boolean |
waitForSynchronousResponses()
Waits until the minimum responses are collected or timeout occurs.
|
public static final int ADDITIONAL_TIMEOUT_CLUSTER_SHAPE
public ODistributedResponseManager(ODistributedServerManager iManager, ODistributedRequest iRequest, Collection<String> expectedResponses, Set<String> iNodesConcurInQuorum, int iTotalExpectedResponses, int iQuorum, boolean iWaitForLocalNode, long iSynchTimeout, long iTotalTimeout, boolean iGroupResponsesByResult, OCallable<Void,ODistributedResponseManager> endCallback)
public boolean collectResponse(ODistributedResponse response)
response - Received response to collectpublic ODistributedRequestId getMessageId()
public long getSentOn()
public boolean setLocalResult(String localNodeName, Object localResult)
localNodeName - localResult - public boolean isSynchronousWaiting()
public void removeServerBecauseUnreachable(String node)
public int getQuorum()
public boolean waitForSynchronousResponses()
throws InterruptedException
InterruptedExceptionpublic boolean executeInLock(OCallable<Boolean,ODistributedResponseManager> callback)
public boolean isWaitForLocalNode()
public boolean isReceivedCurrentNode()
public ODistributedResponse getFinalResponse()
public String getDatabaseName()
public long getSynchTimeout()
public void timeout()
public boolean isCanceled()
public void cancel()
public List<String> getMissingNodes()
public boolean addFollowupToServer(String server)
public ODistributedResponse getQuorumResponse()
public List<String> getRespondingNodes()
public ODistributedRequest getRequest()
protected List<ODistributedResponse> getConflictResponses()
protected int getExpectedResponses()
protected int getMissingResponses()
protected int getReceivedResponsesCount()
protected long getTotalTimeout()
protected int getBestResponsesGroup()
protected boolean isMinimumQuorumReached(boolean reachedTimeout)
protected List<ODistributedResponse> getReceivedResponses()
protected RuntimeException manageConflicts()
protected boolean undoRequest()
protected boolean fixNodesInConflict(List<ODistributedResponse> bestResponsesGroup, int conflicts, boolean cannotFixRecordLockException)
protected boolean checkNoWinnerCase(List<ODistributedResponse> bestResponsesGroup)
Copyright © 2009–2025 OrientDB. All rights reserved.