Interface BackupReceiver

All Known Implementing Classes:
ClusteredCacheBackupReceiver

public interface BackupReceiver
Component present on a backup site that manages the backup information and logic.
Since:
5.2
Author:
Mircea Markus
See Also:
  • Method Details

    • handleRemoteCommand

      <O> CompletionStage<O> handleRemoteCommand(VisitableCommand command)
    • putKeyValue

      CompletionStage<Void> putKeyValue(Object key, Object value, Metadata metadata, IracMetadata iracMetadata)
      Updates the key with the value from a remote site.

      If a conflict occurs, the update can be discarded.

      Parameters:
      key - The key to update.
      value - The new value.
      metadata - The new Metadata.
      iracMetadata - The IracMetadata for conflict resolution.
      Returns:
      A CompletionStage that is completed when the update is apply in the cluster or is discarded.
    • removeKey

      CompletionStage<Void> removeKey(Object key, IracMetadata iracMetadata, boolean expiration)
      Deletes the key.

      This is a request from the remote site and the removal can be discarded if a conflict happens.

      Parameters:
      key - The key to delete.
      iracMetadata - The IracMetadata for conflict resolution.
      expiration - true if it is to remove an expired key.
      Returns:
      A CompletionStage that is completed when the key is deleted or it is discarded.
    • clearKeys

      CompletionStage<Void> clearKeys()
      Clears the cache.

      This is not safe and it doesn't perform any conflict resolution.

      Returns:
      A CompletionStage that is completed when the cache is cleared.
    • touchEntry

      CompletionStage<Boolean> touchEntry(Object key)
      Touches an entry and returns if it was able to or not.
      Parameters:
      key - the key of the entry to touch
      Returns:
      if the entry was touched
    • handleStateTransferState

      CompletionStage<Void> handleStateTransferState(XSiteState[] chunk, long timeoutMs)
      It handles the state transfer state from a remote site. It is possible to have a single node applying the state or forward the state to respective primary owners.
    • handleStateTransferControl

      CompletionStage<Void> handleStateTransferControl(String originSite, boolean startReceiving)
      It handles starting or finishing, base on startReceiving, of the state transfer from a remote site.

      The command must be broadcast to the entire cluster in which the cache exists.

      Parameters:
      originSite - The remote site which is starting or finishing sending the state transfer.
      startReceiving - true if the originSite wants to start sending state.