Interface SlicingSyncStateWindowProcessor<W>

All Superinterfaces:
Serializable, SyncStateWindowProcessor<W>, WindowProcessor<W,SyncStateWindowProcessor.SyncStateContext<W>>
All Known Implementing Classes:
AbstractSliceSyncStateWindowAggProcessor, RowTimeSyncStateWindowDeduplicateProcessor, SliceSharedSyncStateWindowAggProcessor, SliceUnsharedSyncStateWindowAggProcessor, SyncStateWindowRankProcessor

@Internal public interface SlicingSyncStateWindowProcessor<W> extends SyncStateWindowProcessor<W>
The SlicingSyncStateWindowProcessor is an optimized processing for aligned windows which can apply the slicing optimization. The core idea of slicing optimization is to divide all elements from a data stream into a finite number of non-overlapping chunks (a.k.a. slices).

Concept of Slice

Dividing a window of aligned windows into a finite number of non-overlapping chunks, where the chunks are slices. It has the following properties:

  • An element must only belong to a single slice.
  • Slices are non-overlapping, i.e. S_i and S_j should not have any shared elements if i != j.
  • A window is consist of a finite number of slices.

The SlicingSyncStateWindowProcessor have different implementation for aggregate and topk or others.

The SlicingSyncStateWindowProcessor usually leverages the SliceAssigner to assign slices and calculate based on the slices. See SliceSharedSyncStateWindowAggProcessor as an example.

Note: since SlicingSyncStateWindowProcessor leverages slicing optimization for aligned windows, therefore, it doesn't support unaligned windows, e.g. session window.

See more details in WindowAggOperator.