You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@beam.apache.org by "lukecwik (via GitHub)" <gi...@apache.org> on 2023/02/17 19:03:54 UTC

[GitHub] [beam] lukecwik opened a new pull request, #25540: Stop paying the iterator object creation tax in MultiplexingMetricTrackingFnDataReceiver

lukecwik opened a new pull request, #25540:
URL: https://github.com/apache/beam/pull/25540

   This removes the overhead shown in https://user-images.githubusercontent.com/10078956/219762523-1e76e849-18b9-4c40-a513-000364baea52.png
   
   This is for #21250
   
   ------------------------
   
   Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:
   
    - [ ] Mention the appropriate issue in your description (for example: `addresses #123`), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment `fixes #<ISSUE NUMBER>` instead.
    - [ ] Update `CHANGES.md` with noteworthy changes.
    - [ ] If this contribution is large, please file an Apache [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.pdf).
   
   See the [Contributor Guide](https://beam.apache.org/contribute) for more tips on [how to make review process smoother](https://beam.apache.org/contribute/get-started-contributing/#make-the-reviewers-job-easier).
   
   To check the build health, please visit [https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md](https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md)
   
   GitHub Actions Tests Status (on master branch)
   ------------------------------------------------------------------------------------------------
   [![Build python source distribution and wheels](https://github.com/apache/beam/workflows/Build%20python%20source%20distribution%20and%20wheels/badge.svg?branch=master&event=schedule)](https://github.com/apache/beam/actions?query=workflow%3A%22Build+python+source+distribution+and+wheels%22+branch%3Amaster+event%3Aschedule)
   [![Python tests](https://github.com/apache/beam/workflows/Python%20tests/badge.svg?branch=master&event=schedule)](https://github.com/apache/beam/actions?query=workflow%3A%22Python+Tests%22+branch%3Amaster+event%3Aschedule)
   [![Java tests](https://github.com/apache/beam/workflows/Java%20Tests/badge.svg?branch=master&event=schedule)](https://github.com/apache/beam/actions?query=workflow%3A%22Java+Tests%22+branch%3Amaster+event%3Aschedule)
   [![Go tests](https://github.com/apache/beam/workflows/Go%20tests/badge.svg?branch=master&event=schedule)](https://github.com/apache/beam/actions?query=workflow%3A%22Go+tests%22+branch%3Amaster+event%3Aschedule)
   
   See [CI.md](https://github.com/apache/beam/blob/master/CI.md) for more information about GitHub Actions CI.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [beam] lukecwik commented on a diff in pull request #25540: Stop paying the iterator object creation tax in MultiplexingMetricTrackingFnDataReceiver

Posted by "lukecwik (via GitHub)" <gi...@apache.org>.
lukecwik commented on code in PR #25540:
URL: https://github.com/apache/beam/pull/25540#discussion_r1110301186


##########
sdks/java/harness/src/main/java/org/apache/beam/fn/harness/data/PCollectionConsumerRegistry.java:
##########
@@ -352,7 +350,8 @@ public void accept(WindowedValue<T> input) throws Exception {
       // Use the ExecutionStateTracker and enter an appropriate state to track the
       // Process Bundle Execution time metric and also ensure user counters can get an appropriate
       // metrics container.
-      for (ConsumerAndMetadata consumerAndMetadata : consumerAndMetadatas) {
+      for (int size = consumerAndMetadatas.size(), i = 0; i < size; ++i) {

Review Comment:
   Done



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [beam] lukecwik merged pull request #25540: Stop paying the iterator object creation tax in MultiplexingMetricTrackingFnDataReceiver

Posted by "lukecwik (via GitHub)" <gi...@apache.org>.
lukecwik merged PR #25540:
URL: https://github.com/apache/beam/pull/25540


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [beam] lukecwik commented on a diff in pull request #25540: Stop paying the iterator object creation tax in MultiplexingMetricTrackingFnDataReceiver

Posted by "lukecwik (via GitHub)" <gi...@apache.org>.
lukecwik commented on code in PR #25540:
URL: https://github.com/apache/beam/pull/25540#discussion_r1110299575


##########
sdks/java/harness/src/main/java/org/apache/beam/fn/harness/data/PCollectionConsumerRegistry.java:
##########
@@ -209,8 +208,7 @@ public FnDataReceiver<WindowedValue<?>> getMultiplexingConsumer(String pCollecti
             come up in the existing SDF expansion, but might be useful to support fused SDF nodes.
             This would require dedicated delivery of the split results to each of the consumers
             separately. */
-            return new MultiplexingMetricTrackingFnDataReceiver(
-                pcId, coder, ImmutableList.copyOf(consumerAndMetadatas));
+            return new MultiplexingMetricTrackingFnDataReceiver(pcId, coder, consumerAndMetadatas);

Review Comment:
   yes, we also already handle the case to not allow mutation after as well



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [beam] lukecwik commented on pull request #25540: Stop paying the iterator object creation tax in MultiplexingMetricTrackingFnDataReceiver

Posted by "lukecwik (via GitHub)" <gi...@apache.org>.
lukecwik commented on PR #25540:
URL: https://github.com/apache/beam/pull/25540#issuecomment-1435110725

   R: @bhisevishal


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [beam] lukecwik commented on pull request #25540: Stop paying the iterator object creation tax in MultiplexingMetricTrackingFnDataReceiver

Posted by "lukecwik (via GitHub)" <gi...@apache.org>.
lukecwik commented on PR #25540:
URL: https://github.com/apache/beam/pull/25540#issuecomment-1435337057

   Run Java PreCommit


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [beam] lukecwik commented on pull request #25540: Stop paying the iterator object creation tax in MultiplexingMetricTrackingFnDataReceiver

Posted by "lukecwik (via GitHub)" <gi...@apache.org>.
lukecwik commented on PR #25540:
URL: https://github.com/apache/beam/pull/25540#issuecomment-1435432407

   Precommits passed, github UI failed to update:
   https://ci-beam.apache.org/job/beam_PreCommit_Java_PVR_Flink_Docker_Commit/2564/


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [beam] bhisevishal commented on a diff in pull request #25540: Stop paying the iterator object creation tax in MultiplexingMetricTrackingFnDataReceiver

Posted by "bhisevishal (via GitHub)" <gi...@apache.org>.
bhisevishal commented on code in PR #25540:
URL: https://github.com/apache/beam/pull/25540#discussion_r1110237976


##########
sdks/java/harness/src/main/java/org/apache/beam/fn/harness/data/PCollectionConsumerRegistry.java:
##########
@@ -352,7 +350,8 @@ public void accept(WindowedValue<T> input) throws Exception {
       // Use the ExecutionStateTracker and enter an appropriate state to track the
       // Process Bundle Execution time metric and also ensure user counters can get an appropriate
       // metrics container.
-      for (ConsumerAndMetadata consumerAndMetadata : consumerAndMetadatas) {
+      for (int size = consumerAndMetadatas.size(), i = 0; i < size; ++i) {

Review Comment:
   You may want to add comment here to avoid using `for (ConsumerAndMetadata consumerAndMetadata : consumerAndMetadatas)`



##########
sdks/java/harness/src/main/java/org/apache/beam/fn/harness/data/PCollectionConsumerRegistry.java:
##########
@@ -209,8 +208,7 @@ public FnDataReceiver<WindowedValue<?>> getMultiplexingConsumer(String pCollecti
             come up in the existing SDF expansion, but might be useful to support fused SDF nodes.
             This would require dedicated delivery of the split results to each of the consumers
             separately. */
-            return new MultiplexingMetricTrackingFnDataReceiver(
-                pcId, coder, ImmutableList.copyOf(consumerAndMetadatas));
+            return new MultiplexingMetricTrackingFnDataReceiver(pcId, coder, consumerAndMetadatas);

Review Comment:
   This is good less copies of data.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org