Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.0.0
-
None
Description
Right now, the WindowOperator uses snapshotState and restoreState to do custom serialization/deserialization of the windowing state. Moving this to partitioned state would allow us to re-scale in the future. Also, once the partitioned state has support to run on ManagedMemory/Out-of-core state the WindowOperator would also automatically benefit from this, allowing very large windows and large window state.
The necessary steps are these:
- Enhance state interface with new primitive states: ReducableState, ListState, etc.. Also make state scoped to a namespace. Namespaces are necessary because we need state that is scoped by key and by window (window would be the namespace in this case)
- Enhance timer interface to also make timers scoped to a key/namespace
- Change WindowOperator to use these new interfaces