Interface SegmentAwarePublisherSupplier<R>
- Type Parameters:
R- value type
- All Superinterfaces:
SegmentPublisherSupplier<R>
SegmentPublisherSupplier except that it also allows listening for when a segment is
lost. The lost segment provides the same notification guarantees as the segment completion of the parent interface.
This interface is normally just for internal Infinispan usage as users shouldn't normally have to care about retrying.
Implementors of this do not do retries and instead notify of lost segments instead of retrying, which implementors
of SegmentPublisherSupplier normally do.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceNotification that can also contains lost segments.Nested classes/interfaces inherited from interface org.infinispan.reactive.publisher.impl.SegmentPublisherSupplier
SegmentPublisherSupplier.Notification<R> -
Method Summary
Modifier and TypeMethodDescriptiondefault org.reactivestreams.Publisher<SegmentAwarePublisherSupplier.NotificationWithLost<R>>Same asSegmentPublisherSupplier.publisherWithSegments(), except that we also can notify a listener when a segment has been lost before publishing all its entries.org.reactivestreams.Publisher<SegmentAwarePublisherSupplier.NotificationWithLost<R>>publisherWithLostSegments(boolean reuseNotifications) Same asSegmentPublisherSupplier.publisherWithSegments(), except that we also can notify a listener when a segment has been lost before publishing all its entriesorg.reactivestreams.Publisher<R>When this method is used theDeliveryGuaranteeis ignored as the user isn't listening to completion or lost segmentsMethods inherited from interface org.infinispan.reactive.publisher.impl.SegmentPublisherSupplier
publisherWithSegments
-
Method Details
-
publisherWithoutSegments
org.reactivestreams.Publisher<R> publisherWithoutSegments()When this method is used theDeliveryGuaranteeis ignored as the user isn't listening to completion or lost segments- Specified by:
publisherWithoutSegmentsin interfaceSegmentPublisherSupplier<R>
-
publisherWithLostSegments
default org.reactivestreams.Publisher<SegmentAwarePublisherSupplier.NotificationWithLost<R>> publisherWithLostSegments()Same asSegmentPublisherSupplier.publisherWithSegments(), except that we also can notify a listener when a segment has been lost before publishing all its entries.The provided
DeliveryGuaranteewhen creating this SegmentAwarePublisherSupplier will control how a lost segment notification is raisedSegmentAwarePublisherSupplier.NotificationWithLost.isLostSegment().Summary of Delivery Guarantee Effects
Delivery Guarantee Effect DeliveryGuarantee.AT_MOST_ONCEA segment is lost only if this node is not the read owner when starting to read it. If ths segment is no longer readable after the publisher started, no more entries are returned and the segment is completed normally. DeliveryGuarantee.AT_LEAST_ONCESame as DeliveryGuarantee.EXACTLY_ONCE.DeliveryGuarantee.EXACTLY_ONCEA segment is lost if at any point while reading entries from it, this node is no longer a read owner of the given segment. Therefore if the segment is complete, the publisher is guaranteed to include all values for the given segment. If the cache is LOCAL only the
DeliveryGuarantee.AT_MOST_ONCEshould be used as there is no difference between the different guarantees, and it is more performant. -
publisherWithLostSegments
org.reactivestreams.Publisher<SegmentAwarePublisherSupplier.NotificationWithLost<R>> publisherWithLostSegments(boolean reuseNotifications) Same asSegmentPublisherSupplier.publisherWithSegments(), except that we also can notify a listener when a segment has been lost before publishing all its entriesIf reuseNotifications parameter is true then the returned Notifications can be the same object containing different results. This means any consumer must not store the Notification or process them asynchronously or else you could find incorrect values. This parameter is solely for memory and performance uses when it is known that the returned Publisher will be consumed synchronously and process the values and segments immediately.
- Parameters:
reuseNotifications- If the returned Publisher can reuse notification objects to save memory
-