Uploaded image for project: 'Phoenix'
  1. Phoenix
  2. PHOENIX-5963

Enable loadbalancer for standalone PQS assembly



    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • queryserver-6.0.0
    • None
    • queryserver
    • None


      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


        Issue Links



              Unassigned Unassigned
              stoty Istvan Toth
              0 Vote for this issue
              1 Start watching this issue