kofre.time

package kofre.time

Members list

Concise view

Type members

Classlikes

class ArrayRanges(val inner: Array[Time], val used: Int)

Efficient storage of a set of kofre.base.Time when most stored values are contiguous ranges.

Efficient storage of a set of kofre.base.Time when most stored values are contiguous ranges.

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion:
class
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
case class Dot(replicaId: Uid, time: Time)

A Dot is a globally unique point in time. Dots are partially ordered by their time per replicaId. Dots are another name for lamport clocks.

A Dot is a globally unique point in time. Dots are partially ordered by their time per replicaId. Dots are another name for lamport clocks.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
case class Dots(internal: Map[Uid, ArrayRanges])

Essentially a more efficient version of a Set. It typically tracks all dots known within some scope.

Essentially a more efficient version of a Set. It typically tracks all dots known within some scope.

This datastructure is used both for implementation of RDTs, as well as for ensuring causality during replication.

Attributes

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
object Dots

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
Dots.type
case class VectorClock(timestamps: Map[Uid, Time])

Attributes

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
case class WallClock(timestamp: Long, replicaID: Uid, nanoTime: Long)

WallClock is a case class for values that allows chronological ordering of values based on their time of creation. In the case that two values from two different replicas have the exact same timestamp, the lexical ordering of the ids of the two replicas is used to decide the ordering of the values. If two values from the same replica have the same timestamp, then the higher-resolution local nanoTime is used to decide ordering.

WallClock is a case class for values that allows chronological ordering of values based on their time of creation. In the case that two values from two different replicas have the exact same timestamp, the lexical ordering of the ids of the two replicas is used to decide the ordering of the values. If two values from the same replica have the same timestamp, then the higher-resolution local nanoTime is used to decide ordering.

Instead of the default constructor, it is recommended that you use the WallClock.now method of the companion object which automatically fills in the timestamp and nanoTime using System.currentTimeMillis() and System.nanoTime() respectively.

Attributes

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
object WallClock

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type