[ 
https://issues.apache.org/jira/browse/SAMZA-552?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14350680#comment-14350680
 ] 

Jay Kreps commented on SAMZA-552:
---------------------------------

I think we are in agreement about pushdown. Incremental operations can store 
the value so far and in that case the changelog is the output. This will cover 
the common case of sums, counts, max, min, and other projections. What is the 
right mathematical term for this property? I think a full outer join has this 
property but other joins don't. Medians and quantiles don't have the property 
as you say though they are not too important.

However in those common cases the aggregation would just be a normal state 
store containing the result so far, right?

In the non-optimizable cases we are still talking about using the existing 
key-value store, right? It is just that the content of this store isn't the 
output of the operator. This would be the case for an inner join, I think, 
where the contents of the store are the rows in the window but the output is 
the join computed off this state.

I think it would be good to use (or improve) the existing abstraction so that 
we can put some time into really nailing performance on that and have it pay 
off for both direct Java usage of the key value store and also the operator 
usage.













> Tuple or time window semantics in physical operator
> ---------------------------------------------------
>
>                 Key: SAMZA-552
>                 URL: https://issues.apache.org/jira/browse/SAMZA-552
>             Project: Samza
>          Issue Type: Sub-task
>          Components: sql
>    Affects Versions: 0.9.0
>            Reporter: Yi Pan (Data Infrastructure)
>            Assignee: Yi Pan (Data Infrastructure)
>         Attachments: DESIGN-SAMZA-552-3.md, DESIGN-SAMZA-552-3.pdf
>
>
> The discussion is based on how to support tuple and/or time based window 
> operators in Samza physical operator layer.
> Here are the few observations:
> # Tuple represents the “physical ordering” of events while time-based window 
> has semantic meanings to users
> # Total ordering between tuples are possible within Samza/Kafka given a 
> deterministic MessageSelector on all input streams and offsets within each 
> stream
> # No matter whether tuple or time is used to measure the window size, the 
> window termination condition is needed to close a window to avoid the job to 
> be wedged forever
> The following questions have to be answered to fully implement a window 
> operator:
> # how to determine that a window is closed and no new tuples will be added?
> ## For tuple based, how do we close the window if messages do not come or get 
> delayed?
> ## For time based, how do we close the window if
> ### the messages are not strictly in order w/ the time?
> ### the message w/ timestamp greater than the window boundary does not come 
> or gets delayed?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to