beam-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kenneth Knowles (JIRA)" <>
Subject [jira] [Commented] (BEAM-912) Trigger can be more flexible
Date Fri, 04 Nov 2016 18:05:58 GMT


Kenneth Knowles commented on BEAM-912:


Your example does not actually seem to include triggers at all. Can you explain?

As for the suggestion itself: we have deliberately removed the {{onElement}} method and the
rest of the state machine from Beam's triggers and made them "just syntax". There are a few
reasons for this:

 - User-defined triggers are not cross-language, yet. We need to design a language-independent
way for runners to invoke user-defined triggers.
 - Runners may actually have better ways of executing some triggers, so we don't want them
to necessarily be black boxes.
 - There are many {{onElement}}-based state machines that are not correct triggers. Even the
triggers we have today took a while to get right - they are not usable enough yet. So when
we do create a cross-language cross-runner user-defined trigger API, it won't look like the
current API, but will be more like the details I've added to BEAM-101. Basically a combiner
and a predicate.

> Trigger can be more flexible
> ------------------------------
>                 Key: BEAM-912
>                 URL:
>             Project: Beam
>          Issue Type: New Feature
>          Components: beam-model
>            Reporter: Jingsong Lee
>            Assignee: Frances Perry
> 1.We can support some data-driven trigger, so we need expose data in OnElementContext
of onElement method. 
> 2.We can support more flexible join, so we need expose buffer tag in TriggerContext,
now this buffer tag is in SystemReduceFn.
> for example: SELECT STREAM * FROM Orders AS o JOIN Shipments AS s
> ON o.orderId = s.orderId AND s.rowtime BETWEEN o.rowtime AND o.rowtime + INTERVAL '1'
> link:

This message was sent by Atlassian JIRA

View raw message