You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@arrow.apache.org by "cisaacson (via GitHub)" <gi...@apache.org> on 2025/07/11 21:32:48 UTC
[I] Flight SQL Load Balancing [arrow]
cisaacson opened a new issue, #47083:
URL: https://github.com/apache/arrow/issues/47083
### Describe the usage question you have. Please include as many useful details as possible.
We are using the [Rust] `FlightServiceClient` for Arrow Flight SQL, and we want to load balance among a number of back end Flight SQL Servers. I see that `tonic` supports a `balance_list` for rotating across a list of endpoints. There is also `ginepro` which makes the same approach even more robust (all fitting within `tonic`s API).
My question is this:
If we use the `FlightServiceClient` to connect to a list of server instances, and a we call `execute_query` and then successive `get_next_batch` calls, will all these calls be to the same endpoint connection? The server has to keep track of the stream of results for each query, so this is a requirement for it to work.
If it will not keep the same service endpoint, seems like we will have to implement our own sticky logic on top of this? That should be feasible, I just wanted to get advice on the best approach.
### Component(s)
FlightRPC
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@arrow.apache.org.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Flight SQL Load Balancing [arrow]
Posted by "cisaacson (via GitHub)" <gi...@apache.org>.
cisaacson closed issue #47083: Flight SQL Load Balancing
URL: https://github.com/apache/arrow/issues/47083
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Flight SQL Load Balancing [arrow]
Posted by "cisaacson (via GitHub)" <gi...@apache.org>.
cisaacson commented on issue #47083:
URL: https://github.com/apache/arrow/issues/47083#issuecomment-3100214314
Further details on what we want to do.
We now would like to use `envoyproxy` to do the load balancing. We may be able to add a custom header to the message using `FlightSqlServiceClient.set_header` so that `envoy` will recognize that header and use sticky routing based on this. We would call `set_header` right before `FlightSqlServiceClient.execute(sql...)`. Then we can have `envoy` use that header to hash the value in the header to ensure it goes to the same server instance.
Related to this, the example `auth` logic will not work with a load balancer, as the authentication check for each call will not work unless the same server is called. I probably need to change this logic so that the authentication check will work with all of our server instances (using JWT or another mechanism). Any issues with this approach?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Flight SQL Load Balancing [arrow]
Posted by "cisaacson (via GitHub)" <gi...@apache.org>.
cisaacson commented on issue #47083:
URL: https://github.com/apache/arrow/issues/47083#issuecomment-3123398975
I did get envoyproxy to work for load balancing, directing requests to the same backend Flight SQL endpoint when required across multiple calls. So it is possible to do, using the envoyproxy `hash_policy` and a header that contains a hash key. I will close this issue.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org