[ https://issues.apache.org/jira/browse/BEAM-156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15398500#comment-15398500 ]
ASF GitHub Bot commented on BEAM-156: ------------------------------------- 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 <tg...@google.com> 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 <tg...@google.com> 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 <tg...@google.com> 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 <tg...@google.com> 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. ---- > Implement Quiescence Signalling in the InProcessPipelineRunner > -------------------------------------------------------------- > > Key: BEAM-156 > URL: https://issues.apache.org/jira/browse/BEAM-156 > Project: Beam > Issue Type: Improvement > Components: sdk-java-core > Reporter: Thomas Groh > Assignee: Thomas Groh > > A pipeline is quiescent when the following two properties hold: > There are no triggers that can fire, given the current processing time and > watermark > All pending elements cannot make progress until a side input produces > additional output > This is approximately equivalent to: If no more input is received, the > pipeline will not perform any additional processing absent advances in > processing time or event time > See also: > https://docs.google.com/document/d/1fZUUbG2LxBtqCVabQshldXIhkMcXepsbv2vuuny8Ix4/edit# -- This message was sent by Atlassian JIRA (v6.3.4#6332)