Hi, I am trying to write a customized rebalancing algorithm. I would like to run the rebalancer every 30 minutes inside a single thread. I would also like to completely disable Helix triggering the rebalancer.
I have a few questions: 1) What's the best way to run the custom controller ? Can I simply instantiate a ZKHelixAdmin object and then keep running my rebalancer inside a thread or do I need to do something more. Apart from rebalancing, I want to do other things inside the the controller, so it would be nice if I could simply fire up the controller through code. I could not find this in the documentation. 2) Same question for the Helix agent. My Helix Agent is a JVM process which does other things apart from exposing the callbacks for state transitions. Is there a code sample for the same ? 3) How do I disable Helix triggered rebalancing once I am able to run the custom controller ? 4) During my custom rebalance run, how I can get the current cluster state - is it through ClusterDataCache.getIdealState() ? 5) For clients talking to the cluster, does helix provide an easy abstraction to find the partition distribution for a helix resource ? Thanks Varun