Class RemoteStore<K,​V>

  • All Implemented Interfaces:
    org.infinispan.commons.api.Lifecycle, org.infinispan.persistence.spi.AdvancedCacheLoader<K,​V>, org.infinispan.persistence.spi.AdvancedCacheWriter<K,​V>, org.infinispan.persistence.spi.AdvancedLoadWriteStore<K,​V>, org.infinispan.persistence.spi.CacheLoader<K,​V>, org.infinispan.persistence.spi.CacheWriter<K,​V>, org.infinispan.persistence.spi.ExternalStore<K,​V>, org.infinispan.persistence.spi.FlagAffectedStore<K,​V>

    @ThreadSafe
    public class RemoteStore<K,​V>
    extends Object
    implements org.infinispan.persistence.spi.AdvancedLoadWriteStore<K,​V>, org.infinispan.persistence.spi.FlagAffectedStore<K,​V>
    Cache store that delegates the call to a infinispan cluster. Communication between this cache store and the remote cluster is achieved through the java HotRod client: this assures fault tolerance and smart dispatching of calls to the nodes that have the highest chance of containing the given key. This cache store supports both preloading and fetchPersistentState.

    Purging elements is not possible, as HotRod does not support the fetching of all remote keys (this would be a very costly operation as well). Purging takes place at the remote end (infinispan cluster).

    Since:
    4.1
    Author:
    Mircea.Markus@jboss.com
    See Also:
    RemoteStoreConfiguration, Hotrod Java Client
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface org.infinispan.persistence.spi.AdvancedCacheLoader

        org.infinispan.persistence.spi.AdvancedCacheLoader.CacheLoaderTask<K extends Object,​V extends Object>, org.infinispan.persistence.spi.AdvancedCacheLoader.TaskContext
      • Nested classes/interfaces inherited from interface org.infinispan.persistence.spi.AdvancedCacheWriter

        org.infinispan.persistence.spi.AdvancedCacheWriter.PurgeListener<K extends Object>
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected org.infinispan.persistence.spi.InitializationContext ctx  
    • Constructor Summary

      Constructors 
      Constructor Description
      RemoteStore()  
    • Field Detail

      • ctx

        protected org.infinispan.persistence.spi.InitializationContext ctx
    • Constructor Detail

      • RemoteStore

        public RemoteStore()
    • Method Detail

      • init

        public void init​(org.infinispan.persistence.spi.InitializationContext ctx)
        Specified by:
        init in interface org.infinispan.persistence.spi.CacheLoader<K,​V>
        Specified by:
        init in interface org.infinispan.persistence.spi.CacheWriter<K,​V>
      • start

        public void start()
                   throws org.infinispan.persistence.spi.PersistenceException
        Specified by:
        start in interface org.infinispan.commons.api.Lifecycle
        Throws:
        org.infinispan.persistence.spi.PersistenceException
      • stop

        public void stop()
                  throws org.infinispan.persistence.spi.PersistenceException
        Specified by:
        stop in interface org.infinispan.commons.api.Lifecycle
        Throws:
        org.infinispan.persistence.spi.PersistenceException
      • isAvailable

        public boolean isAvailable()
        Specified by:
        isAvailable in interface org.infinispan.persistence.spi.CacheLoader<K,​V>
        Specified by:
        isAvailable in interface org.infinispan.persistence.spi.CacheWriter<K,​V>
        Specified by:
        isAvailable in interface org.infinispan.persistence.spi.ExternalStore<K,​V>
      • load

        public org.infinispan.marshall.core.MarshalledEntry<K,​V> load​(Object key)
                                                                     throws org.infinispan.persistence.spi.PersistenceException
        Specified by:
        load in interface org.infinispan.persistence.spi.CacheLoader<K,​V>
        Throws:
        org.infinispan.persistence.spi.PersistenceException
      • contains

        public boolean contains​(Object key)
                         throws org.infinispan.persistence.spi.PersistenceException
        Specified by:
        contains in interface org.infinispan.persistence.spi.CacheLoader<K,​V>
        Throws:
        org.infinispan.persistence.spi.PersistenceException
      • publishKeys

        public io.reactivex.Flowable<K> publishKeys​(Predicate<? super K> filter)
        Specified by:
        publishKeys in interface org.infinispan.persistence.spi.AdvancedCacheLoader<K,​V>
      • publishEntries

        public org.reactivestreams.Publisher<org.infinispan.marshall.core.MarshalledEntry<K,​V>> publishEntries​(Predicate<? super K> filter,
                                                                                                                     boolean fetchValue,
                                                                                                                     boolean fetchMetadata)
        Specified by:
        publishEntries in interface org.infinispan.persistence.spi.AdvancedCacheLoader<K,​V>
      • size

        public int size()
        Specified by:
        size in interface org.infinispan.persistence.spi.AdvancedCacheLoader<K,​V>
      • purge

        public void purge​(Executor threadPool,
                          org.infinispan.persistence.spi.AdvancedCacheWriter.PurgeListener task)
        Specified by:
        purge in interface org.infinispan.persistence.spi.AdvancedCacheWriter<K,​V>
      • write

        public void write​(org.infinispan.marshall.core.MarshalledEntry entry)
                   throws org.infinispan.persistence.spi.PersistenceException
        Specified by:
        write in interface org.infinispan.persistence.spi.CacheWriter<K,​V>
        Throws:
        org.infinispan.persistence.spi.PersistenceException
      • writeBatch

        public void writeBatch​(Iterable<org.infinispan.marshall.core.MarshalledEntry<? extends K,​? extends V>> marshalledEntries)
        Specified by:
        writeBatch in interface org.infinispan.persistence.spi.CacheWriter<K,​V>
      • clear

        public void clear()
                   throws org.infinispan.persistence.spi.PersistenceException
        Specified by:
        clear in interface org.infinispan.persistence.spi.AdvancedCacheWriter<K,​V>
        Throws:
        org.infinispan.persistence.spi.PersistenceException
      • delete

        public boolean delete​(Object key)
                       throws org.infinispan.persistence.spi.PersistenceException
        Specified by:
        delete in interface org.infinispan.persistence.spi.CacheWriter<K,​V>
        Throws:
        org.infinispan.persistence.spi.PersistenceException
      • setInternalCacheEntryFactory

        public void setInternalCacheEntryFactory​(org.infinispan.container.impl.InternalEntryFactory iceFactory)
      • getRemoteCache

        public org.infinispan.client.hotrod.RemoteCache<Object,​Object> getRemoteCache()
      • shouldWrite

        public boolean shouldWrite​(long commandFlags)
        Specified by:
        shouldWrite in interface org.infinispan.persistence.spi.FlagAffectedStore<K,​V>