You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Julian Hyde (Jira)" <ji...@apache.org> on 2022/10/26 00:55:00 UTC
[jira] [Commented] (CALCITE-668) [Avatica] Support sessionless query requests
[ https://issues.apache.org/jira/browse/CALCITE-668?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17624095#comment-17624095 ]
Julian Hyde commented on CALCITE-668:
-------------------------------------
I agree that putting the complete "session state" in all requests is required.
But there is also the issue of result sets that require more than one fetch. If "select * from orders" returns 350 rows, you just can't fetch the rows 0..99 from one instance and then send a fetch request for rows 100..199 that might go to a different instance. One possible answer is to use provide a streaming RPC response - a single RPC message, of unbounded size, that contains all rows. The client might apply back-pressure, and only read the first 1M bytes of the response, and then a few seconds later read the next 1M bytes. Streaming responses would place requirements on the wire format (say http) and also on the message encoding (say a form of JSON or protobuf where messages can be parsed before the complete message has arrived).
> [Avatica] Support sessionless query requests
> --------------------------------------------
>
> Key: CALCITE-668
> URL: https://issues.apache.org/jira/browse/CALCITE-668
> Project: Calcite
> Issue Type: Improvement
> Components: avatica
> Reporter: Nick Dimiduk
> Priority: Major
>
> Brought up over on CALCITE-663. One goal I have for Avatica is to support hosting a number of Avatica instances behind a "dumb" load balancer (i.e., round robin). This places the burden of implicit connection and statement creation on the protocol. A single client request should have everything it needs for a server to execute it, even if the server has never seen this client before.
> There are different ways to accomplish this goal, some of which mentioned already include:
> - complete "session state" in all requests
> - multiple rpc methods passed in a single wire transaction
--
This message was sent by Atlassian Jira
(v8.20.10#820010)