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 Details

    • segmentId

      protected int segmentId
  • Method Details

    • 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 and ReplicableCommand.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 remote ResponseGenerator 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)