public class NonSegmentedLocalPublisherManagerImpl<K,V> extends LocalPublisherManagerImpl<K,V>
cache, changeListener, cpuCount, entrySet, entrySetWithoutLoader, keySet, keySetWithoutLoader, maxSegment, nonBlockingScheduler, remoteCache
Constructor and Description |
---|
NonSegmentedLocalPublisherManagerImpl() |
Modifier and Type | Method and Description |
---|---|
protected <R> CompletionStage<PublisherResult<R>> |
exactlyOnceHandleLostSegments(CompletionStage<R> finalValue,
org.infinispan.reactive.publisher.impl.LocalPublisherManagerImpl.SegmentListener listener) |
protected <I,R> io.reactivex.rxjava3.core.Flowable<R> |
exactlyOnceParallel(CacheSet<I> set,
Set<K> keysToExclude,
Function<I,K> toKeyFunction,
IntSet segments,
Function<? super org.reactivestreams.Publisher<I>,? extends CompletionStage<R>> transformer,
org.infinispan.reactive.publisher.impl.LocalPublisherManagerImpl.SegmentListener listener,
IntSet concurrentSegments)
This method iteratively submits a task to operate on the cpu bound thread pool up to the number of cores - 1.
|
protected <I,R> io.reactivex.rxjava3.core.Flowable<R> |
exactlyOnceSequential(CacheSet<I> set,
Set<K> keysToExclude,
Function<I,K> toKeyFunction,
IntSet segments,
Function<? super org.reactivestreams.Publisher<I>,? extends CompletionStage<R>> transformer,
org.infinispan.reactive.publisher.impl.LocalPublisherManagerImpl.SegmentListener listener,
IntSet concurrentSegments) |
combineStages, combineStages, entryPublisher, entryReduction, handleLostSegments, inject, keyPublisher, keyReduction, segmentsLost, start
public NonSegmentedLocalPublisherManagerImpl()
protected <I,R> io.reactivex.rxjava3.core.Flowable<R> exactlyOnceParallel(CacheSet<I> set, Set<K> keysToExclude, Function<I,K> toKeyFunction, IntSet segments, Function<? super org.reactivestreams.Publisher<I>,? extends CompletionStage<R>> transformer, org.infinispan.reactive.publisher.impl.LocalPublisherManagerImpl.SegmentListener listener, IntSet concurrentSegments)
LocalPublisherManagerImpl
The results of each segment data will then be published each as a single result in the returned Flowable. Due to the results being retrieved eagerly it is entirely possible that if the Subscriber of the Flowable is slow that that results queue up. But due to that the fact that results are reduced to single values for each segment this shouldn't become an issue.
exactlyOnceParallel
in class LocalPublisherManagerImpl<K,V>
I
- input type of the dataR
- resulting valueset
- CacheSet to retrieve the publisher for (non-nullable)keysToExclude
- whether given keys should be excluded from the processing (nullable)toKeyFunction
- function to convert an entry to a key to determine if it is excluded (must be non null if keysToExclude is)segments
- the segments to process results for (non-nullable)transformer
- reducer to collate all the entries for a given segment into a single result (non-nullable)listener
- listener that handles segments being lost and determining what results should be discarded (non-nullable)concurrentSegments
- segments map of semgnets left to complete. remove an entry when a segment is completed to
prevent a data rehash causing a retry for the given segmentprotected <I,R> io.reactivex.rxjava3.core.Flowable<R> exactlyOnceSequential(CacheSet<I> set, Set<K> keysToExclude, Function<I,K> toKeyFunction, IntSet segments, Function<? super org.reactivestreams.Publisher<I>,? extends CompletionStage<R>> transformer, org.infinispan.reactive.publisher.impl.LocalPublisherManagerImpl.SegmentListener listener, IntSet concurrentSegments)
exactlyOnceSequential
in class LocalPublisherManagerImpl<K,V>
protected <R> CompletionStage<PublisherResult<R>> exactlyOnceHandleLostSegments(CompletionStage<R> finalValue, org.infinispan.reactive.publisher.impl.LocalPublisherManagerImpl.SegmentListener listener)
exactlyOnceHandleLostSegments
in class LocalPublisherManagerImpl<K,V>
Copyright © 2021 JBoss by Red Hat. All rights reserved.