Add configurable commitAllMetricUpdates #124
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of Changes
This update introduces a configurable option to control the invocation of
commitUpdates
within theupdateMetrics
method in theSamzaMetricsContainer
class. The new configuration option,beam.samza.metrics.commitAllMetricUpdates
, allows toggling the behavior of committing metrics after they have been processed.Changes:
New Configuration:
beam.samza.metrics.commitAllMetricUpdates
, which determines whethercommitUpdates
is called for each metrics container after metrics are updated.Code Logic:
stepNameList.stream().map(metricsContainers::getContainer).forEach(MetricsContainerImpl::commitUpdates);
ensures that metrics are marked as committed, preventing them from being reprocessed in subsequent steps. This is particularly important for avoiding the accumulation of metrics and the associated CPU overhead.Rationale:
Performance Considerations:
commitUpdates
method, similar togetUpdates
, may have a significant CPU cost. Preliminary analysis shows thatgetUpdates
contributed 8% of CPU time for theupdateMetrics
call. Given thatcommitUpdates
could incur similar overhead, the configuration option provides flexibility to disable this behavior for jobs where all metrics in a step are always used, making the commit operation unnecessary.Testing and Flexibility:
Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:
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, commentfixes #<ISSUE NUMBER>
instead.CHANGES.md
with noteworthy changes.See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)
See CI.md for more information about GitHub Actions CI.