-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Query Optimization
The idea with the WindowManager is to act as a middle-man between the aggregation stage (which receives documents and outputs documents) and the window functions (which accumulate values, potentially remove, and return a computed result).
Some concepts that would be worth hashing out:
- How will the stage logic interact with the WindowManager? Or vice versa?
- Likewise, who is responsible for driving the pulling of the next document in the pipeline?
- Can we assume that all docs in a partition will be buffered?
- What sort of state is shared across the different WindowManagers and what is unique?
- When the stage detects a new partition, what is the exact sequence of events to populate the remaining documents? This piece will likely require logic in both the stage and the window manager