public abstract class AbstractWriteResponseHandler<T> extends java.lang.Object implements RequestCallback<T>
Modifier and Type | Field and Description |
---|---|
protected java.lang.Runnable |
callback |
protected static org.slf4j.Logger |
logger |
protected ReplicaPlan.ForTokenWrite |
replicaPlan |
protected WriteType |
writeType |
Modifier | Constructor and Description |
---|---|
protected |
AbstractWriteResponseHandler(ReplicaPlan.ForTokenWrite replicaPlan,
java.lang.Runnable callback,
WriteType writeType,
long queryStartNanoTime) |
Modifier and Type | Method and Description |
---|---|
protected abstract int |
ackCount() |
protected int |
blockFor() |
protected int |
candidateReplicaCount()
TODO: this method is brittle for its purpose of deciding when we should fail a query;
this needs to be aware of which nodes are live/down
|
ConsistencyLevel |
consistencyLevel() |
long |
currentTimeoutNanos() |
void |
expired() |
void |
get() |
long |
getQueryStartNanoTime() |
boolean |
invokeOnFailure() |
protected void |
logFailureOrTimeoutToIdealCLDelegate() |
protected void |
logResponseToIdealCLDelegate(Message<T> m)
This logs the response but doesn't do any further processing related to this write response handler
on whether the CL was achieved.
|
void |
maybeTryAdditionalReplicas(IMutation mutation,
StorageProxy.WritePerformer writePerformer,
java.lang.String localDC)
Cheap Quorum backup.
|
void |
onFailure(InetAddressAndPort from,
RequestFailureReason failureReason)
Called when there is an exception on the remote node or timeout happens
|
abstract void |
onResponse(Message<T> msg)
null message means "response from local write"
|
void |
setIdealCLResponseHandler(AbstractWriteResponseHandler handler)
Set a delegate ideal CL write response handler.
|
protected void |
signal() |
protected boolean |
waitingFor(InetAddressAndPort from) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
trackLatencyForSnitch
protected static final org.slf4j.Logger logger
protected final ReplicaPlan.ForTokenWrite replicaPlan
protected final java.lang.Runnable callback
protected final WriteType writeType
protected AbstractWriteResponseHandler(ReplicaPlan.ForTokenWrite replicaPlan, java.lang.Runnable callback, WriteType writeType, long queryStartNanoTime)
callback
- A callback to be called when the write is successful.queryStartNanoTime
- public void get() throws WriteTimeoutException, WriteFailureException
public final long currentTimeoutNanos()
public void setIdealCLResponseHandler(AbstractWriteResponseHandler handler)
protected final void logResponseToIdealCLDelegate(Message<T> m)
protected final void logFailureOrTimeoutToIdealCLDelegate()
public final void expired()
protected int blockFor()
protected int candidateReplicaCount()
public ConsistencyLevel consistencyLevel()
protected boolean waitingFor(InetAddressAndPort from)
protected abstract int ackCount()
public long getQueryStartNanoTime()
public abstract void onResponse(Message<T> msg)
onResponse
in interface RequestCallback<T>
msg
- response received.protected void signal()
public void onFailure(InetAddressAndPort from, RequestFailureReason failureReason)
RequestCallback
onFailure
in interface RequestCallback<T>
public boolean invokeOnFailure()
invokeOnFailure
in interface RequestCallback<T>
public void maybeTryAdditionalReplicas(IMutation mutation, StorageProxy.WritePerformer writePerformer, java.lang.String localDC)
Copyright © 2009- The Apache Software Foundation