com.twitter.storehaus

WriteThroughStore

class WriteThroughStore[K, V] extends ReadThroughStore[K, V] with Store[K, V]

Provides write-through caching on a store fronted by a cache.

All cache operations are best effort. i.e. a write will succeed if the key was written to backing store even when adding/updating the cached copy of the key fails.

On the other hand, any failure while writing to backing store is propagated to the client.

If invalidate flag is set, any keys that fail to write to backing store are attempted to be removed from cache, rather than having the old value still in cache.

Thread-safety is achieved using a mutex.

Linear Supertypes
Store[K, V], WritableStore[K, Option[V]], ReadThroughStore[K, V], ReadableStore[K, V], Closable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. WriteThroughStore
  2. Store
  3. WritableStore
  4. ReadThroughStore
  5. ReadableStore
  6. Closable
  7. AnyRef
  8. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new WriteThroughStore(backingStore: Store[K, V], cache: Store[K, V], invalidate: Boolean = true)

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. final def ==(arg0: AnyRef): Boolean

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

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. def close(time: Time): Future[Unit]

    Close this store and release any resources.

    Close this store and release any resources. It is undefined what happens on get/multiGet after close

    Definition Classes
    WritableStore → Closable
  9. def close(after: Duration): Future[Unit]

    Definition Classes
    Closable
  10. final def close(): Future[Unit]

    Definition Classes
    Closable
  11. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  12. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  13. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  14. def get(k: K): Future[Option[V]]

    get a single key from the store.

    get a single key from the store. Prefer multiGet if you are getting more than one key at a time

    Definition Classes
    ReadThroughStoreReadableStore
  15. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  16. def hashCode(): Int

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

    Definition Classes
    Any
  18. def multiGet[K1 <: K](ks: Set[K1]): Map[K1, Future[Option[V]]]

    Get a set of keys from the store.

    Get a set of keys from the store. Important: all keys in the input set are in the resulting map. If the store fails to return a value for a given key, that should be represented by a Future.exception.

    Definition Classes
    ReadThroughStoreReadableStore
  19. def multiPut[K1 <: K](kvs: Map[K1, Option[V]]): Map[K1, Future[Unit]]

    Replace a set of keys at one time

    Replace a set of keys at one time

    Definition Classes
    WriteThroughStoreWritableStore
  20. lazy val mutex: AsyncMutex

    Attributes
    protected[this]
    Definition Classes
    ReadThroughStore
  21. final def ne(arg0: AnyRef): Boolean

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

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

    Definition Classes
    AnyRef
  24. def put(kv: (K, Option[V])): Future[Unit]

    Replace a value Delete is the same as put((k,None))

    Replace a value Delete is the same as put((k,None))

    Definition Classes
    WriteThroughStoreWritableStore
  25. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  26. def toString(): String

    Definition Classes
    AnyRef → Any
  27. final def wait(): Unit

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Store[K, V]

Inherited from WritableStore[K, Option[V]]

Inherited from ReadThroughStore[K, V]

Inherited from ReadableStore[K, V]

Inherited from Closable

Inherited from AnyRef

Inherited from Any

Ungrouped