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

Enable loadbalancer for standalone PQS assembly

    XMLWordPrintableJSON

Details

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

    Description

      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

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated: