Class PaxosPropose<OnDone extends Consumer<? super org.apache.cassandra.service.paxos.PaxosPropose.Status>>
java.lang.Object
org.apache.cassandra.service.FailureRecordingCallback<T>
org.apache.cassandra.service.paxos.PaxosRequestCallback<org.apache.cassandra.service.paxos.PaxosPropose.Response>
org.apache.cassandra.service.paxos.PaxosPropose<OnDone>
- All Implemented Interfaces:
RequestCallback<org.apache.cassandra.service.paxos.PaxosPropose.Response>,RequestCallbackWithFailure<org.apache.cassandra.service.paxos.PaxosPropose.Response>
public class PaxosPropose<OnDone extends Consumer<? super org.apache.cassandra.service.paxos.PaxosPropose.Status>>
extends PaxosRequestCallback<org.apache.cassandra.service.paxos.PaxosPropose.Response>
In waitForNoSideEffect mode, we will not return failure to the caller until
we have received a complete set of refusal responses, or at least one accept,
indicating (respectively) that we have had no side effect, or that we cannot
know if we our proposal produced a side effect.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classThe proposal request handler, i.e.static classstatic classNested classes/interfaces inherited from class org.apache.cassandra.service.FailureRecordingCallback
FailureRecordingCallback.AsMap, FailureRecordingCallback.FailureResponses -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final longstatic final longstatic final longstatic final PaxosPropose.RequestHandlerstatic final PaxosPropose.RequestSerializerstatic final PaxosPropose.ResponseSerializer -
Method Summary
Modifier and TypeMethodDescriptionvoidonFailure(InetAddressAndPort from, RequestFailureReason reason) Called when there is an exception on the remote node or timeout happensvoidonResponse(org.apache.cassandra.service.paxos.PaxosPropose.Response response, InetAddressAndPort from) static <T> booleanshouldSignal(long responses, int required, int participants, boolean waitForNoSideEffect, AtomicLongFieldUpdater<T> responsesUpdater, T update) Methods inherited from class org.apache.cassandra.service.paxos.PaxosRequestCallback
executeOnSelf, onResponseMethods inherited from class org.apache.cassandra.service.FailureRecordingCallback
failureReasonsAsMap, onFailureWithMutexMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.cassandra.net.RequestCallback
trackLatencyForSnitchMethods inherited from interface org.apache.cassandra.net.RequestCallbackWithFailure
invokeOnFailure
-
Field Details
-
requestHandler
-
requestSerializer
-
responseSerializer
-
ACCEPT_INCREMENT
public static final long ACCEPT_INCREMENT- See Also:
-
REFUSAL_INCREMENT
public static final long REFUSAL_INCREMENT- See Also:
-
FAILURE_INCREMENT
public static final long FAILURE_INCREMENT- See Also:
-
-
Method Details
-
onResponse
public void onResponse(org.apache.cassandra.service.paxos.PaxosPropose.Response response, InetAddressAndPort from) - Specified by:
onResponsein classPaxosRequestCallback<org.apache.cassandra.service.paxos.PaxosPropose.Response>
-
onFailure
Description copied from interface:RequestCallbackWithFailureCalled when there is an exception on the remote node or timeout happens- Specified by:
onFailurein interfaceRequestCallback<OnDone extends Consumer<? super org.apache.cassandra.service.paxos.PaxosPropose.Status>>- Specified by:
onFailurein interfaceRequestCallbackWithFailure<OnDone extends Consumer<? super org.apache.cassandra.service.paxos.PaxosPropose.Status>>- Overrides:
onFailurein classFailureRecordingCallback<org.apache.cassandra.service.paxos.PaxosPropose.Response>
-
shouldSignal
public static <T> boolean shouldSignal(long responses, int required, int participants, boolean waitForNoSideEffect, AtomicLongFieldUpdater<T> responsesUpdater, T update)
-