-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Adding a cluster config to enable instance pool and replica group configuration in table config #13131
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #13131 +/- ##
============================================
+ Coverage 61.75% 62.12% +0.37%
+ Complexity 207 198 -9
============================================
Files 2436 2547 +111
Lines 133233 139947 +6714
Branches 20636 21722 +1086
============================================
+ Hits 82274 86940 +4666
- Misses 44911 46421 +1510
- Partials 6048 6586 +538
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
4b10d0a
to
56b6769
Compare
...oller/src/main/java/org/apache/pinot/controller/api/resources/PinotTableRestletResource.java
Outdated
Show resolved
Hide resolved
56b6769
to
5318366
Compare
pinot-controller/src/main/java/org/apache/pinot/controller/ControllerConf.java
Outdated
Show resolved
Hide resolved
*/ | ||
public static void validate(TableConfig tableConfig, @Nullable Schema schema) { | ||
validate(tableConfig, schema, null, false); | ||
validate(tableConfig, schema, null, false, false); |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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
.
5318366
to
2c0d755
Compare
…figuration in table config
…config to instance config
2c0d755
to
58ef324
Compare
Good job! Please also update the pinot doc about the new config |
Added an insteance level configuration
enforce.pool.based.assignment
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
enforce.pool.based.assignment
config will enforce all tables are using Pool-Based Instance Assignment and Replica-Group Segment Assignment .feature