java.lang.Object
org.jboss.as.clustering.infinispan.persistence.hotrod.HotRodStore<K,V>
All Implemented Interfaces:
org.infinispan.persistence.spi.NonBlockingStore<K,V>

public class HotRodStore<K,V> extends Object implements org.infinispan.persistence.spi.NonBlockingStore<K,V>
Variation of RemoteStore configured with a started container-managed RemoteCacheContainer instance. Remote caches are auto-created on the remote server if supported by the protocol. Supports segmentation by using a separate remote cache per segment.
Author:
Radoslav Husar, Paul Ferraro
  • Constructor Details

    • HotRodStore

      public HotRodStore()
  • Method Details

    • start

      public CompletionStage<Void> start(org.infinispan.persistence.spi.InitializationContext context)
      Specified by:
      start in interface org.infinispan.persistence.spi.NonBlockingStore<K,V>
    • stop

      public CompletionStage<Void> stop()
      Specified by:
      stop in interface org.infinispan.persistence.spi.NonBlockingStore<K,V>
    • characteristics

      public Set<org.infinispan.persistence.spi.NonBlockingStore.Characteristic> characteristics()
      Specified by:
      characteristics in interface org.infinispan.persistence.spi.NonBlockingStore<K,V>
    • load

      public CompletionStage<org.infinispan.persistence.spi.MarshallableEntry<K,V>> load(int segment, Object key)
      Specified by:
      load in interface org.infinispan.persistence.spi.NonBlockingStore<K,V>
    • write

      public CompletionStage<Void> write(int segment, org.infinispan.persistence.spi.MarshallableEntry<? extends K,? extends V> entry)
      Specified by:
      write in interface org.infinispan.persistence.spi.NonBlockingStore<K,V>
    • delete

      public CompletionStage<Boolean> delete(int segment, Object key)
      Specified by:
      delete in interface org.infinispan.persistence.spi.NonBlockingStore<K,V>
    • batch

      public CompletionStage<Void> batch(int publisherCount, org.reactivestreams.Publisher<org.infinispan.persistence.spi.NonBlockingStore.SegmentedPublisher<Object>> removePublisher, org.reactivestreams.Publisher<org.infinispan.persistence.spi.NonBlockingStore.SegmentedPublisher<org.infinispan.persistence.spi.MarshallableEntry<K,V>>> writePublisher)
      Specified by:
      batch in interface org.infinispan.persistence.spi.NonBlockingStore<K,V>
    • publishKeys

      public io.reactivex.rxjava3.core.Flowable<K> publishKeys(org.infinispan.commons.util.IntSet segments, Predicate<? super K> filter)
      Specified by:
      publishKeys in interface org.infinispan.persistence.spi.NonBlockingStore<K,V>
    • publishEntries

      public org.reactivestreams.Publisher<org.infinispan.persistence.spi.MarshallableEntry<K,V>> publishEntries(org.infinispan.commons.util.IntSet segments, Predicate<? super K> filter, boolean includeValues)
      Specified by:
      publishEntries in interface org.infinispan.persistence.spi.NonBlockingStore<K,V>
    • clear

      public CompletionStage<Void> clear()
      Specified by:
      clear in interface org.infinispan.persistence.spi.NonBlockingStore<K,V>
    • containsKey

      public CompletionStage<Boolean> containsKey(int segment, Object key)
      Specified by:
      containsKey in interface org.infinispan.persistence.spi.NonBlockingStore<K,V>
    • isAvailable

      public CompletionStage<Boolean> isAvailable()
      Specified by:
      isAvailable in interface org.infinispan.persistence.spi.NonBlockingStore<K,V>
    • size

      public CompletionStage<Long> size(org.infinispan.commons.util.IntSet segments)
      Specified by:
      size in interface org.infinispan.persistence.spi.NonBlockingStore<K,V>
    • addSegments

      public CompletionStage<Void> addSegments(org.infinispan.commons.util.IntSet segments)
      Specified by:
      addSegments in interface org.infinispan.persistence.spi.NonBlockingStore<K,V>
    • removeSegments

      public CompletionStage<Void> removeSegments(org.infinispan.commons.util.IntSet segments)
      Specified by:
      removeSegments in interface org.infinispan.persistence.spi.NonBlockingStore<K,V>
    • purgeExpired

      public org.reactivestreams.Publisher<org.infinispan.persistence.spi.MarshallableEntry<K,V>> purgeExpired()
      Specified by:
      purgeExpired in interface org.infinispan.persistence.spi.NonBlockingStore<K,V>