You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Josh Elser (JIRA)" <ji...@apache.org> on 2015/09/29 19:25:04 UTC

[jira] [Created] (CALCITE-903) Enable client to recover from missing server-side state

Josh Elser created CALCITE-903:
----------------------------------

             Summary: Enable client to recover from missing server-side state
                 Key: CALCITE-903
                 URL: https://issues.apache.org/jira/browse/CALCITE-903
             Project: Calcite
          Issue Type: Improvement
          Components: avatica
            Reporter: Josh Elser
            Assignee: Josh Elser
             Fix For: 1.5.0-incubating


When deploying more than one instance of an avatica-server, we have the desire to treat the collection of servers as a single server. Ideally, we want to have the avatica-client operate in a manner that doesn't expect a server to have specific state For example, the avatica-client should be able to know that when a server doesn't have a statement with the ID the client thinks it should, the client can create a new statement.

This is desirable because it allows us to use a generic load-balancer between clients and servers without the need for clustering or sticky sessions. The downside is that in the face of failure, operations will take longer than normal. Even with the performance hit, as long as an avatica-server exists, the client can still retrieve the results for some query which is ideal (tl;dr it will take longer, but the client still gets the answer).

Two major areas that need to be addressed presently are:

1. Automatic recreation of Statements when they are not cached
2. Recreation of ResultSets to resume iteration (for fetch()). This depends on "stable results" by the underlying JDBC driver, otherwise external synchronization would be required. This is considered a prerequisite.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)