-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Turn on v2 engine by default #10543
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
Turn on v2 engine by default #10543
Conversation
cb5f727 to
a29d141
Compare
|
IIRC - default enabling the feature flag will have no impact on existing production queries unless they are also changed to include the query option to use the multi stage query engine ? |
This is just to start the query engine by default, ofc we will see extra resources utilization (grpc server started/ports open etc). The normal query path won't go through it unless specifying |
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.
so we still need these port config? can we check whether it is possible to default dynamic port allocation?
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.
Those shouldn't matter, let me remove them as well
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.
The issue is instance config in helix is using port 0, so workers cannot talk to each other. Need to find the available port first then set it into server config.
Codecov Report
@@ Coverage Diff @@
## master #10543 +/- ##
============================================
- Coverage 70.35% 70.35% -0.01%
Complexity 6464 6464
============================================
Files 2103 2103
Lines 112769 112792 +23
Branches 16981 16988 +7
============================================
+ Hits 79341 79353 +12
+ Misses 27877 27863 -14
- Partials 5551 5576 +25
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 31 files with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
145c20b to
107db8a
Compare
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.
Doing this can have query runner port differ from one worker to another ? In that case, how will they talk to each other ?
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.
port configurations are stored in serverInstance and it is backed up to Helix via InstanceConfig
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.
It comes from the instanceConfig in Helix.
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.
By default data table version is 3. I think enabling multistage engine alone wouldn't be sufficient since v2 queries will fail with data-table v3.
pinot/pinot-core/src/main/java/org/apache/pinot/core/common/datatable/DataTableBuilderFactory.java
Line 37 in 29fd5d9
| public static final int DEFAULT_VERSION = DataTableFactory.VERSION_3; |
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.
Good point, any idea this doesn't fail on integration test?
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.
cc: @walterddr
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.
datatable version is set to 4 in multistage integration tests
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.
6081fa6 to
60a7927
Compare
walterddr
left a comment
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.
lgtm. we can also have a restart integration test that basically
- start broker/server
- tear it down and start them again (in server/broker or broker/server order)
- see if they still can query
|
test failure seems reproducible in 2 CI runs. can you take a look? |
60a7927 to
a7bf88a
Compare
a7bf88a to
a8b222c
Compare
| } | ||
|
|
||
| // Read variable size data. | ||
| _variableSizeDataBytes = new byte[variableSizeDataLength]; |
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.
@walterddr Please verify this logic.
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.
this should be ok.


Turn on v2 engine by default.
Also tested the broker/server restart with dynamic port changes, reflected in helix instance configs.