Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add stream context and window trigger #958

Conversation

dai-chen
Copy link
Collaborator

@dai-chen dai-chen commented Oct 24, 2022

Description

As another main component for stream data windowing, this PR adds Window Trigger along with Stream Context.

Stream Context

A stream context holds useful context information for all stream processing components. It’s also easy to store and restore between executions by put all state in one place.

Window Trigger

A window trigger determines whether to trigger window state output (a window pane). Common trigger implementation includes:

  • After Watermark: trigger if the window is below watermark.
  • Count: trigger based on a counter. A special case is per-event trigger for materialized view semantics.
  • Time: trigger when its time comes.

Note that window trigger is easy to be confused with watermark. Watermark is the way to reason about the completeness of window state. Window trigger upon user configuration can decide to trigger output no matter the window state is complete or not.

Issues Resolved

#951

Check List

  • New functionality includes testing.
    • All tests pass, including unit test, integration test and doctest
  • New functionality has been documented.
    • New functionality has javadoc added
    • New functionality has user manual doc added
  • Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@dai-chen dai-chen added the enhancement New feature or request label Oct 24, 2022
@dai-chen dai-chen self-assigned this Oct 24, 2022
@codecov-commenter
Copy link

codecov-commenter commented Oct 24, 2022

Codecov Report

Merging #958 (f3db6ad) into feature/maximus-m1 (91baab1) will decrease coverage by 35.19%.
The diff coverage is n/a.

@@                    Coverage Diff                    @@
##             feature/maximus-m1     #958       +/-   ##
=========================================================
- Coverage                 97.96%   62.76%   -35.20%     
=========================================================
  Files                       303       10      -293     
  Lines                      7805      658     -7147     
  Branches                    504      119      -385     
=========================================================
- Hits                       7646      413     -7233     
- Misses                      158      192       +34     
- Partials                      1       53       +52     
Flag Coverage Δ
query-workbench 62.76% <ø> (?)
sql-engine ?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
...c/main/java/org/opensearch/sql/ppl/PPLService.java
...c/main/java/org/opensearch/sql/expression/DSL.java
.../opensearch/sql/planner/logical/LogicalDedupe.java
...rch/planner/logical/rule/MergeSortAndRelation.java
...org/opensearch/sql/analysis/QualifierAnalyzer.java
.../opensearch/sql/planner/logical/LogicalFilter.java
...pensearch/sql/opensearch/mapping/IndexMapping.java
...ql/analysis/model/CatalogSchemaIdentifierName.java
.../org/opensearch/sql/sql/parser/AstSortBuilder.java
...ion/operator/predicate/UnaryPredicateOperator.java
... and 303 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@dai-chen dai-chen force-pushed the maximus-m1/add-window-trigger branch from 2c5c7ae to f3db6ad Compare October 27, 2022 18:42
@dai-chen dai-chen marked this pull request as ready for review October 27, 2022 20:59
@dai-chen dai-chen requested a review from a team as a code owner October 27, 2022 20:59
@dai-chen dai-chen added this to the Maximus M1 - Phase 1 milestone Oct 31, 2022
Copy link
Collaborator

@penghuo penghuo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks.

@dai-chen dai-chen merged commit 73787b7 into opensearch-project:feature/maximus-m1 Nov 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Development

Successfully merging this pull request may close these issues.

3 participants