flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Fabian Hueske (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-1045) Remove Combinable Annotation
Date Fri, 15 Jan 2016 10:24:39 GMT

    [ https://issues.apache.org/jira/browse/FLINK-1045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15101585#comment-15101585

Fabian Hueske commented on FLINK-1045:

As per [discussion on the dev mailing list|http://mail-archives.apache.org/mod_mbox/flink-dev/201601.mbox/%3CCAAdrtT2UETHDt-zYwbrDiZjnzOSJa7hucAufTBBsFeaCpb1WAA%40mail.gmail.com%3E],
we decided to:

- Remove (not deprecate) the {{Combinable}} annotation.
- Remove the default combine implementation of the {{RichGroupReduceFunction}}.
- Use a combiner for all {{GroupReduceFunction}} that implement a combine interface ({{CombineFunction}}
or {{GroupCombineFunction}}).

We did not discuss this, but I think it makes sense to change the name of the {{GroupReduceOperator.setCombinable()}}
method to {{disableCombiner()}}.

This change will require a review of all! {{GroupReduceFunction}} implementations.

> Remove Combinable Annotation
> ----------------------------
>                 Key: FLINK-1045
>                 URL: https://issues.apache.org/jira/browse/FLINK-1045
>             Project: Flink
>          Issue Type: Improvement
>          Components: DataSet API
>            Reporter: Fabian Hueske
>            Priority: Minor
>              Labels: api-change, breaking-api
>             Fix For: 1.0.0
> Since the {{combine()}} method was extracted into an interface, we can check if a function
is combinable by checking if the interface is implemented.
> Hence, the {{Combinable}} annotation could be removed, IMHO.
> However, this would change the API because {{RichGroupReduceFunction}} could no longer
have a default implementation of {{combine()}} that can be enabled by attaching the annotation.
> Right now, the {{Combinable}} annotation is just not necessary as the implementation
of the interface tells the system everything it needs to know.
> Removing the {{Combinable}} annotation would also make the handling of different combinable
functions easier. For example a function that implements the interfaces {{GroupReduceFunction}}
and {{FlatCombineFunction}} does not need to attach the annotation.

This message was sent by Atlassian JIRA

View raw message