[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15768175#comment-15768175 ] ASF GitHub Bot commented on BEAM-25: Github user asfgit closed the pull request at: https://github.com/apache/incubator-beam/pull/1670 > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: New Feature > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15765628#comment-15765628 ] ASF GitHub Bot commented on BEAM-25: GitHub user kennknowles opened a pull request: https://github.com/apache/incubator-beam/pull/1670 [BEAM-25, BEAM-1117] Fixes for direct runner expansion and evaluation of stateful ParDo Be sure to do all of the following to help us incorporate your contribution quickly and easily: - [x] Make sure the PR title is formatted like: `[BEAM-] 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). - [x] Replace `` in the title with the actual Jira issue number, if there is one. - [x] If this contribution is large, please file an Apache [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.txt). --- R: @tgroh also peeled off from the timers PR, these are fixes for the whole setup. You can merge this pull request into a Git repository by running: $ git pull https://github.com/kennknowles/incubator-beam DirectRunner-Stateful Alternatively you can review and apply these changes as the patch at: https://github.com/apache/incubator-beam/pull/1670.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 #1670 commit 0615fc9749c3fd0012f4d5524ea8486413778636 Author: Kenneth KnowlesDate: 2016-12-20T21:58:29Z Fix windowing in direct runner Stateful ParDo commit 7bc23d6b53ed29ae565121df49180ad8d4aac653 Author: Kenneth Knowles Date: 2016-12-20T23:59:45Z Actually propagate and commit state in direct runner > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: New Feature > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15731043#comment-15731043 ] ASF GitHub Bot commented on BEAM-25: Github user asfgit closed the pull request at: https://github.com/apache/incubator-beam/pull/1543 > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: New Feature > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15730142#comment-15730142 ] ASF GitHub Bot commented on BEAM-25: GitHub user kennknowles opened a pull request: https://github.com/apache/incubator-beam/pull/1543 [BEAM-25] Move CopyOnAccessStateInternals to runners/direct 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-] 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 `` 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). --- R: @tgroh this is only actually used by the direct runner. Not necessarily the greatest JIRA for this, but I'm not sure of a blanket for cleaning out the SDK's excessive surface area, so I went with the state ticket. You can merge this pull request into a Git repository by running: $ git pull https://github.com/kennknowles/incubator-beam CopyOnAccessStateInternals Alternatively you can review and apply these changes as the patch at: https://github.com/apache/incubator-beam/pull/1543.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 #1543 commit 019612ba5e5a656e848d458617007d39be42b3e9 Author: Kenneth KnowlesDate: 2016-12-07T22:28:39Z Move CopyOnAccessStateInternals to runners/direct > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: New Feature > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15703141#comment-15703141 ] ASF GitHub Bot commented on BEAM-25: Github user asfgit closed the pull request at: https://github.com/apache/incubator-beam/pull/1399 > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: New Feature > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15687588#comment-15687588 ] ASF GitHub Bot commented on BEAM-25: Github user asfgit closed the pull request at: https://github.com/apache/incubator-beam/pull/1410 > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: Sub-task > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15687550#comment-15687550 ] ASF GitHub Bot commented on BEAM-25: Github user asfgit closed the pull request at: https://github.com/apache/incubator-beam/pull/1409 > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: Sub-task > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15685778#comment-15685778 ] ASF GitHub Bot commented on BEAM-25: GitHub user kennknowles opened a pull request: https://github.com/apache/incubator-beam/pull/1411 [BEAM-25] Temporarily reject stateful ParDo in ApexRunner (until support is added) Be sure to do all of the following to help us incorporate your contribution quickly and easily: - [x] Make sure the PR title is formatted like: `[BEAM-] Description of pull request` - [x] Make sure tests pass via `mvn clean verify`. (Even better, enable Travis-CI on your fork and ensure the whole test matrix passes). - [x] Replace `` in the title with the actual Jira issue number, if there is one. - [x] If this contribution is large, please file an Apache [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.txt). --- R: @bjchambers At present, the user-facing API for stateful `DoFn` is in the codebase but prevented from use. It is `ParDo.of(...)` that rejects stateful `DoFn`. In #1399 I am removing this rejection, so I need to add it to all runners until they support the API. I have also added a JUnit category so runners can exclude this from their `RunnableOnService` test suites. You can merge this pull request into a Git repository by running: $ git pull https://github.com/kennknowles/incubator-beam DataflowRunner-state Alternatively you can review and apply these changes as the patch at: https://github.com/apache/incubator-beam/pull/1411.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 #1411 commit c9640ea08e8078752a51508430c3661555c4c8a7 Author: Kenneth KnowlesDate: 2016-11-16T05:35:03Z Reject stateful DoFn in DataflowRunner commit 7b7d2dd30ee7bf56fddaa221386f1046875176b1 Author: Kenneth Knowles Date: 2016-11-21T23:41:13Z Add JUnit category for stateful ParDo tests > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: Sub-task > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15685776#comment-15685776 ] ASF GitHub Bot commented on BEAM-25: GitHub user kennknowles opened a pull request: https://github.com/apache/incubator-beam/pull/1410 [BEAM-25] Temporarily reject stateful ParDo in ApexRunner (until support is added) Be sure to do all of the following to help us incorporate your contribution quickly and easily: - [x] Make sure the PR title is formatted like: `[BEAM-] Description of pull request` - [x] Make sure tests pass via `mvn clean verify`. (Even better, enable Travis-CI on your fork and ensure the whole test matrix passes). - [x] Replace `` in the title with the actual Jira issue number, if there is one. - [x] If this contribution is large, please file an Apache [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.txt). --- R: @tweise At present, the user-facing API for stateful `DoFn` is in the codebase but prevented from use. It is `ParDo.of(...)` that rejects stateful `DoFn`. In #1399 I am removing this rejection, so I need to add it to all runners until they support the API. I have also added a JUnit category so runners can exclude this from their `RunnableOnService` test suites. You can merge this pull request into a Git repository by running: $ git pull https://github.com/kennknowles/incubator-beam ApexRunner-state Alternatively you can review and apply these changes as the patch at: https://github.com/apache/incubator-beam/pull/1410.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 #1410 commit e85cea78253d2f316a18d95d65aabc1176448841 Author: Kenneth KnowlesDate: 2016-11-16T05:33:01Z Reject stateful DoFn in ApexRunner commit f8b6bb7f1ab8720ca4f2d766831d8f243dd27085 Author: Kenneth Knowles Date: 2016-11-21T23:41:13Z Add JUnit category for stateful ParDo tests > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: Sub-task > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15685772#comment-15685772 ] ASF GitHub Bot commented on BEAM-25: GitHub user kennknowles opened a pull request: https://github.com/apache/incubator-beam/pull/1409 [BEAM-25] Temporarily reject stateful ParDo in SparkRunner (until support is added) Be sure to do all of the following to help us incorporate your contribution quickly and easily: - [x] Make sure the PR title is formatted like: `[BEAM-] Description of pull request` - [x] Make sure tests pass via `mvn clean verify`. (Even better, enable Travis-CI on your fork and ensure the whole test matrix passes). - [x] Replace `` in the title with the actual Jira issue number, if there is one. - [x] If this contribution is large, please file an Apache [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.txt). --- R: @amitsela At present, the user-facing API for stateful `DoFn` is in the codebase but prevented from use. It is `ParDo.of(...)` that rejects stateful `DoFn`. In #1399 I am removing this rejection, so I need to add it to all runners until they support the API. I have also added a JUnit category so runners can exclude this from their `RunnableOnService` test suites. You can merge this pull request into a Git repository by running: $ git pull https://github.com/kennknowles/incubator-beam SparkRunner-state Alternatively you can review and apply these changes as the patch at: https://github.com/apache/incubator-beam/pull/1409.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 #1409 commit 8d715689dd5283b7b180c0b9ec4e188abba140f5 Author: Kenneth KnowlesDate: 2016-11-21T23:41:13Z Add JUnit category for stateful ParDo tests commit b0d07d74f7805ee1d30fdedf54c089790d63d898 Author: Kenneth Knowles Date: 2016-11-16T05:33:13Z Reject stateful DoFn in SparkRunner > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: Sub-task > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15685770#comment-15685770 ] ASF GitHub Bot commented on BEAM-25: GitHub user kennknowles opened a pull request: https://github.com/apache/incubator-beam/pull/1408 [BEAM-25] Temporarily reject stateful ParDo in FlinkRunner (until support is added) Be sure to do all of the following to help us incorporate your contribution quickly and easily: - [x] Make sure the PR title is formatted like: `[BEAM-] Description of pull request` - [x] Make sure tests pass via `mvn clean verify`. (Even better, enable Travis-CI on your fork and ensure the whole test matrix passes). - [x] Replace `` in the title with the actual Jira issue number, if there is one. - [x] If this contribution is large, please file an Apache [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.txt). --- R: @aljoscha or @mxm At present, the user-facing API for stateful `DoFn` is in the codebase but prevented from use. It is `ParDo.of(...)` that rejects stateful `DoFn`. In #1399 I am removing this rejection, so I need to add it to all runners until they support the API. I have also added a JUnit category so runners can exclude this from their `RunnableOnService` test suites. You can merge this pull request into a Git repository by running: $ git pull https://github.com/kennknowles/incubator-beam FlinkRunner-state Alternatively you can review and apply these changes as the patch at: https://github.com/apache/incubator-beam/pull/1408.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 #1408 commit 7de2ea30c46d076771d2759111558a01d39d8a84 Author: Kenneth KnowlesDate: 2016-11-16T05:33:28Z Reject stateful DoFn in FlinkRunner commit 75744f99d5ef0cb7c0da333c2f0651ee13901e8f Author: Kenneth Knowles Date: 2016-11-21T23:41:13Z Add JUnit category for stateful ParDo tests > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: Sub-task > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15684574#comment-15684574 ] ASF GitHub Bot commented on BEAM-25: GitHub user kennknowles opened a pull request: https://github.com/apache/incubator-beam/pull/1399 [BEAM-25] Direct runner state Be sure to do all of the following to help us incorporate your contribution quickly and easily: - [x] Make sure the PR title is formatted like: `[BEAM-] Description of pull request` - [x] Make sure tests pass via `mvn clean verify`. (Even better, enable Travis-CI on your fork and ensure the whole test matrix passes). - [x] Replace `` in the title with the actual Jira issue number, if there is one. - [x] If this contribution is large, please file an Apache [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.txt). --- You can merge this pull request into a Git repository by running: $ git pull https://github.com/kennknowles/incubator-beam DirectRunner-state Alternatively you can review and apply these changes as the patch at: https://github.com/apache/incubator-beam/pull/1399.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 #1399 commit 9d35e9f715f2c76ae54f3b304e41d1dbdf8c0f92 Author: Kenneth KnowlesDate: 2016-11-16T05:33:01Z Reject stateful DoFn in ApexRunner commit aab81549a70d1ac3f6580f66759566f673c243b8 Author: Kenneth Knowles Date: 2016-11-16T05:33:13Z Reject stateful DoFn in SparkRunner commit 0c2aa666ecaf7def9fa28c6dc81b90c3ad0dc873 Author: Kenneth Knowles Date: 2016-11-16T05:33:28Z Reject stateful DoFn in FlinkRunner commit ec12dd3102d0a76e5b4cf7ad0a503b746e165d01 Author: Kenneth Knowles Date: 2016-11-16T05:35:03Z Reject stateful DoFn in DataflowRunner commit a66e71fb92734f6d423ce9ee012812322992ba40 Author: Kenneth Knowles Date: 2016-11-10T05:10:51Z Add State parameter support to SimpleDoFnRunner commit 8a058b14ab4084ee122d396f96ef2b76d86d3368 Author: Kenneth Knowles Date: 2016-11-21T19:34:45Z Remove overspecified type in ParDoEvaluator commit 677155a6148ea383065c1792db49e283e466cef1 Author: Kenneth Knowles Date: 2016-11-10T05:59:15Z Add support for Stateful ParDo in the Direct runner This adds overrides and new evaluators to ensure that state is accessed in a single-threaded manner per key and is cleaned up when a window expires. > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: Sub-task > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15671914#comment-15671914 ] ASF GitHub Bot commented on BEAM-25: Github user kennknowles closed the pull request at: https://github.com/apache/incubator-beam/pull/1347 > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: Sub-task > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15645813#comment-15645813 ] ASF GitHub Bot commented on BEAM-25: Github user asfgit closed the pull request at: https://github.com/apache/incubator-beam/pull/1282 > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: Sub-task > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15634982#comment-15634982 ] ASF GitHub Bot commented on BEAM-25: Github user kennknowles closed the pull request at: https://github.com/apache/incubator-beam/pull/1281 > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: Sub-task > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15634920#comment-15634920 ] ASF GitHub Bot commented on BEAM-25: GitHub user kennknowles opened a pull request: https://github.com/apache/incubator-beam/pull/1281 [BEAM-25] Generalized extra context factory Be sure to do all of the following to help us incorporate your contribution quickly and easily: - [x] Make sure the PR title is formatted like: `[BEAM-] Description of pull request` - [x] Make sure tests pass via `mvn clean verify`. (Even better, enable Travis-CI on your fork and ensure the whole test matrix passes). - [x] Replace `` in the title with the actual Jira issue number, if there is one. - [x] If this contribution is large, please file an Apache [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.txt). --- R: @jkff Only the last commit is new. This makes it so each "extra" parameter gets to return a wholly arbitrary stack manipulation. This will be needed to pass the parameters for state and timers. I am proposing it now because it also cleans up the type casting, and will make downcasting of the window type a trivial act in parallel with other developments. You can merge this pull request into a Git repository by running: $ git pull https://github.com/kennknowles/incubator-beam Generalized-ExtraContextFactory Alternatively you can review and apply these changes as the patch at: https://github.com/apache/incubator-beam/pull/1281.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 #1281 commit 880a538f4ad43d6399bd873c7b6cb7a786a13b6a Author: Kenneth KnowlesDate: 2016-11-01T22:38:01Z Add TypeDescriptor#getTypes commit 340d922503c06d3a82e964ef0fdf1e04713e40b9 Author: Kenneth Knowles Date: 2016-11-01T21:48:54Z Switch DoFnSignature, etc, from TypeToken to TypeDescriptor commit 3061436c8719b073a3d5176566ea5e6493224e9c Author: Kenneth Knowles Date: 2016-11-01T21:50:24Z DoFnSignature: Make TypeDescriptor-returning methods public commit e117ac82cfabcb8b9729e13c98647c799ea7caf3 Author: Kenneth Knowles Date: 2016-11-01T04:30:40Z Refactor and reuse parameter analysis in DoFnSignatures commit 8610daa593cd4113ef033391c0d95e77dd513922 Author: Kenneth Knowles Date: 2016-11-04T01:42:25Z Generalize extraction of DoFn parameters from context > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: Sub-task > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15600345#comment-15600345 ] Kenneth Knowles commented on BEAM-25: - {{DirectRunner}} has {{ParDo}} tests that need to be un-ignored when this is supported. > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: Sub-task > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15574331#comment-15574331 ] ASF GitHub Bot commented on BEAM-25: Github user asfgit closed the pull request at: https://github.com/apache/incubator-beam/pull/1086 > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: Sub-task > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15569622#comment-15569622 ] ASF GitHub Bot commented on BEAM-25: GitHub user kennknowles opened a pull request: https://github.com/apache/incubator-beam/pull/1086 [BEAM-25] Add DoFn.StateId annotation and validation on fields Be sure to do all of the following to help us incorporate your contribution quickly and easily: - [x] Make sure the PR title is formatted like: `[BEAM-] 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). - [x] Replace `` in the title with the actual Jira issue number, if there is one. - [x] If this contribution is large, please file an Apache [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.txt). --- This introduces just the annotation with analysis and validation in `DoFnSignature`. To keep reviews small and easy (and happening in parallel with other functionality) my plan is to gradually introduce the annotations and validation, while rejecting pipelines that actually use them. You can merge this pull request into a Git repository by running: $ git pull https://github.com/kennknowles/incubator-beam DoFn-State-annotations Alternatively you can review and apply these changes as the patch at: https://github.com/apache/incubator-beam/pull/1086.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 #1086 commit 739720655224211dd1759bbe2c52fed7c7ecee47 Author: Kenneth KnowlesDate: 2016-10-11T04:16:37Z Add DoFn.StateId annotation and validation on fields > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: Sub-task > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15569301#comment-15569301 ] ASF GitHub Bot commented on BEAM-25: Github user asfgit closed the pull request at: https://github.com/apache/incubator-beam/pull/1044 > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: Sub-task > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15563315#comment-15563315 ] ASF GitHub Bot commented on BEAM-25: Github user kennknowles closed the pull request at: https://github.com/apache/incubator-beam/pull/1064 > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: Sub-task > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15553512#comment-15553512 ] ASF GitHub Bot commented on BEAM-25: GitHub user kennknowles opened a pull request: https://github.com/apache/incubator-beam/pull/1064 [BEAM-25] Add StateSpec as a curried way to build a StateTag Be sure to do all of the following to help us incorporate your contribution quickly and easily: - [x] Make sure the PR title is formatted like: `[BEAM-] 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). - [x] Replace `` in the title with the actual Jira issue number, if there is one. - [x] If this contribution is large, please file an Apache [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.txt). --- This is an alternative to #1044, based on lessons learned there. Instead of moving the disjoint union destruction to `StateSpec` and rebuilding `StateTag` = `StateSpec` + ID I have instead written `StateSpec` = `StateTag` - ID :-) I tend to think that `StateSpec` "should" be an independent thing, but that would mean the ability to `bind` it to a state cell without providing an ID. Given current design considerations, I don't think that fits as well. So instead, this PR just embraces the fact that a `StateSpec` has no real independent meaning, but is just a curried form of `StateTag` for use in the proposed state API. I'm curious if you have a preference. R: @bjchambers AND @tgroh AND @aljoscha You can merge this pull request into a Git repository by running: $ git pull https://github.com/kennknowles/incubator-beam StateSpec-curry Alternatively you can review and apply these changes as the patch at: https://github.com/apache/incubator-beam/pull/1064.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 #1064 commit bc9e4b64bb68bf35e74cfb459a727b1a34655b2c Author: Kenneth KnowlesDate: 2016-10-06T22:46:44Z Add StateSpec as a curried way to build a StateTag > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: Sub-task > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15546294#comment-15546294 ] ASF GitHub Bot commented on BEAM-25: GitHub user kennknowles opened a pull request: https://github.com/apache/incubator-beam/pull/1044 [BEAM-25] Refactor StateSpec out of StateTag Be sure to do all of the following to help us incorporate your contribution quickly and easily: - [x] Make sure the PR title is formatted like: `[BEAM-] 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). - [x] Replace `` in the title with the actual Jira issue number, if there is one. - [x] If this contribution is large, please file an Apache [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.txt). --- R: @aljoscha AND @tgroh AND @bjchambers This is a rebase of #793 without much cleanup. The same commentary applies - I'm not totally happy with it but I want to ask for feedback. You can merge this pull request into a Git repository by running: $ git pull https://github.com/kennknowles/incubator-beam StateSpec Alternatively you can review and apply these changes as the patch at: https://github.com/apache/incubator-beam/pull/1044.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 #1044 commit 1f2de1e1212cbdb5eb3c8cb7caf30b94da5e0b00 Author: Kenneth KnowlesDate: 2016-08-05T03:50:28Z Create StateSpec parallel to StateTag commit 6fa680858719eaf13edcc08aa3f3260584876fb5 Author: Kenneth Knowles Date: 2016-08-05T04:48:48Z Make StateTag carry a StateSpec separately from its id > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: Sub-task > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (BEAM-25) Add user-ready API for interacting with state
[ https://issues.apache.org/jira/browse/BEAM-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15408886#comment-15408886 ] ASF GitHub Bot commented on BEAM-25: GitHub user kennknowles opened a pull request: https://github.com/apache/incubator-beam/pull/793 [BEAM-25] WIP: Tweeze StateSpec out of StateTag Be sure to do all of the following to help us incorporate your contribution quickly and easily: - [x] Make sure the PR title is formatted like: `[BEAM-] 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). - [x] Replace `` 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). --- R: @bjchambers @tgroh This was a hack sprint. The tests pass for the SDK and direct runner; I've introduced a minor issue to the Flink runner that I will fix tomorrow. My thoughts when doing this: - I can prep `StateSpec` now so it is ready for incorporation into `DoFn` whenever that work takes off. - Since the `StateSpec` carries the disjoint union now, the binder should visit that. - `StateTag` = `String id` + `StateSpec`. First step would be to express it that way, second step might be to delete it. It actually turned out to be a nice cleanup, but there are wrinkles: - Since the `State` has to be able to know where to write (in the general case) it still needs an `id`, so the visitor needs an id. But `StateSpec` doesn't have one so it is just passed along. So the visitor just becomes a curried version of the prior. - That's all fine, but then the `StateTable#get` also needs the spec because it lazily inits based on it. This is the only time it is used, since beyond then it is contained in the state cell. - And then to hack up the `CopyOnAccessInMemoryStateInternals` I even had to re-build the tag `id`. So eliminating `StateTag` entirely would just mean more parameters in a bunch of places. So I have this feeling that actually there may be a simpler visitor pattern, or no visitor pattern, that becomes more natural. Anyhow, I'm not happy with the change, and certainly haven't polished `StateSpecs` to where it needs to be for user consumption, but I wanted to put this out for early feedback. You can merge this pull request into a Git repository by running: $ git pull https://github.com/kennknowles/incubator-beam StateSpec Alternatively you can review and apply these changes as the patch at: https://github.com/apache/incubator-beam/pull/793.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 #793 commit 488e8955000ee905ab26635e0efbd0834a3d0dcf Author: Kenneth KnowlesDate: 2016-08-05T03:50:28Z Create StateSpec parallel to StateTag commit e6294682daba9835a030c146389bc633e8f280a5 Author: Kenneth Knowles Date: 2016-08-05T04:48:48Z Make StateTag carry a StateSpec separately from its id > Add user-ready API for interacting with state > - > > Key: BEAM-25 > URL: https://issues.apache.org/jira/browse/BEAM-25 > Project: Beam > Issue Type: Sub-task > Components: sdk-java-core >Reporter: Kenneth Knowles >Assignee: Kenneth Knowles > Labels: State > > Our current state API is targeted at runner implementers, not pipeline > authors. As such it has many capabilities that are not necessary nor > desirable for simple use cases of stateful ParDo (such as dynamic state tag > creation). Implement a simple state intended for user access. > (Details of our current thoughts in forthcoming design doc) -- This message was sent by Atlassian JIRA (v6.3.4#6332)