VersionVector

org.apache.pekko.cluster.ddata.VersionVector
See theVersionVector companion object

Representation of a Vector-based clock (counting clock), inspired by Lamport logical clocks.

Reference:
  1) Leslie Lamport (1978). "Time, clocks, and the ordering of events in a distributed system". Communications of the ACM 21 (7): 558-565.
  2) Friedemann Mattern (1988). "Virtual Time and Global States of Distributed Systems". Workshop on Parallel and Distributed Algorithms: pp. 215-226

Based on code from org.apache.pekko.cluster.VectorClock.

This class is immutable, i.e. "modifying" methods return a new instance.

Attributes

Companion
object
Source
VersionVector.scala
Graph
Supertypes
trait Serializable
class Object
trait Matchable
class Any
Show all
Known subtypes

Members list

Type members

Types

type T = VersionVector

The type of the concrete implementation, e.g. GSet[A]. To be specified by subclass.

The type of the concrete implementation, e.g. GSet[A]. To be specified by subclass.

Attributes

Source
VersionVector.scala

Value members

Abstract methods

Attributes

Source
VersionVector.scala

Merges this VersionVector with another VersionVector. E.g. merges its versioned history.

Merges this VersionVector with another VersionVector. E.g. merges its versioned history.

Attributes

Source
VersionVector.scala
override def needPruningFrom(removedNode: UniqueAddress): Boolean

Does it have any state changes from a specific node, which has been removed from the cluster.

Does it have any state changes from a specific node, which has been removed from the cluster.

Attributes

Definition Classes
Source
VersionVector.scala
override def prune(removedNode: UniqueAddress, collapseInto: UniqueAddress): VersionVector

When the removed node has been removed from the cluster the state changes from that node will be pruned by collapsing the data entries to another node.

When the removed node has been removed from the cluster the state changes from that node will be pruned by collapsing the data entries to another node.

Attributes

Definition Classes
Source
VersionVector.scala
override def pruningCleanup(removedNode: UniqueAddress): VersionVector

Remove data entries from a node that has been removed from the cluster and already been pruned.

Remove data entries from a node that has been removed from the cluster and already been pruned.

Attributes

Definition Classes
Source
VersionVector.scala

Concrete methods

Increment the version for the node passed as argument. Returns a new VersionVector.

Increment the version for the node passed as argument. Returns a new VersionVector.

Attributes

Source
VersionVector.scala
def <(that: VersionVector): Boolean

Returns true if this is before that else false.

Returns true if this is before that else false.

Attributes

Source
VersionVector.scala
def <>(that: VersionVector): Boolean

Returns true if this and that are concurrent else false.

Returns true if this and that are concurrent else false.

Attributes

Source
VersionVector.scala
def ==(that: VersionVector): Boolean

Returns true if this VersionVector has the same history as the 'that' VersionVector else false.

Returns true if this VersionVector has the same history as the 'that' VersionVector else false.

Attributes

Source
VersionVector.scala
def >(that: VersionVector): Boolean

Returns true if this is after that else false.

Returns true if this is after that else false.

Attributes

Source
VersionVector.scala

Compare two version vectors. The outcome will be one of the following:

Compare two version vectors. The outcome will be one of the following:

 1. Version 1 is SAME (==)       as Version 2 iff for all i c1(i) == c2(i)
 2. Version 1 is BEFORE (<)      Version 2 iff for all i c1(i) <= c2(i) and there exist a j such that c1(j) < c2(j)
 3. Version 1 is AFTER (>)       Version 2 iff for all i c1(i) >= c2(i) and there exist a j such that c1(j) > c2(j).
 4. Version 1 is CONCURRENT (<>) to Version 2 otherwise.

Attributes

Source
VersionVector.scala

Increment the version for the node passed as argument. Returns a new VersionVector.

Increment the version for the node passed as argument. Returns a new VersionVector.

Attributes

Source
VersionVector.scala

Deprecated methods

def +(node: Cluster): VersionVector

Attributes

Deprecated
[Since version Akka 2.5.20]
Source
VersionVector.scala

Attributes

Deprecated
[Since version Akka 2.5.20]
Source
VersionVector.scala

Inherited methods

The nodes that have changed the state for this data and would need pruning when such node is no longer part of the cluster.

The nodes that have changed the state for this data and would need pruning when such node is no longer part of the cluster.

Attributes

Inherited from:
RemovedNodePruning
Source
ReplicatedData.scala