Skip to content

Conversation

@klsince
Copy link
Contributor

@klsince klsince commented Feb 15, 2022

Description

Added pre/postUploadSegments() methods for BaseMultipleSegmentsConversionExecutor, so that subclass can customize what happens before/after segment uploading, e.g. RT2OFF task should use segment lineage against the dest offline table instead of the src realtime table, but MergeRollup uses segment lineage against a single table that is both src/dest table.

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

@klsince klsince force-pushed the customize_segment_uploading branch from 87f33a0 to 1bfdb6c Compare February 15, 2022 02:00
@klsince klsince changed the title Allow subclass to customize segment uploading behavior Allow subclass to customize what happens pre/post segment uploading Feb 15, 2022
@codecov-commenter
Copy link

codecov-commenter commented Feb 15, 2022

Codecov Report

Merging #8203 (1bfdb6c) into master (df39bda) will increase coverage by 0.01%.
The diff coverage is 100.00%.

Impacted file tree graph

@@             Coverage Diff              @@
##             master    #8203      +/-   ##
============================================
+ Coverage     71.01%   71.03%   +0.01%     
  Complexity     4314     4314              
============================================
  Files          1624     1624              
  Lines         84873    84891      +18     
  Branches      12791    12791              
============================================
+ Hits          60273    60299      +26     
+ Misses        20453    20439      -14     
- Partials       4147     4153       +6     
Flag Coverage Δ
integration1 28.71% <100.00%> (+0.07%) ⬆️
integration2 27.39% <36.66%> (+0.06%) ⬆️
unittests1 67.42% <ø> (-0.03%) ⬇️
unittests2 14.13% <0.00%> (+0.02%) ⬆️

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

Impacted Files Coverage Δ
.../tasks/BaseMultipleSegmentsConversionExecutor.java 89.81% <100.00%> (+2.03%) ⬆️
...a/manager/realtime/RealtimeSegmentDataManager.java 50.00% <0.00%> (-25.00%) ⬇️
...nction/DistinctCountBitmapAggregationFunction.java 41.96% <0.00%> (-14.51%) ⬇️
.../aggregation/function/ModeAggregationFunction.java 84.32% <0.00%> (-3.79%) ⬇️
...lix/core/realtime/PinotRealtimeSegmentManager.java 78.53% <0.00%> (-3.15%) ⬇️
...form/function/BinaryOperatorTransformFunction.java 41.77% <0.00%> (-2.67%) ⬇️
.../org/apache/pinot/core/startree/StarTreeUtils.java 69.89% <0.00%> (-2.16%) ⬇️
...core/startree/operator/StarTreeFilterOperator.java 85.31% <0.00%> (-2.10%) ⬇️
...g/apache/pinot/common/utils/helix/HelixHelper.java 45.14% <0.00%> (-0.98%) ⬇️
...manager/realtime/LLRealtimeSegmentDataManager.java 70.96% <0.00%> (-0.53%) ⬇️
... and 16 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 df39bda...1bfdb6c. Read the comment docs.

Comment on lines 105 to 108
String tableNameWithType = configs.get(MinionConstants.TABLE_NAME_KEY);
String inputSegmentNames = configs.get(MinionConstants.SEGMENT_NAME_KEY);
String uploadURL = configs.get(MinionConstants.UPLOAD_URL_KEY);
String authToken = configs.get(MinionConstants.AUTH_TOKEN);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These info are extracted multiple times. Shall we consider adding a context class to wrap them and pass them into this method? We can also have a custom map within the context class so that other custom fields can be added.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sgtm

@Jackie-Jiang Jackie-Jiang merged commit e8c849e into apache:master Feb 16, 2022
@klsince klsince deleted the customize_segment_uploading branch February 16, 2022 00:34
xiangfu0 pushed a commit to xiangfu0/pinot that referenced this pull request Feb 23, 2022
…pache#8203)

Added pre/postUploadSegments() methods for BaseMultipleSegmentsConversionExecutor, so that subclass can customize what happens before/after segment uploading, e.g. RT2OFF task should use segment lineage against the dest offline table instead of the src realtime table, but MergeRollup uses segment lineage against a single table that is both src/dest table.
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.

3 participants