akka.cluster

VectorClock

case class VectorClock(timestamp: Timestamp = VectorClock.Timestamp.apply(), versions: Map[Node, Timestamp] = ...) extends PartiallyOrdered[VectorClock] with Product with Serializable

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 the 'vlock' VectorClock library by Coda Hale.

Linear Supertypes
Serializable, Serializable, Product, Equals, PartiallyOrdered[VectorClock], AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. VectorClock
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. PartiallyOrdered
  7. AnyRef
  8. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new VectorClock(timestamp: Timestamp = VectorClock.Timestamp.apply(), versions: Map[Node, Timestamp] = ...)

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. def :+(node: Node): VectorClock

    Increment the version for the node passed as argument.

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

  5. def <[B >: VectorClock](that: B)(implicit arg0: (B) ⇒ PartiallyOrdered[B]): Boolean

    Definition Classes
    PartiallyOrdered
  6. def <=[B >: VectorClock](that: B)(implicit arg0: (B) ⇒ PartiallyOrdered[B]): Boolean

    Definition Classes
    PartiallyOrdered
  7. def <>(that: VectorClock): Boolean

    Returns true if this and that are concurrent else false.

  8. def ==(that: VectorClock): Boolean

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

  9. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  10. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  11. def >[B >: VectorClock](that: B)(implicit arg0: (B) ⇒ PartiallyOrdered[B]): Boolean

    Definition Classes
    PartiallyOrdered
  12. def >=[B >: VectorClock](that: B)(implicit arg0: (B) ⇒ PartiallyOrdered[B]): Boolean

    Definition Classes
    PartiallyOrdered
  13. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  14. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  15. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  16. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  17. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  18. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  19. def merge(that: VectorClock): VectorClock

    Merges this VectorClock with another VectorClock.

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

  20. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  21. final def notify(): Unit

    Definition Classes
    AnyRef
  22. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  23. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  24. val timestamp: Timestamp

  25. def toString(): String

    Definition Classes
    VectorClock → AnyRef → Any
  26. def tryCompareTo[V >: VectorClock](vclock: V)(implicit arg0: (V) ⇒ PartiallyOrdered[V]): Option[Int]

    For the 'PartiallyOrdered' trait, to allow natural comparisons using <, > and ==.

    For the 'PartiallyOrdered' trait, to allow natural comparisons using <, > and ==.

    Compare two vector clocks. The outcomes will be one of the following:

    1. Clock 1 is BEFORE (>)      Clock 2 if there exists an i such that c1(i) <= c2(i) and there does not exist a j such that c1(j) > c2(j).
    2. Clock 1 is CONCURRENT (<>) to Clock 2 if there exists an i, j such that c1(i) < c2(i) and c1(j) > c2(j).
    3. Clock 1 is AFTER (<)       Clock 2 otherwise.
    Definition Classes
    VectorClock → PartiallyOrdered
  27. val versions: Map[Node, Timestamp]

  28. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  29. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  30. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from PartiallyOrdered[VectorClock]

Inherited from AnyRef

Inherited from Any

Ungrouped