You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by "Eugene Kirpichov (JIRA)" <ji...@apache.org> on 2017/07/26 02:24:00 UTC

[jira] [Created] (BEAM-2680) Improve scalability of the Watch transform

Eugene Kirpichov created BEAM-2680:
--------------------------------------

             Summary: Improve scalability of the Watch transform
                 Key: BEAM-2680
                 URL: https://issues.apache.org/jira/browse/BEAM-2680
             Project: Beam
          Issue Type: Bug
          Components: sdk-java-core
            Reporter: Eugene Kirpichov
            Assignee: Eugene Kirpichov


https://github.com/apache/beam/pull/3565 introduces the Watch transform http://s.apache.org/beam-watch-transform.

The implementation leaves several scalability-related TODOs:
1) The state stores hashes and timestamps of outputs that have already been output and should be omitted from future polls. We could garbage-collect this state, e.g. dropping elements from "completed" and from addNewAsPending() if their timestamp is more than X behind the watermark.
2) When a poll returns a huge number of elements, we don't necessarily have to add all of them into state.pending - instead we could add only N elements and ignore others, relying on future poll rounds to provide them, in order to avoid blowing up the state. Combined with garbage collection of GrowthState.completed, this would make the transform scalable to very large poll results.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)