Package org.infinispan.commands.triangle
Class BackupWriteCommand
- java.lang.Object
-
- org.infinispan.commands.remote.BaseRpcCommand
-
- org.infinispan.commands.triangle.BackupWriteCommand
-
- All Implemented Interfaces:
CacheRpcCommand
,ReplicableCommand
- Direct Known Subclasses:
BackupNoopCommand
,MultiEntriesFunctionalBackupWriteCommand
,MultiKeyFunctionalBackupWriteCommand
,PutMapBackupWriteCommand
,SingleKeyBackupWriteCommand
,SingleKeyFunctionalBackupWriteCommand
public abstract class BackupWriteCommand extends BaseRpcCommand
A write operation sent from the primary owner to the backup owners.This is a base command with the
CommandInvocationId
, topology and flags.Since the primary → backup operations are ordered by segment, it contains the segment to be updated and its sequence number.
- Since:
- 9.2
- Author:
- Pedro Ruivo
-
-
Field Summary
Fields Modifier and Type Field Description protected int
segmentId
-
Fields inherited from class org.infinispan.commands.remote.BaseRpcCommand
cacheName, origin
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canBlock()
If true, the command is processed asynchronously in a thread provided by an Infinispan thread pool.CommandInvocationId
getCommandInvocationId()
long
getFlags()
int
getSegmentId()
long
getSequence()
int
getTopologyId()
CompletionStage<?>
invokeAsync(ComponentRegistry componentRegistry)
Invoke the command asynchronously.boolean
isReturnValueExpected()
If true, a return value will be provided when performed remotely.void
setSegmentId(int segmentId)
void
setSequence(long sequence)
-
Methods inherited from class org.infinispan.commands.remote.BaseRpcCommand
getCacheName, getOrigin, setOrigin, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.infinispan.commands.ReplicableCommand
getCommandId, invoke, invokeAsync, isSuccessful, logThrowable, readFrom, writeTo
-
-
-
-
Method Detail
-
invokeAsync
public final CompletionStage<?> invokeAsync(ComponentRegistry componentRegistry)
Description copied from interface:CacheRpcCommand
Invoke the command asynchronously.This method replaces
ReplicableCommand.invoke()
for remote execution. The default implementation andReplicableCommand.invoke()
will be removed in future versions.
-
isReturnValueExpected
public final boolean isReturnValueExpected()
Description copied from interface:ReplicableCommand
If true, a return value will be provided when performed remotely. Otherwise, a remoteResponseGenerator
may choose to simply return null to save on marshalling costs.- Returns:
- true or false
-
canBlock
public final boolean canBlock()
Description copied from interface:ReplicableCommand
If true, the command is processed asynchronously in a thread provided by an Infinispan thread pool. Otherwise, the command is processed directly in the JGroups thread. This feature allows to avoid keep a JGroups thread busy that can originate discard of messages and retransmissions. So, the commands that can block (waiting for some state, acquiring locks, etc.) should return true.- Returns:
true
if the command can block/wait,false
otherwise
-
getSequence
public final long getSequence()
-
setSequence
public final void setSequence(long sequence)
-
getCommandInvocationId
public final CommandInvocationId getCommandInvocationId()
-
getTopologyId
public final int getTopologyId()
-
getFlags
public final long getFlags()
-
getSegmentId
public final int getSegmentId()
-
setSegmentId
public final void setSegmentId(int segmentId)
-
-