[
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)