Interface AsyncCompareAndSwapOperation


public interface AsyncCompareAndSwapOperation
Describes the set of operations that AbstractCompareAndSwapBasedProxyManager typically performs in reaction to user request. The typical flow is following:
  1. getStateData - getStateData(Optional)
  2. compareAndSwap - compareAndSwap(byte[], byte[], RemoteBucketState, Optional)
  3. Return to first step if CAS was unsuccessful
  • Method Details

    • getStateData

      CompletableFuture<Optional<byte[]>> getStateData(Optional<Long> timeoutNanos)
      Reads data if it exists
      Parameters:
      timeoutNanos - optional timeout in nanoseconds
      Returns:
      persisted data or empty optional if data not exists
    • compareAndSwap

      CompletableFuture<Boolean> compareAndSwap(byte[] originalData, byte[] newData, RemoteBucketState newState, Optional<Long> timeoutNanos)
      Compares and swap data associated with key
      Parameters:
      originalData - previous bucket state(can be null).
      newData - new bucket state
      newState - new state of bucket - can be used to extract additional data is useful for persistence or logging.
      timeoutNanos - optional timeout in nanoseconds
      Returns:
      true if data changed, false if another parallel transaction achieved success instead of current transaction