Interface AsyncStateSlicingWindowProcessor<W>

All Superinterfaces:
AsyncStateWindowProcessor<W>, Serializable, WindowProcessor<W,AsyncStateWindowProcessor.AsyncStateContext<W>>
All Known Implementing Classes:
AbstractAsyncStateSliceWindowAggProcessor, AsyncStateSliceSharedWindowAggProcessor, AsyncStateSliceUnsharedWindowAggProcessor

@Internal public interface AsyncStateSlicingWindowProcessor<W> extends AsyncStateWindowProcessor<W>
The AsyncStateSlicingWindowProcessor 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 AsyncStateSlicingWindowProcessor have different implementation for aggregate and topk or others.

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

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

Similar with SlicingSyncStateWindowProcessor, this processor is used for async state api.

See more details in WindowAggOperator.