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

gRPC communication with Pinot #3

Open
jpohanka opened this issue Sep 19, 2021 · 2 comments
Open

gRPC communication with Pinot #3

jpohanka opened this issue Sep 19, 2021 · 2 comments

Comments

@jpohanka
Copy link

jpohanka commented Sep 19, 2021

Issue type: feature request

Pinot version: 0.8.0

Description:

We are using the Golang module for connecting with Pinot in our internal applications. So far, the JSON-based communication does not pose a bottleneck for smaller result sets (order of magnitude: 10^3).

However, for moderate result sets (order of magnitude: 10^4-10^5), the JSON-based communication starts to be inefficient.

To mitigate this, it would be convenient to implement a gRPC communication in this module, since Pinot has gRPC communication implemented internally and few other systems (i.e. PrestoDB) use this for fast fetching of the result sets.

@xiangfu0
Copy link
Collaborator

Thanks for bringing this up!
Right now pinot broker has only one endpoint, which is http-json based.

GRPC endpoint on Pinot server is for internal usage, not exposed as a public query endpoint.

  1. From query issuer, client side needs to understand which Pinot server to query and what are the segments to query on each server.
  2. Client side needs to reduce all the partial results from each Pinot server
  3. Need to handle hybrid table query split as well.

Presto can interpret the query and use grpc to fetch big trunk of data then perform more computations.

Pinot community is also considering adding a grpc endpoint for Pinot broker. Once that is added, we will support grpc client as well.

@jpohanka
Copy link
Author

@xiangfu0 Thank you very much for the explanation!

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

No branches or pull requests

2 participants