Conversation
|
Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. In order for us to review and merge your code, please submit the signed CLA to cla@trino.io. For more information, see https://github.com/trinodb/cla. |
e929b0e to
ec42443
Compare
1d9bdb6 to
dfecbcb
Compare
ebyhr
left a comment
There was a problem hiding this comment.
Please fix the commit title to follow this guideline.
https://github.com/trinodb/trino/blob/master/.github/DEVELOPMENT.md#commits-and-pull-requests
plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/PinotConfig.java
Outdated
Show resolved
Hide resolved
plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/client/PinotClient.java
Outdated
Show resolved
Hide resolved
plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/client/PinotClient.java
Outdated
Show resolved
Hide resolved
plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/client/PinotClient.java
Outdated
Show resolved
Hide resolved
plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/client/PinotClient.java
Outdated
Show resolved
Hide resolved
...trino-pinot/src/main/java/io/trino/plugin/pinot/client/PinotGrpcServerQueryClientConfig.java
Outdated
Show resolved
Hide resolved
plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/query/PinotProxyGrpcRequestBuilder.java
Outdated
Show resolved
Hide resolved
plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/query/PinotProxyGrpcRequestBuilder.java
Outdated
Show resolved
Hide resolved
plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/query/PinotProxyGrpcRequestBuilder.java
Outdated
Show resolved
Hide resolved
plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/query/PinotProxyGrpcRequestBuilder.java
Outdated
Show resolved
Hide resolved
...trino-pinot/src/main/java/io/trino/plugin/pinot/client/PinotGrpcServerQueryClientConfig.java
Outdated
Show resolved
Hide resolved
00b67d2 to
8338e5b
Compare
09f3bf7 to
0c75d20
Compare
0c75d20 to
5057d6f
Compare
hashhar
left a comment
There was a problem hiding this comment.
some editorial comments.
can you explain why multiple proxy configs need to exist? Also does the proxy remove the need to configure the controller url?
Or are they mutually exclusive? If yes then the config classes should assert that otherwise it's both hard for user to understand what to configure when and also for reviewers/future authors to understand that.
plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/PinotConfig.java
Outdated
Show resolved
Hide resolved
plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/client/PinotGrpcDataFetcher.java
Outdated
Show resolved
Hide resolved
plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/client/PinotClient.java
Outdated
Show resolved
Hide resolved
plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/client/PinotClient.java
Outdated
Show resolved
Hide resolved
plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/client/PinotGrpcDataFetcher.java
Outdated
Show resolved
Hide resolved
5057d6f to
b9bbae9
Compare
hashhar
left a comment
There was a problem hiding this comment.
Much simpler than before. Thanks.
Some nits but looks good otherwise.
plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/PinotConfig.java
Outdated
Show resolved
Hide resolved
plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/client/PinotClient.java
Outdated
Show resolved
Hide resolved
plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/client/PinotClient.java
Outdated
Show resolved
Hide resolved
plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/client/PinotGrpcDataFetcher.java
Outdated
Show resolved
Hide resolved
plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/PinotConfig.java
Outdated
Show resolved
Hide resolved
6b9a8e5 to
50676ec
Compare
|
Thanks for the review! |
50676ec to
6eea82c
Compare
|
Given that the controller and the proxy are API compatible, I'm not sure I understand why we need a separate |
The current connector requires REST API access to Pinot Controller/Broker, for cluster/table management and broker queries those APIs are made compatible in Pinot Proxy, so we can reuse proxy REST endpoint for controller, e.g. This connector also requires GRPC access to Pinot Servers for server queries data transfer, which are not exposed outside k8s. So we need to expose them through Pinot Proxy and build a Load Balancer on that, hence the new URI, e.g. |
|
I'm still a little confused. When |
So this
|
There was a problem hiding this comment.
What's the purpose of extending from GrpcRequestBuilder? There's not an "is a" relationship between the two classes, and this class seems to be overriding every method from the parent that's used.
In fact, the only method that's used from the parent is a call to setBrokerRequest(), but the build() method does not use that value at all.
There was a problem hiding this comment.
Good point, Pinot 0.10+ has deprecated the BrokerRequest, so we actually don't have to keep it.
And the PinotProxyGrpcRequestBuilder doesn't need to extend GrpcRequestBuilder.
6eea82c to
563087e
Compare
|
Updated the PR and rebase with Pinot 0.11 upgrade |
|
Looks good. Can you squash the commits and change the text to "Add support for pinot proxy"? |
563087e to
5904bc3
Compare
Thanks! Done! |
|
Saw a failing https://github.com/trinodb/trino/actions/runs/3212258524/jobs/5251078085 |
5904bc3 to
f9e38ff
Compare
f9e38ff to
a5769f9
Compare
Rebased and passed the CI. |
|
Many thanks @martint ! |
Description
Pinot proxy is used as the global user-facing endpoint to handle all controller/broker HTTP requests as well as server gRPC requests for Trino. This is a must when connecting pinot inside a k8s cluster externally.
Adding support to enable pinot proxy for broker and grpc requests.
This feature is default disabled and can be enabled by specifying the rest proxy REST/GRPC endpoints:
Release notes