
public class ODistributedResponseManagerImpl extends java.lang.Object implements ODistributedResponseManager
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 |
|---|
ODistributedResponseManagerImpl(ODistributedServerManager iManager,
ODistributedRequest iRequest,
java.util.Collection<java.lang.String> expectedResponses,
java.util.Set<java.lang.String> iNodesConcurInQuorum,
int iTotalExpectedResponses,
int iQuorum,
boolean iWaitForLocalNode,
long iSynchTimeout,
long iTotalTimeout,
boolean iGroupResponsesByResult) |
| Modifier and Type | Method and Description |
|---|---|
void |
cancel() |
protected boolean |
checkNoWinnerCase(java.util.List<ODistributedResponse> bestResponsesGroup) |
boolean |
collectResponse(ODistributedResponse response)
Not synchronized, it's called when a message arrives
|
protected int |
getBestResponsesGroup()
Returns the biggest response group.
|
protected java.util.List<ODistributedResponse> |
getConflictResponses()
Returns all the responses in conflict.
|
java.lang.String |
getDatabaseName() |
java.util.Set<java.lang.String> |
getExpectedNodes() |
protected int |
getExpectedResponses() |
ODistributedResponse |
getFinalResponse() |
ODistributedRequestId |
getMessageId() |
java.util.List<java.lang.String> |
getMissingNodes()
Returns the list of node names that didn't provide a response.
|
int |
getQuorum() |
protected java.util.List<ODistributedResponse> |
getReceivedResponses()
Returns the received response objects.
|
java.util.List<java.lang.String> |
getRespondingNodes()
Returns the list of node names that provided a response.
|
long |
getSentOn() |
long |
getSynchTimeout() |
boolean |
isFinished() |
protected boolean |
isMinimumQuorumReached(boolean reachedTimeout) |
boolean |
isReceivedCurrentNode() |
boolean |
isWaitForLocalNode() |
protected java.lang.RuntimeException |
manageConflicts() |
void |
removeServerBecauseUnreachable(java.lang.String node) |
boolean |
setLocalResult(java.lang.String localNodeName,
java.lang.Object localResult) |
void |
timeout() |
boolean |
waitForSynchronousResponses()
Waits until the minimum responses are collected or timeout occurs.
|
public static final int ADDITIONAL_TIMEOUT_CLUSTER_SHAPE
public ODistributedResponseManagerImpl(ODistributedServerManager iManager, ODistributedRequest iRequest, java.util.Collection<java.lang.String> expectedResponses, java.util.Set<java.lang.String> iNodesConcurInQuorum, int iTotalExpectedResponses, int iQuorum, boolean iWaitForLocalNode, long iSynchTimeout, long iTotalTimeout, boolean iGroupResponsesByResult)
public boolean collectResponse(ODistributedResponse response)
collectResponse in interface ODistributedResponseManagerresponse - Received response to collectpublic ODistributedRequestId getMessageId()
getMessageId in interface ODistributedResponseManagerpublic long getSentOn()
getSentOn in interface ODistributedResponseManagerpublic boolean setLocalResult(java.lang.String localNodeName,
java.lang.Object localResult)
setLocalResult in interface ODistributedResponseManagerlocalNodeName - localResult - public void removeServerBecauseUnreachable(java.lang.String node)
removeServerBecauseUnreachable in interface ODistributedResponseManagerpublic int getQuorum()
getQuorum in interface ODistributedResponseManagerpublic boolean waitForSynchronousResponses()
throws java.lang.InterruptedException
waitForSynchronousResponses in interface ODistributedResponseManagerjava.lang.InterruptedExceptionpublic boolean isWaitForLocalNode()
public boolean isReceivedCurrentNode()
public ODistributedResponse getFinalResponse()
getFinalResponse in interface ODistributedResponseManagerpublic java.lang.String getDatabaseName()
getDatabaseName in interface ODistributedResponseManagerpublic long getSynchTimeout()
getSynchTimeout in interface ODistributedResponseManagerpublic void timeout()
timeout in interface ODistributedResponseManagerpublic void cancel()
cancel in interface ODistributedResponseManagerpublic java.util.List<java.lang.String> getMissingNodes()
getMissingNodes in interface ODistributedResponseManagerpublic java.util.Set<java.lang.String> getExpectedNodes()
getExpectedNodes in interface ODistributedResponseManagerpublic java.util.List<java.lang.String> getRespondingNodes()
getRespondingNodes in interface ODistributedResponseManagerprotected java.util.List<ODistributedResponse> getConflictResponses()
protected int getExpectedResponses()
public boolean isFinished()
isFinished in interface ODistributedResponseManagerprotected int getBestResponsesGroup()
protected boolean isMinimumQuorumReached(boolean reachedTimeout)
protected java.util.List<ODistributedResponse> getReceivedResponses()
protected java.lang.RuntimeException manageConflicts()
protected boolean checkNoWinnerCase(java.util.List<ODistributedResponse> bestResponsesGroup)
Copyright © 2009–2022 OrientDB. All rights reserved.