You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@samza.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2016/11/28 22:41:59 UTC

[jira] [Commented] (SAMZA-1054) Refactor public Operator APIs

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

ASF GitHub Bot commented on SAMZA-1054:
---------------------------------------

GitHub user prateekm opened a pull request:

    https://github.com/apache/samza/pull/25

    SAMZA-1054: Refactor Operator APIs

    Some suggestions for an Operator API refactor and misc. cleanup. It does contain some implementation changes, mostly due to deleted, extracted or merged classes. (e.g. OperatorFactory + ChainedOperators == OperatorImpls).
    
    Since git marked several moved classes as (delete + new) instead, it's probably best to apply the diff locally and  browse the code in an IDE.
    
    Some of the changes, in no particular order:
    * Extracted XFunction interfaces into a .functions package in -api.
    * -api's internal.Operators is now the -operators's spec.* package. Extracted interfaces and classes. Factory methods are now in OperatorSpecs.
    * -api's MessageStreams is now -api's MessageStream interface and -operators's MessageStreamImpl.
    * -api's internal.Windows classes are now in -api's .window package. Extracted interfaces and classes, but no implementation changes.
    * OperatorFactory + ChainedOperators is now OperatorImpls, which is used from StreamOperatorAdaptorTask.
    * Added a NoOpOperatorImpl, which acts as the root node for the OperatorImpl DAG returned by OperatorImpls.
    * Removed usages of reactivestreams APIs since current code looks simpler without them. We can add them back when we need features like backpressure etc.
    * Removed the InputSystemMessage interface.
    * Made field names consistent (e.g Fn suffix for functions everywhere etc.).
    * Some method/class visibility changes due to moved classes. Haven't done this for all the classes yet.
    * General documentation changes, mostly to make public APIs clearer. Haven't done this for all the classes yet.
    
    There are additional questions/tasks that we can address in future RBs:
    * Updating Window and Trigger APIs.
    * Merging samza-operator into samza-core.
    * Questions about Message timestamp and Offset comparison semantics.
    * Questions about OperatorSpec serialization (e.g. ID generation).
    * Questions about StateStoreImpl and StoreFunctions.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/prateekm/samza master

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/samza/pull/25.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #25
    
----
commit 25f2f54d8ce9a418629c71c872eddf50b01c5a03
Author: Prateek Maheshwari <pm...@linkedin.com>
Date:   2016-11-28T22:31:12Z

    SAMZA-1054: Refactor Operator APIs
    
    Some suggestions for an Operator API refactor and misc. cleanup. It does contain some implementation changes, mostly due to deleted, extracted or merged classes. (e.g. OperatorFactory + ChainedOperators == OperatorImpls).
    
    Since git marked several moved classes as (delete + new) instead, it's probably best to apply the diff locally and  browse the code in an IDE.
    
    Some of the changes, in no particular order:
    * Extracted XFunction interfaces into a .functions package in -api.
    * -api's internal.Operators is now the -operators's spec.* package. Extracted interfaces and classes. Factory methods are now in OperatorSpecs.
    * -api's MessageStreams is now -api's MessageStream interface and -operators's MessageStreamImpl.
    * -api's internal.Windows classes are now in -api's .window package. Extracted interfaces and classes, but no implementation changes.
    * OperatorFactory + ChainedOperators is now OperatorImpls, which is used from StreamOperatorAdaptorTask.
    * Added a NoOpOperatorImpl, which acts as the root node for the OperatorImpl DAG returned by OperatorImpls.
    * Removed usages of reactivestreams APIs since current code looks simpler without them. We can add them back when we need features like backpressure etc.
    * Removed the InputSystemMessage interface.
    * Made field names consistent (e.g Fn suffix for functions everywhere etc.).
    * Some method/class visibility changes due to moved classes. Haven't done this for all the classes yet.
    * General documentation changes, mostly to make public APIs clearer. Haven't done this for all the classes yet.
    
    There are additional questions/tasks that we can address in future RBs:
    * Updating Window and Trigger APIs.
    * Merging samza-operator into samza-core.
    * Questions about Message timestamp and Offset comparison semantics.
    * Questions about OperatorSpec serialization (e.g. ID generation).
    * Questions about StateStoreImpl and StoreFunctions.

----


> Refactor public Operator APIs
> -----------------------------
>
>                 Key: SAMZA-1054
>                 URL: https://issues.apache.org/jira/browse/SAMZA-1054
>             Project: Samza
>          Issue Type: Sub-task
>          Components: sql
>            Reporter: Prateek Maheshwari
>            Assignee: Prateek Maheshwari
>




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