GitHub user rahulsIOT opened a pull request:
https://github.com/apache/phoenix/pull/236
Loadbalancer
Hi All,
https://issues.apache.org/jira/browse/PHOENIX-3654
The following changes are made in the pull request
1. Added project phoenix-load-balancer. The project exposes Loadbalancer
mechanism for thin client.
2. The following additional phoenix parameters is exposed in
LoadBalancerConfiguration. These configuration is read from hbase-site.xml. The
configuration are as follows
clusterName = "phoenix.queryserver.base.path"
serviceName = "phoenix.queryserver.service.name"
defaultClusterName = "phoenix"
defaultServiceName = "queryserver"
zkLbUserName = "phoenix.queryserver.zookeeper.acl.username"
zkLbPassword = "phoenix.queryserver.zookeeper.acl.password"
defaultZkLbUserName = "phoenixuser"
defaultZkLbPassword = "Xsjdhxsd"
3. phoenix-load-balancer is not dependent on phoenix core, which was one of
requirement for the project. It has dependencies on apache-curator and
hbase-common for hbase configuration.
4. The project phoenix-queryserver is modified such that when server loads
up, it will find zookeeper configuration from hbase-site.xml and registers
itself to the configuration. The registered node will have patch
/clusterName/serviceName/hostname_port (e.g. /phoenix/queryserver/host1_1234).
This will be emphimaral node and gets removed when session has ended. With each
ephimeral node, there is a json attached. The Json is of the form
{"host":"host1","port":"1234"}. In future this can be expanded to store more
values for the node. The Node has ACL = digest with username:password as id.
There is default username/password shared between Loadbalancer project and
phoenix query server project. User can specify the username/password as
properties
"phoenix.queryserver.zookeeper.acl.username"/"phoenix.queryserver.zookeeper.acl.password"
in hbase-site.xml.
5. For phoenix-queryserver , there is a dependency of
phoenix-load-balancer. This is needed to load configuration related to only
LoadBalancer. To avoid code duplication, we have kept all the configuration for
LoadBalancer in the file LoadBalancerConfiguration.java within project
phoenix-load-balancer.
6. IT tests cases were written for load balancer.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/rahulsIOT/phoenix Loadbalancer
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/phoenix/pull/236.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #236
----
commit 8bff60831e55d2d2c1e4fffc6e662dc25fe5be0a
Author: Rahul <[email protected]>
Date: 2017-03-01T23:38:52Z
Initial set of files for Load Balancer
commit 4f2422562afc59106a02e82eb9672ac9d6429bbd
Author: Rahul <[email protected]>
Date: 2017-03-01T23:42:45Z
pom for load balancer project
commit 8951a7c24da1be331fc43ee4986ff5f33435616f
Author: Rahul <[email protected]>
Date: 2017-03-02T01:57:41Z
added code for service discovery
commit 2fd2e82667af5157f0e5a5bb12e7aec6319dc430
Author: Rahul <[email protected]>
Date: 2017-03-04T02:11:16Z
added registration code to query server
commit 55a59388fe523d7340440b1736fce400f4fe9429
Author: Rahul <[email protected]>
Date: 2017-03-08T21:44:05Z
added extra changes for including tests
commit 6420f7348e8a313b0c18d969654bbb49632c4d48
Author: Rahul <[email protected]>
Date: 2017-03-13T17:10:51Z
still making changes to initial commit
commit 8e712b4bbc52524554cd4ed3ca5ec923d99fdb46
Author: Rahul <[email protected]>
Date: 2017-03-14T18:03:03Z
Fixed naming of variables along with other cosmetic fixes
commit a7404435abaa2af5ad284972933d0ecb2cb94f45
Author: Rahul <[email protected]>
Date: 2017-03-21T07:07:18Z
fixed all the IT cases in LoadBalancer
commit 5a9b7021dc8d51884f546973db633b6ca0ee59e5
Author: Rahul <[email protected]>
Date: 2017-03-24T04:58:05Z
completed the initial patch for load balancer
commit d3d8bea7299dbb6830bbdf2925fc43512599df71
Author: Rahul <[email protected]>
Date: 2017-03-24T05:11:36Z
removed unneeded sections of pom.xml including curator version. This
version is in parent pom.xml
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---