[ https://issues.apache.org/jira/browse/PHOENIX-971?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14237064#comment-14237064 ]
Andrew Purtell commented on PHOENIX-971: ---------------------------------------- bq. Let's also discuss if/how we can avoid having to deploy, orchestrate, monitor, etc, another Phoenix service for HBase. It's already a pain in the a** to run all the required services. We did discuss one option above. James suggested: {quote} Since each RS can act as a Phoenix client, we could implement a thin client that sends the query from the client to the RS which would most likely handle at least part of the query. {quote} If we want to retain cross version independence, the client would be super thin and send parsed SQL with bind variables. If we use a coprocessor endpoint, this endpoint would then be a query client running embedded in the regionserver, marshaling and merge sorting the final results before sending them back to the client and endpoint RPC doesn't support streaming the results back. Nonstarter. If we embed a new kind of RPC which can do streaming, this is reminiscent of when Facebook embedded Thrift service into the regionservers so they could have a native client talk Thrift to a cluster without a gateway/middle tier. They ultimately rejected this approach and reverted the changes because they really did need to insert a third tier and scale it independently of the regionserver fleet. > Query server > ------------ > > Key: PHOENIX-971 > URL: https://issues.apache.org/jira/browse/PHOENIX-971 > Project: Phoenix > Issue Type: New Feature > Reporter: Andrew Purtell > > Host the JDBC driver in a query server process that can be deployed as a > middle tier between lighter weight clients and Phoenix+HBase. This would > serve a similar optional role in Phoenix deployments as the > [HiveServer2|https://cwiki.apache.org/confluence/display/Hive/Setting+Up+HiveServer2] > does in Hive deploys. -- This message was sent by Atlassian JIRA (v6.3.4#6332)