[
https://issues.apache.org/jira/browse/FLINK-4854?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17334309#comment-17334309
]
Flink Jira Bot commented on FLINK-4854:
---------------------------------------
This issue was marked "stale-assigned" and has not received an update in 7
days. It is now automatically unassigned. If you are still working on it, you
can assign it to yourself again. Please also give an update about the status of
the work.
> Efficient Batch Operator in Streaming
> -------------------------------------
>
> Key: FLINK-4854
> URL: https://issues.apache.org/jira/browse/FLINK-4854
> Project: Flink
> Issue Type: Improvement
> Components: API / DataStream
> Reporter: Xiaowei Jiang
> Assignee: Guowei Ma
> Priority: Major
> Labels: features, stale-assigned
> Original Estimate: 168h
> Remaining Estimate: 168h
>
> Very often, it's more efficient to process a batch of records at once instead
> of processing them one by one. We can use window to achieve this
> functionality. However, window will store all records in states, which can be
> costly. It's desirable to have an efficient implementation of batch operator.
> The batch operator works per task and behave similarly to aligned windows.
> Here is an example of how the interface looks like to a user.
> {code}
> interface BatchFunction {
> // add the record to the buffer
> // returns if the batch is ready to be flushed
> boolean addRecord(T record);
> // process all pending records in the buffer
> void flush(Collector collector) ;
> }
> DataStream ds = ...
> BatchFunction func = ...
> ds.batch(func);
> {code}
> The operator calls addRecord for each record. The batch function saves the
> record in its own buffer. The addRecord returns if the pending buffer should
> be flushed. In that case, the operator invokes flush.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)