Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface PNCounter

PN (Positive-Negative) CRDT counter.

The counter supports adding and subtracting values as well as retrieving the current counter value. The counter guarantees that whenever two nodes have received the same set of updates, possibly in a different order, their state is identical, and any conflicting updates are merged automatically. If no new updates are made to the shared state, all nodes that can communicate will eventually have the same data.

The invocation is remote. This may lead to indeterminate state - the update may be applied but the response has not been received. In this case, the caller will be notified with a TargetDisconnectedError

The read and write methods provide monotonic read and RYW (read-your-write) guarantees. These guarantees are session guarantees which means that if no replica with the previously observed state is reachable, the session guarantees are lost and the method invocation will throw a ConsistencyLostError. This does not mean that an update is lost. All of the updates are part of some replica and will be eventually reflected in the state of all other replicas. This error just means that you cannot observe your own writes because all replicas that contain your updates are currently unreachable. After you have received a ConsistencyLostError, you can either wait for a sufficiently up-to-date replica to become reachable in which case the session can be continued or you can reset the session by calling the reset() method. If you have called the reset() method, a new session is started with the next invocation to a CRDT replica.

NOTE: The CRDT state is kept entirely on non-lite (data) members. If there aren't any and the methods here are invoked, they will fail with a NoDataMemberInClusterError.

requires

Hazelcast 3.10

Hierarchy

Implemented by

Index

Methods

addAndGet

  • addAndGet(delta: Long | number): Promise<Long>
  • Adds the given value to the current value.

    throws

    NoDataMemberInClusterError if the cluster does not contain any data members

    throws

    UnsupportedOperationError if the cluster version is less than 3.10

    throws

    ConsistencyLostError if the session guarantees have been lost

    Parameters

    • delta: Long | number

      the value to add

    Returns Promise<Long>

    the updated value

decrementAndGet

  • decrementAndGet(): Promise<Long>
  • Decrements by one the current value.

    throws

    NoDataMemberInClusterError if the cluster does not contain any data members

    throws

    UnsupportedOperationError if the cluster version is less than 3.10

    throws

    ConsistencyLostError if the session guarantees have been lost

    Returns Promise<Long>

    the updated value

destroy

  • destroy(): Promise<void>

get

  • get(): Promise<Long>
  • Returns the current value of the counter.

    throws

    NoDataMemberInClusterError if the cluster does not contain any data members

    throws

    UnsupportedOperationError if the cluster version is less than 3.10

    throws

    ConsistencyLostError if the session guarantees have been lost

    Returns Promise<Long>

    the current value of the counter

getAndAdd

  • getAndAdd(delta: Long | number): Promise<Long>
  • Adds the given value to the current value.

    throws

    NoDataMemberInClusterError if the cluster does not contain any data members

    throws

    UnsupportedOperationError if the cluster version is less than 3.10

    throws

    ConsistencyLostError if the session guarantees have been lost

    Parameters

    • delta: Long | number

      the value to add

    Returns Promise<Long>

    the previous value

getAndDecrement

  • getAndDecrement(): Promise<Long>
  • Decrements by one the current value.

    throws

    NoDataMemberInClusterError if the cluster does not contain any data members

    throws

    UnsupportedOperationError if the cluster version is less than 3.10

    throws

    ConsistencyLostError if the session guarantees have been lost

    Returns Promise<Long>

    the previous value

getAndIncrement

  • getAndIncrement(): Promise<Long>
  • Increments by one the current value.

    throws

    NoDataMemberInClusterError if the cluster does not contain any data members

    throws

    UnsupportedOperationError if the cluster version is less than 3.10

    throws

    ConsistencyLostError if the session guarantees have beenlost

    Returns Promise<Long>

    the previous value

getAndSubtract

  • getAndSubtract(delta: Long | number): Promise<Long>
  • Subtracts the given value from the current value.

    throws

    NoDataMemberInClusterError if the cluster does not contain any data members

    throws

    UnsupportedOperationError if the cluster version is less than 3.10

    throws

    ConsistencyLostError if the session guarantees have been lost

    Parameters

    • delta: Long | number

      the value to add

    Returns Promise<Long>

    the previous value

getName

  • getName(): string

getPartitionKey

  • getPartitionKey(): string

getServiceName

  • getServiceName(): string

incrementAndGet

  • incrementAndGet(): Promise<Long>
  • Increments by one the current value.

    throws

    NoDataMemberInClusterError if the cluster does not contain any data members

    throws

    UnsupportedOperationError if the cluster version is less than 3.10

    throws

    ConsistencyLostError if the session guarantees have been lost

    Returns Promise<Long>

    the updated value

reset

  • reset(): Promise<void>
  • Resets the observed state by this PN counter. This method may be used after a method invocation has thrown a ConsistencyLostError to reset the proxy and to be able to start a new session.

    Returns Promise<void>

subtractAndGet

  • subtractAndGet(delta: Long | number): Promise<Long>
  • Subtracts the given value from the current value.

    throws

    NoDataMemberInClusterError if the cluster does not contain any data members

    throws

    UnsupportedOperationError if the cluster version is less than 3.10

    throws

    ConsistencyLostError if the session guarantees have been lost

    Parameters

    • delta: Long | number

      the value to subtract

    Returns Promise<Long>

    the updated value

Generated using TypeDoc