rdts.datatypes

package rdts.datatypes

Members list

Type members

Classlikes

case class EnableWinsFlag(set: Dots, unset: Dots)

An EWFlag (Enable-Wins Flag) is a Delta CRDT modeling a boolean flag.

An EWFlag (Enable-Wins Flag) is a Delta CRDT modeling a boolean flag.

When the flag is concurrently disabled and enabled then the enable operation wins, i.e. the resulting flag is enabled.

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
case class Epoch[E](counter: Time, value: E)

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
object Epoch

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
Epoch.type
case class GrowOnlyCounter(inner: Map[Uid, Int])

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

A GCounter is a Delta CRDT modeling an increment-only counter.

A GCounter is a Delta CRDT modeling an increment-only counter.

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
case class GrowOnlyList[E](order: Map[CausalTime, Set[CausalTime]], elements: Map[CausalTime, E])

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
object GrowOnlyList

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
case class LastWriterWins[+A](timestamp: CausalTime, payload: A)

A LastWriterWins (register) is a common fallback for datatypes that don’t have good merge semantics.

A LastWriterWins (register) is a common fallback for datatypes that don’t have good merge semantics.

Concurrent writes are resolved by a causality preserving clock based on milliseconds, using a random value as a tie breaker. The random values are non-fair, so a specific replica is more likely to win.

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
case class MultiVersionRegister[A](repr: Map[Dot, A], removed: Dots)

An MultiVersionRegister (Multi-Value Register) is a Delta CRDT modeling a register.

An MultiVersionRegister (Multi-Value Register) is a Delta CRDT modeling a register.

In the absence of concurrent writes, the MultiVersionRegister is either empty or holds one value. When multiple values are written concurrently, reading the MultiVersionRegister returns a set holding all these values.

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
case class ObserveRemoveMap[K, V](inner: Map[K, Entry[V]], removed: Dots)

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Attributes

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

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
object PosNegCounter

A PNCounter (Positive-Negative Counter) is a Delta CRDT modeling a counter.

A PNCounter (Positive-Negative Counter) is a Delta CRDT modeling a counter.

It is composed of two grow-only counters (see GrowOnlyCounter) to enable both increments and decrements of the counter value.

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
case class ReplicatedList[E](causalOrder: Map[Dot, Dots], elements: Map[Dot, E], times: Map[Dot, CausalTime], removed: Dots)

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
case class ReplicatedSet[E](inner: Map[E, Dots], deleted: Dots)

A set that allows deletes. Each unique element tracks the dots of when it was inserted. Removals do not override concurrent inserts.

A set that allows deletes. Each unique element tracks the dots of when it was inserted. Removals do not override concurrent inserts.

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
object ReplicatedSet

Attributes

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