Versions Compared

Key

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

...

A new record for SlidingWindows will always create be associated with two new windows. If either of those windows already exist in the windows store, their aggregation will simply be updated to include the new record , but and no duplicate window will be added to the WindowStore. If the window does not exist, the correct aggregation will be calculated and. it will be put in the window store. For in-order records, the left right window will always be empty. It will be stored in the window store with the its aggregate initialized to the user defined initializer, but its output will not be emitted until it contains a value. We store empty windows in order to make future lookups for overlapping windows simpler.

...

The left window of in-order records and both windows for out-of-order records need to be updated with the values of records that have already been processed, assuming there are existing records that wall within these windows and that these windows do not already exist.  Because each record creates or contributes to one new window that includes itself and one window that does not, we have the set of all possible windows stored in our WindowStore. Therefore, when we need to find an aggregation to create a new window, that aggregation is already stored somewhere in the WindowStore. Figure 2 illustrates how we will find the aggregation value for the new left window.

...