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 RemovedNodePruningtrait Serializabletrait ReplicatedDataclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class ManyVersionVectorclass OneVersionVector
Members list
Type members
Types
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
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
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
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
Returns true if this
is before that
else false.
Returns true if this
and that
are concurrent else false.
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
Returns true if this
is after that
else false.
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
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