
public class ODistributedResponseManager extends Object
| 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) |
| Modifier and Type | Method and Description |
|---|---|
protected boolean |
checkNoWinnerCase(List<ODistributedResponse> bestResponsesGroup) |
boolean |
collectResponse(ODistributedResponse response)
Not synchronized, it's called when a message arrives
|
protected boolean |
fixNodesInConflict(List<ODistributedResponse> bestResponsesGroup,
int conflicts) |
protected int |
getBestResponsesGroup()
Returns the biggest response group.
|
protected List<ODistributedResponse> |
getConflictResponses()
Returns all the responses 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() |
protected List<ODistributedResponse> |
getReceivedResponses()
Returns the received response objects.
|
protected int |
getReceivedResponsesCount() |
List<String> |
getRespondingNodes()
Returns the list of node names that provided a response.
|
long |
getSentOn() |
long |
getSynchTimeout() |
protected long |
getTotalTimeout() |
protected boolean |
isMinimumQuorumReached() |
boolean |
isReceivedCurrentNode() |
boolean |
isWaitForLocalNode() |
protected RuntimeException |
manageConflicts() |
ODistributedResponse |
merge(ODistributedResponse merged) |
void |
notifyWaiters() |
void |
timeout() |
protected void |
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)
public boolean collectResponse(ODistributedResponse response)
response - Received response to collectpublic void notifyWaiters()
public ODistributedRequestId getMessageId()
public long getSentOn()
public ODistributedResponse merge(ODistributedResponse merged)
public int getQuorum()
public boolean waitForSynchronousResponses()
throws InterruptedException
InterruptedExceptionpublic boolean isWaitForLocalNode()
public boolean isReceivedCurrentNode()
public ODistributedResponse getFinalResponse()
public String getDatabaseName()
public long getSynchTimeout()
public void timeout()
public List<String> getMissingNodes()
public List<String> getRespondingNodes()
protected List<ODistributedResponse> getConflictResponses()
protected int getExpectedResponses()
protected int getMissingResponses()
protected int getReceivedResponsesCount()
protected long getTotalTimeout()
protected int getBestResponsesGroup()
protected boolean isMinimumQuorumReached()
protected List<ODistributedResponse> getReceivedResponses()
protected RuntimeException manageConflicts()
protected void undoRequest()
protected boolean fixNodesInConflict(List<ODistributedResponse> bestResponsesGroup, int conflicts)
protected boolean checkNoWinnerCase(List<ODistributedResponse> bestResponsesGroup)
Copyright © 2009–2016 Orient Technologies. All rights reserved.