Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Create the two new windows defined by this record
    1. Aggregate existing records that fall within these windows with the current record's value
  2. Find existing windows that the new record falls within
    1. Add the new record's value to these windows' aggregations
  3. Send the updated and newly created windows to the window store.

With Sliding Windows, a new record creates two new windows: one that ends at the record's timestamp, and one that starts 1ms after the record's timestamp. The first window will contain the new record, while the second will not. This is shown with record b in figure 3. These windows were chosen to ensure that for all the records, every combination of possible records given the window size will be created. This allows for easy aggregation when creating new windows, as any aggregation needed in a new window will have already been calculated in an existing window, explanation here. For a new window that overlaps with existing records (record a in figure 3), these records will be aggregated and added to the new window's value.

...

As with hopping windows, sliding windows will emit partial results as windows are updated. This means that , so any window that gets a new aggregate or an updated aggregate will emit. Any window with the value set to the initializer will not be emitted, such as empty windows created by a new in-order record. This feature can be suppressed through suppression, which allows users to ignore all results except for the final one, only emitting after the grace period has passed. In the future, suppress can be updated to emit results for windows that are still within the grace period but whose start and end points are both earlier than stream time. 

...