Skip to content

avoid repeating column stats work when values are repeated#7619

Merged
Jackie-Jiang merged 3 commits intoapache:masterfrom
richardstartin:avoid-repetitive-work
Oct 25, 2021
Merged

avoid repeating column stats work when values are repeated#7619
Jackie-Jiang merged 3 commits intoapache:masterfrom
richardstartin:avoid-repetitive-work

Conversation

@richardstartin
Copy link
Member

@richardstartin richardstartin commented Oct 22, 2021

Description

By checking whether a value has been added to the _values set before, we can avoid doing things like UTF-8 encoding, evaluating partitioning functions and so on more than once.

Also avoid expensive boxing, reference equality of boxed values, comparator evaluation for primitive types.

Upgrade Notes

Does this PR prevent a zero down-time upgrade? (Assume upgrade order: Controller, Broker, Server, Minion)

  • Yes (Please label as backward-incompat, and complete the section below on Release Notes)

Does this PR fix a zero-downtime upgrade introduced earlier?

  • Yes (Please label this as backward-incompat, and complete the section below on Release Notes)

Does this PR otherwise need attention when creating release notes? Things to consider:

  • New configuration options
  • Deprecation of configurations
  • Signature changes to public methods/interfaces
  • New plugins added or old plugins removed
  • Yes (Please label this PR as release-notes and complete the section on Release Notes)

Release Notes

Documentation

@codecov-commenter
Copy link

codecov-commenter commented Oct 22, 2021

Codecov Report

Merging #7619 (9704eac) into master (a114cd2) will decrease coverage by 8.58%.
The diff coverage is 100.00%.

Impacted file tree graph

@@             Coverage Diff              @@
##             master    #7619      +/-   ##
============================================
- Coverage     71.61%   63.02%   -8.59%     
+ Complexity     3938     3876      -62     
============================================
  Files          1562     1553       -9     
  Lines         79370    79046     -324     
  Branches      11748    11720      -28     
============================================
- Hits          56843    49822    -7021     
- Misses        18692    25613    +6921     
+ Partials       3835     3611     -224     
Flag Coverage Δ
integration1 29.13% <0.00%> (-0.30%) ⬇️
integration2 ?
unittests1 68.58% <100.00%> (+0.01%) ⬆️
unittests2 ?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
.../impl/stats/AbstractColumnStatisticsCollector.java 92.50% <100.00%> (ø)
...impl/stats/BytesColumnPredIndexStatsCollector.java 81.13% <100.00%> (ø)
...impl/stats/DoubleColumnPreIndexStatsCollector.java 80.48% <100.00%> (+3.34%) ⬆️
.../impl/stats/FloatColumnPreIndexStatsCollector.java 80.48% <100.00%> (+3.34%) ⬆️
...or/impl/stats/IntColumnPreIndexStatsCollector.java 80.48% <100.00%> (+3.34%) ⬆️
...r/impl/stats/LongColumnPreIndexStatsCollector.java 80.48% <100.00%> (+3.34%) ⬆️
...impl/stats/StringColumnPreIndexStatsCollector.java 80.76% <100.00%> (ø)
.../pinot/controller/util/SegmentCompletionUtils.java 0.00% <0.00%> (-100.00%) ⬇️
...pinot/controller/recommender/io/ConfigManager.java 0.00% <0.00%> (-100.00%) ⬇️
...ore/operator/streaming/StreamingResponseUtils.java 0.00% <0.00%> (-100.00%) ⬇️
... and 270 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a114cd2...9704eac. Read the comment docs.

@Jackie-Jiang Jackie-Jiang merged commit 40cef4f into apache:master Oct 25, 2021
kriti-sc pushed a commit to kriti-sc/incubator-pinot that referenced this pull request Dec 12, 2021
By checking whether a value has been added to the _values set before, we can avoid doing things like UTF-8 encoding, evaluating partitioning functions and so on more than once.

Also avoid expensive boxing, reference equality of boxed values, comparator evaluation for primitive types.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants