object DurableStore
An actor implementing the durable store for the Distributed Data Replicator
has to implement the protocol with the messages defined here.
At startup the Replicator
creates the durable store actor and sends the
Load
message to it. It must then reply with 0 or more LoadData
messages
followed by one LoadAllCompleted
message to the sender
(the Replicator
).
If the LoadAll
fails it can throw LoadFailed
and the Replicator
supervisor
will stop itself and the durable store.
When the Replicator
needs to store a value it sends a Store
message
to the durable store actor, which must then reply with the successMsg
or
failureMsg
to the replyTo
.
When entries have expired the Replicator
sends a Expire
message to the durable
store actor, which can delete the entries from the backend store.
- Source
- DurableStore.scala
- Alphabetic
- By Inheritance
- DurableStore
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- final class DurableDataEnvelope extends ReplicatorMessage
Wrapper class for serialization of a data value.
Wrapper class for serialization of a data value. The
ReplicatorMessageSerializer
will serialize/deserialize the wrappedReplicatedData
including its serializerId and manifest. - final case class Expire(keys: Set[KeyId]) extends Product with Serializable
Request to expire (remove) entries.
- final case class LoadData(data: Map[KeyId, DurableDataEnvelope]) extends Product with Serializable
- class LoadFailed extends RuntimeException
- final case class Store(key: KeyId, data: DurableDataEnvelope, reply: Option[StoreReply]) extends Product with Serializable
Request to store an entry.
Request to store an entry. It optionally contains a
StoreReply
, which should be used to signal success or failure of the operation to the containedreplyTo
actor. - final case class StoreReply(successMsg: Any, failureMsg: Any, replyTo: ActorRef) extends Product with Serializable
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @HotSpotIntrinsicCandidate() @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- case object LoadAll extends Product with Serializable
Request to load all entries.
Request to load all entries.
It must reply with 0 or more
LoadData
messages followed by oneLoadAllCompleted
message to thesender
(theReplicator
).If the
LoadAll
fails it can throwLoadFailed
and theReplicator
supervisor will stop itself and the durable store. - case object LoadAllCompleted extends Product with Serializable