Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding a cluster config to enable instance pool and replica group configuration in table config #13131

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

soumitra-st
Copy link
Contributor

@soumitra-st soumitra-st commented May 10, 2024

Added an insteance level configuration instance.pool.and.replica.group.check to enable instance pool and replica group configuration check in table config.

If a Pinot cluster is configured with server pools to restart the cluster faster, then enabling instance.pool.and.replica.group.check config will enforce all tables are using Pool-Based Instance Assignment and Replica-Group Segment Assignment .

feature

@codecov-commenter
Copy link

codecov-commenter commented May 10, 2024

Codecov Report

Attention: Patch coverage is 82.14286% with 5 lines in your changes are missing coverage. Please review.

Project coverage is 62.24%. Comparing base (59551e4) to head (5318366).
Report is 485 commits behind head on master.

Files Patch % Lines
...he/pinot/segment/local/utils/TableConfigUtils.java 68.75% 3 Missing and 2 partials ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##             master   #13131      +/-   ##
============================================
+ Coverage     61.75%   62.24%   +0.49%     
+ Complexity      207      198       -9     
============================================
  Files          2436     2531      +95     
  Lines        133233   138588    +5355     
  Branches      20636    21454     +818     
============================================
+ Hits          82274    86271    +3997     
- Misses        44911    45879     +968     
- Partials       6048     6438     +390     
Flag Coverage Δ
custom-integration1 <0.01% <0.00%> (-0.01%) ⬇️
integration <0.01% <0.00%> (-0.01%) ⬇️
integration1 <0.01% <0.00%> (-0.01%) ⬇️
integration2 0.00% <0.00%> (ø)
java-11 62.19% <82.14%> (+0.48%) ⬆️
java-21 62.12% <82.14%> (+0.50%) ⬆️
skip-bytebuffers-false 62.23% <82.14%> (+0.49%) ⬆️
skip-bytebuffers-true 62.09% <82.14%> (+34.36%) ⬆️
temurin 62.24% <82.14%> (+0.49%) ⬆️
unittests 62.24% <82.14%> (+0.49%) ⬆️
unittests1 46.71% <0.00%> (-0.18%) ⬇️
unittests2 27.92% <82.14%> (+0.18%) ⬆️

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

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@soumitra-st soumitra-st force-pushed the pool-replica-group-validation branch from 4b10d0a to 56b6769 Compare May 13, 2024 20:04
@Jackie-Jiang Jackie-Jiang added feature Configuration Config changes (addition/deletion/change in behavior) labels May 13, 2024
*/
public static void validate(TableConfig tableConfig, @Nullable Schema schema) {
validate(tableConfig, schema, null, false);
validate(tableConfig, schema, null, false, false);
Copy link
Contributor

Choose a reason for hiding this comment

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

Let's not keep adding booleans for each check type because it is hard to maintain. Suggest making them static, and set them up when starting the controller. validate() only takes tableConfig, schema and optional typesToSkip

Copy link
Contributor Author

Choose a reason for hiding this comment

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

TableConfigUtils has static utility methods only. IMO, we should not store state as static variables in that class.

Copy link
Contributor

Choose a reason for hiding this comment

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

These are always instance level/cluster level config, so it should be good to have them as static (basically model it as a singleton validator). We may add 2 static methods setDisableGroovy() and setEnforcePoolBasedAssignment(), and set them up in the ControllerStarter.

@soumitra-st soumitra-st force-pushed the pool-replica-group-validation branch from 5318366 to 2c0d755 Compare June 4, 2024 12:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Configuration Config changes (addition/deletion/change in behavior) feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants