{"action":"created","issue":{"url":"https://api.github.com/repos/apache/beam/issues/4700","repository_url":"https://api.github.com/repos/apache/beam","labels_url":"https://api.github.com/repos/apache/beam/issues/4700/labels{/name}","comments_url":"https://api.github.com/repos/apache/beam/issues/4700/comments","events_url":"https://api.github.com/repos/apache/beam/issues/4700/events","html_url":"https://github.com/apache/beam/pull/4700","id":297893129,"node_id":"MDExOlB1bGxSZXF1ZXN0MTY5NzA1MzEx","number":4700,"title":"[BEAM-2535] Added control to set output timestamp independent of firing time for event time timers. (Direct Runner implementation)","user":{"login":"huygaa11","id":4435399,"node_id":"MDQ6VXNlcjQ0MzUzOTk=","avatar_url":"https://avatars2.githubusercontent.com/u/4435399?v=4","gravatar_id":"","url":"https://api.github.com/users/huygaa11","html_url":"https://github.com/huygaa11","followers_url":"https://api.github.com/users/huygaa11/followers","following_url":"https://api.github.com/users/huygaa11/following{/other_user}","gists_url":"https://api.github.com/users/huygaa11/gists{/gist_id}","starred_url":"https://api.github.com/users/huygaa11/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/huygaa11/subscriptions","organizations_url":"https://api.github.com/users/huygaa11/orgs","repos_url":"https://api.github.com/users/huygaa11/repos","events_url":"https://api.github.com/users/huygaa11/events{/privacy}","received_events_url":"https://api.github.com/users/huygaa11/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"huygaa11","id":4435399,"node_id":"MDQ6VXNlcjQ0MzUzOTk=","avatar_url":"https://avatars2.githubusercontent.com/u/4435399?v=4","gravatar_id":"","url":"https://api.github.com/users/huygaa11","html_url":"https://github.com/huygaa11","followers_url":"https://api.github.com/users/huygaa11/followers","following_url":"https://api.github.com/users/huygaa11/following{/other_user}","gists_url":"https://api.github.com/users/huygaa11/gists{/gist_id}","starred_url":"https://api.github.com/users/huygaa11/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/huygaa11/subscriptions","organizations_url":"https://api.github.com/users/huygaa11/orgs","repos_url":"https://api.github.com/users/huygaa11/repos","events_url":"https://api.github.com/users/huygaa11/events{/privacy}","received_events_url":"https://api.github.com/users/huygaa11/received_events","type":"User","site_admin":false},"assignees":[{"login":"huygaa11","id":4435399,"node_id":"MDQ6VXNlcjQ0MzUzOTk=","avatar_url":"https://avatars2.githubusercontent.com/u/4435399?v=4","gravatar_id":"","url":"https://api.github.com/users/huygaa11","html_url":"https://github.com/huygaa11","followers_url":"https://api.github.com/users/huygaa11/followers","following_url":"https://api.github.com/users/huygaa11/following{/other_user}","gists_url":"https://api.github.com/users/huygaa11/gists{/gist_id}","starred_url":"https://api.github.com/users/huygaa11/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/huygaa11/subscriptions","organizations_url":"https://api.github.com/users/huygaa11/orgs","repos_url":"https://api.github.com/users/huygaa11/repos","events_url":"https://api.github.com/users/huygaa11/events{/privacy}","received_events_url":"https://api.github.com/users/huygaa11/received_events","type":"User","site_admin":false}],"milestone":null,"comments":2,"created_at":"2018-02-16T19:23:08Z","updated_at":"2018-06-07T04:01:24Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/apache/beam/pulls/4700","html_url":"https://github.com/apache/beam/pull/4700","diff_url":"https://github.com/apache/beam/pull/4700.diff","patch_url":"https://github.com/apache/beam/pull/4700.patch"},"body":"This PR adds ability to control the output timestamp of event timers. This feature only works for the direct runner at the moment. Before this PR, the output timestamp of event timers are set to timer's delivery timestamp. \r\n\r\nExample:\r\nWhen an user sets timer with output timestamp 3 and delivery timestamp 5:\r\n\r\n@ProcessElement()\r\npublic void processElement(ProcessContext c, @TimerId(\"foo\") Timer timer) {\r\n  timer.withOutputTimestamp(new Instant(3)).set(new Instant(5));\r\n}\r\n\r\n@OnTimer(\"foo\")\r\npublic void myTimerCallback(OnTimerContext c, BoundedWindow w) {\r\n   c.output(\"some_value\"); // outputs with timestamp 3.\r\n}\r\n\r\nThe timer will deliver at 5 as usual. However, output() method of the OnTimerContext in myTimerCallback function uses 3 as the output timestamp. To make sure the element is not late for further transforms down the pipeline, output watermark will be held at the output timestamp of the timer (3 in the example) until myTimerCallback executes.\r\n\r\nThis WM hold feature is also useful for outputting values saved in state cells right before garbage collection. (BEAM-1589) GC timer fires after the window expiration, therefore, outputting elements with output timestamp past the window expiration results them to be dropped further down the pipeline. By setting onWindowExpiration timer as:\r\ntimer.withOutputTimestamp(windowExpiration).set(GCtime), we could output these elements inside the window.\r\n\r\n------------------------\r\n\r\nFollow this checklist to help us incorporate your contribution quickly and easily:\r\n\r\n - [ ] Make sure there is a [JIRA issue](https://issues.apache.org/jira/projects/BEAM/issues/) filed for the change (usually before you start working on it).  Trivial changes like typos do not require a JIRA issue.  Your pull request should address just this issue, without pulling in other changes.\r\n - [ ] Format the pull request title like `[BEAM-XXX] Fixes bug in ApproximateQuantiles`, where you replace `BEAM-XXX` with the appropriate JIRA issue.\r\n - [ ] Write a pull request description that is detailed enough to understand:\r\n   - [ ] What the pull request does\r\n   - [ ] Why it does it\r\n   - [ ] How it does it\r\n   - [ ] Why this approach\r\n - [ ] Each commit in the pull request should have a meaningful subject line and body.\r\n - [ ] Run `mvn clean verify` to make sure basic checks pass. A more thorough check will be performed on your pull request automatically.\r\n - [ ] If this contribution is large, please file an Apache [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.pdf).\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/apache/beam/issues/comments/395285656","html_url":"https://github.com/apache/beam/pull/4700#issuecomment-395285656","issue_url":"https://api.github.com/repos/apache/beam/issues/4700","id":395285656,"node_id":"MDEyOklzc3VlQ29tbWVudDM5NTI4NTY1Ng==","user":{"login":"stale[bot]","id":26384082,"node_id":"MDM6Qm90MjYzODQwODI=","avatar_url":"https://avatars3.githubusercontent.com/in/1724?v=4","gravatar_id":"","url":"https://api.github.com/users/stale%5Bbot%5D","html_url":"https://github.com/apps/stale","followers_url":"https://api.github.com/users/stale%5Bbot%5D/followers","following_url":"https://api.github.com/users/stale%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/stale%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/stale%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stale%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/stale%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/stale%5Bbot%5D/repos","events_url":"https://api.github.com/users/stale%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/stale%5Bbot%5D/received_events","type":"Bot","site_admin":false},"created_at":"2018-06-07T04:01:24Z","updated_at":"2018-06-07T04:01:24Z","author_association":"NONE","body":"This pull request has been marked as stale due to 60 days of inactivity. It will be closed in 1 week if no further activity occurs. If you think that’s incorrect or this pull request requires a review, please simply write any comment. If closed, you can revive the PR at any time and @mention a reviewer or discuss it on the dev@beam.apache.org list. Thank you for your contributions.\n"}}
{"actor":{"display_login":"stale"}}