GitHub user prateekm opened a pull request:
https://github.com/apache/samza/pull/552
SAMZA-1745: Remove all usages of StreamSpec and ApplicationRunner from the
operator spec and impl layers.
This PR is a pre-requisite for adding support for user-provided
SystemDescriptors and StreamDescriptors to the High Level API.
It removes all usages of StreamSpec and ApplicationRunner from the
OperatorSpec and OperatorImpl layers. DAG specification (StreamGraphSpec,
OperatorSpecs) now only relies on logical streamIds (and in future, will use
the user-provided StreamDescriptors). DAG execution (i.e., StreamOperatorTask,
OperatorImpls) now only relies on logical streamIds and their corresponding
SystemStreams, which are obtained using StreamConfig in OperatorImplGraph.
After this change, StreamSpec can be thought of as the API between
StreamManager and SystemAdmins for creating and validating streams. Ideally
ExecutionPlanner shouldn't rely on StreamSpec either, but it currently does so
extensively, so I'll leave that refactor for later.
Additional changes:
1. ApplicationRunner is no longer responsible for creating/returning
StreamSpec instances. Instances can be created directly using the StreamSpec
constructors, or by using one of the util methods in the new StreamUtil class.
2. StreamSpec class no longer tracks the isBroadcast and isBounded status
for streams.
The former was being used for communicating broadcast status from the
StreamGraphSpec to the planner so that it could write the broadcast input
configurations. This is now done using a separate Set of broadcast streamIds in
StreamGraphSpec.
The latter was being set by the ApplicationRunner based on a config, and
then passed to the planner so that it could write the bounded input configs.
This was redundant, so I removed it.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/prateekm/samza stream-spec-cleanup
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/samza/pull/552.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 #552
----
commit 8e6fc2dac5af11f0748fdcd32175c2ae95418fc7
Author: prateekm <prateekm@...>
Date: 2018-06-09T22:01:10Z
Remove all usages of StreamSpec and ApplicationRunner from the operator
spec and impl layers.
----
---