Class SingletonCacheWriter

  • All Implemented Interfaces:
    Lifecycle, CacheWriter
    Direct Known Subclasses:
    AdvancedSingletonCacheWriter

    @Deprecated
    public class SingletonCacheWriter
    extends DelegatingCacheWriter
    Deprecated.
    this writer will be removed in 10.0. If it is desirable that all nodes don't write to the underlying store then a shared store should be used instead, as this only performs store writes at a key's primary owner.
    SingletonStore is a delegating cache store used for situations when only one instance should interact with the underlying store. The coordinator of the cluster will be responsible for the underlying CacheStore.

    SingletonStore is a simply facade to a real CacheStore implementation. It always delegates reads to the real CacheStore.

    Writes are delegated only if this SingletonStore is currently the coordinator. This avoids having all stores in a cluster writing the same data to the same underlying store. Although not incorrect (e.g. a DB will just discard additional INSERTs for the same key, and throw an exception), this will avoid a lot of redundant work.

    Whenever the current coordinator dies (or leaves), the second in line will take over. That SingletonStore will then pass writes through to its underlying CacheStore. Optionally, when a new coordinator takes over the Singleton, it can push the in-memory state to the cache cacheStore, within a time constraint.

    Since:
    6.0
    Author:
    Mircea Markus
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected boolean active
      Deprecated.
      Whether the the current cache is the coordinator and therefore SingletonStore is active.
      protected java.util.concurrent.ExecutorService executor
      Deprecated.
      Executor service used to submit tasks to push in-memory state.
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      protected void activeStatusChanged​(boolean newActiveState)
      Deprecated.
      Method called when the cache either becomes the coordinator or stops being the coordinator.
      protected void awaitForPushToFinish​(java.util.concurrent.Future<?> future, long timeout, java.util.concurrent.TimeUnit unit)
      Deprecated.
      Method that waits for the in-memory to cache loader state to finish.
      protected java.util.concurrent.Callable<?> createPushStateTask()
      Deprecated.
       
      boolean delete​(java.lang.Object key)
      Deprecated.
       
      protected void pushState​(Cache<?,​?> cache)
      Deprecated.
      Pushes the state of a specific cache by reading the cache's data and putting in the cache store.
      void start()
      Deprecated.
      Invoked on component start
      void stop()
      Deprecated.
      Invoked on component stop
      java.lang.String toString()
      Deprecated.
       
      void write​(MarshalledEntry entry)
      Deprecated.
      Persists the entry to the storage.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • executor

        protected final java.util.concurrent.ExecutorService executor
        Deprecated.
        Executor service used to submit tasks to push in-memory state.
      • active

        protected volatile boolean active
        Deprecated.
        Whether the the current cache is the coordinator and therefore SingletonStore is active. Being active means delegating calls to the underlying cache loader.
    • Method Detail

      • delete

        public boolean delete​(java.lang.Object key)
        Deprecated.
        Specified by:
        delete in interface CacheWriter
        Overrides:
        delete in class DelegatingCacheWriter
        Returns:
        true if the entry existed in the persistent store and it was deleted.
      • createPushStateTask

        protected java.util.concurrent.Callable<?> createPushStateTask()
        Deprecated.
      • pushState

        protected void pushState​(Cache<?,​?> cache)
                          throws java.lang.Exception
        Deprecated.
        Pushes the state of a specific cache by reading the cache's data and putting in the cache store.
        Throws:
        java.lang.Exception
      • awaitForPushToFinish

        protected void awaitForPushToFinish​(java.util.concurrent.Future<?> future,
                                            long timeout,
                                            java.util.concurrent.TimeUnit unit)
        Deprecated.
        Method that waits for the in-memory to cache loader state to finish. This method's called in case a push state is already in progress and we need to wait for it to finish.
      • activeStatusChanged

        protected void activeStatusChanged​(boolean newActiveState)
                                    throws SingletonCacheWriter.PushStateException
        Deprecated.
        Method called when the cache either becomes the coordinator or stops being the coordinator. If it becomes the coordinator, it can optionally start the in-memory state transfer to the underlying cache store.
        Throws:
        SingletonCacheWriter.PushStateException
      • toString

        public java.lang.String toString()
        Deprecated.
        Overrides:
        toString in class java.lang.Object