Istvan Toth created PHOENIX-5963:
------------------------------------

             Summary: Enable loadbalancer for standalone PQS assembly
                 Key: PHOENIX-5963
                 URL: https://issues.apache.org/jira/browse/PHOENIX-5963
             Project: Phoenix
          Issue Type: Bug
          Components: queryserver
    Affects Versions: queryserver-1.0.0
            Reporter: Istvan Toth


The load-balancer does not work with the current PQS assembly, due to 
dependency (and script problems)

The proposal below would -hopefully- make it feasible to re-introduce and 
support it as an optional dependecy for PQS:

 

As for the load-balancer, you are right that this setup doesn't allow for a 
working load-balancer. However, it wouldn't work even if the load-balancer jar 
was included in the classpath. The load-balancer depends on (unshaded) 
zookeeper, and unshaded zookeeper is generally not available on the PQS 
classpath anyway (it may have been available in some old phoenix-client 
version, but currently both master and 4.x shades it).

Loading the load-balancer as an external service is nice in theory, but since 
it's compiled separately from phoenix-client, the dependency conflicts that it 
introduces are hard to solve.

If I were to do it, I'd:
 * Refactor/Simplify loadbalancer, so that doesn't need Hadoop and Hbase deps
 ** Pass the Hbase Config object as in Iterable to registerServer
 ** Ditch the config singleton/cache, it is not useful in this context
 ** Preferably ditch Curator as well
 * create a shaded loadbalancer jar with ZK (and curator) shaded into it
 * Then prepare the PQS startup script for it, and document how to add this to 
PQS as an optional dependency



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to