VersionVector

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 akka.cluster.VectorClock.

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

Companion:
object
Source:
VersionVector.scala
trait Serializable
class Object
trait Matchable
class Any

Type members

Value members

Abstract methods

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

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

Source:
VersionVector.scala
override def needPruningFrom(removedNode: UniqueAddress): Boolean
Definition Classes
Source:
VersionVector.scala
override def prune(removedNode: UniqueAddress, collapseInto: UniqueAddress): VersionVector
Definition Classes
Source:
VersionVector.scala
override def pruningCleanup(removedNode: UniqueAddress): VersionVector
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.

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.

Source:
VersionVector.scala

Returns true if this and that are concurrent else false.

Returns true if this and that are concurrent else false.

Source:
VersionVector.scala

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.

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.

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.
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.

Source:
VersionVector.scala

Deprecated methods

@deprecated("Use `:+` that takes a `SelfUniqueAddress` parameter instead.", since = "2.5.20")
def +(node: Cluster): VersionVector
Deprecated
[Since version 2.5.20]
Source:
VersionVector.scala
@deprecated("Use `increment` that takes a `SelfUniqueAddress` parameter instead.", since = "2.5.20")
Deprecated
[Since version 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.

Inherited from:
RemovedNodePruning
Source:
ReplicatedData.scala