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,
int iExpectedSynchronousResponses,
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 void |
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() |
int |
getExpectedSynchronousResponses() |
ODistributedResponse |
getFinalResponse() |
long |
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() |
protected long |
getTotalTimeout() |
protected boolean |
isMinimumQuorumReached(boolean iCheckAvailableNodes) |
boolean |
isReceivedCurrentNode() |
boolean |
isWaitForLocalNode() |
protected void |
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, int iExpectedSynchronousResponses, int iQuorum, boolean iWaitForLocalNode, long iSynchTimeout, long iTotalTimeout, boolean iGroupResponsesByResult)
public boolean collectResponse(ODistributedResponse response)
response
- Received response to collectpublic void notifyWaiters()
public long getMessageId()
public long getSentOn()
public ODistributedResponse merge(ODistributedResponse merged)
public int getExpectedSynchronousResponses()
public int getQuorum()
public boolean waitForSynchronousResponses() throws InterruptedException
InterruptedException
public boolean isWaitForLocalNode()
public boolean isReceivedCurrentNode()
public ODistributedResponse getFinalResponse()
public String getDatabaseName()
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(boolean iCheckAvailableNodes)
protected List<ODistributedResponse> getReceivedResponses()
protected void manageConflicts()
protected void undoRequest()
protected void fixNodesInConflict(List<ODistributedResponse> bestResponsesGroup, int conflicts)
protected boolean checkNoWinnerCase(List<ODistributedResponse> bestResponsesGroup)
Copyright © 2009–2015 Orient Technologies. All rights reserved.