GitHub user tgroh opened a pull request:
https://github.com/apache/incubator-beam/pull/754
[BEAM-156] Use Quiescence to Drive the DirectRunner
Be sure to do all of the following to help us incorporate your contribution
quickly and easily:
- [ ] Make sure the PR title is formatted like:
`[BEAM-<Jira issue #>] Description of pull request`
- [ ] Make sure tests pass via `mvn clean verify`. (Even better, enable
Travis-CI on your fork and ensure the whole test matrix passes).
- [ ] Replace `<Jira issue #>` in the title with the actual Jira issue
number, if there is one.
- [ ] If this contribution is large, please file an Apache
[Individual Contributor License
Agreement](https://www.apache.org/licenses/icla.txt).
---
The Executor should add work whenever it becomes Quiescent.
Track the amount of outstanding work in the executor, and
modify the state appropriately whenever work is scheduled or completes.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/tgroh/incubator-beam quiescence_driver
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/incubator-beam/pull/754.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 #754
----
commit b4afedad05291585205c81e813c7bbb7f0e5c167
Author: Thomas Groh <[email protected]>
Date: 2016-07-22T20:47:19Z
Apply ExecutorUpdates in two Phases
This removes the need for an explicit break by ensuring that work added
by the monitor will not complete and add more work for the monitor to
complete.
commit 3c4a0d39b6655228cfb0d6870e69f229a85537ac
Author: Thomas Groh <[email protected]>
Date: 2016-07-23T01:01:41Z
Add handleEmpty to CompletionCallback
This is invoked when a Transform Executor has no work to do. Usually
this is due to reinvocation of a Source.
commit 292276cfd4e56bfb9a0278e2717d5eb49e304e3e
Author: Thomas Groh <[email protected]>
Date: 2016-07-26T16:53:22Z
Add ProducedOutput method to TransformResult
This can communicate that a PTransform that produced no outputs still
should cause pending work to be evaluated. PCollectionViews modifiy the
state of the evaluator and can cause formerly blocked PTransforms to be
able to progress.
commit 0397f9f67ee1af8866b72019f0b5cf97c4e6b62a
Author: Thomas Groh <[email protected]>
Date: 2016-07-22T20:47:43Z
Use the State of the Executor to drive progress
Add the concept of Quiescence to ExecutorServiceParallelExecutor.
If the executor is Quiescent, it should interrogate root nodes for
additional work. If not, runs of the monitor should update the state as
appropriate.
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---