Hi, Subramanian

  Helix actually allows you to dynamically change the number of partitions
in a resource.   If you are using your own customized rebalancer, i.e, your
rebalance mode set in resource's IdealState is CUSTOMIZED, what you can do
is to manipulate the IdealState's MapFields when adding or removing
partitions.

  An example is given here, say initially, your resource has 3 partitions,
your IS should looks like:

{
  "id":"myDB"
  ,"simpleFields":{
    ,"NUM_PARTITIONS":"3"
    ,"REBALANCE_MODE":"CUSTOMIZED"
    ,"REPLICAS":"2"
    ,"STATE_MODEL_DEF_REF":"OnlineOffline"
  }
  ,"listFields":{
  }
  ,"mapFields":{
    "myDB_0":{
      "node-1":"ONLINE"
      ,"node-2":"ONLINE"
    }
    ,"myDB_1":{
      "node-1":"ONLINE"
      ,"node-2":"ONLINE"
    }
    ,"myDB_2":{
      "node-1":"ONLINE"
      ,"node-2":"ONLINE"
    }
  }
}

   Now you would like to add 2 new partitions. You can update your IS with
these new partitions, and Helix will bring all replicas to ONLINE for these
two new partitions.

{
  "id":"myDB"
  ,"simpleFields":{
*    ,"NUM_PARTITIONS":"5"*
    ,"REBALANCE_MODE":"CUSTOMIZED"
    ,"REPLICAS":"2"
    ,"STATE_MODEL_DEF_REF":"OnlineOffline"
  }
  ,"listFields":{
  }
  ,"mapFields":{
    "myDB_0":{
      "node-1":"ONLINE"
      ,"node-2":"ONLINE"
    }
    ,"myDB_1":{
      "node-3":"ONLINE"
      ,"node-4":"ONLINE"
    }
    ,"myDB_2":{
      "node-5":"ONLINE"
      ,"node-6":"ONLINE"
    }
    *,"myDB_3":{*
*      "node-1":"ONLINE"*
*      ,"node-2":"ONLINE"*
*    }*
*    ,"myDB_4":{*
*      "node-3":"ONLINE"*
*      ,"node-4":"ONLINE"*
*    }*
  }
}
    Removing an existing partition is a little tricky,  you can not simply
remove it from IS.  You need to first set all replica for that partition to
DROPPED state, for example, such as below.

{
  "id":"myDB"
  ,"simpleFields":{
*    ,"NUM_PARTITIONS":"5"*
    ,"REBALANCE_MODE":"CUSTOMIZED"
    ,"REPLICAS":"2"
    ,"STATE_MODEL_DEF_REF":"OnlineOffline"
  }
  ,"listFields":{
  }
  ,"mapFields":{
    *"myDB_0":{*
*      "node-1":"DROPPED"*
*      ,"node-2":"DROPPED"*
*    }*
*    ,"myDB_1":{*
*      "node-3":"DROPPED"*
*      ,"node-4":"DROPPED"*
*    }*
    ,"myDB_2":{
      "node-5":"ONLINE"
      ,"node-6":"ONLINE"
    }
    ,"myDB_3":{
      "node-1":"ONLINE"
      ,"node-2":"ONLINE"
    }
    ,"myDB_4":{
      "node-3":"ONLINE"
      ,"node-4":"ONLINE"
    }
  }

 Once you confirming the partition has been removed from resource's
ExternalView, it is safe to remove it from IdealState now.

{
  "id":"myDB"
  ,"simpleFields":{
*    ,"NUM_PARTITIONS":"3"*
    ,"REBALANCE_MODE":"CUSTOMIZED"
    ,"REPLICAS":"2"
    ,"STATE_MODEL_DEF_REF":"OnlineOffline"
  }
  ,"listFields":{
  }
  ,"mapFields":{
    ,"myDB_2":{
      "node-5":"ONLINE"
      ,"node-6":"ONLINE"
    }
    ,"myDB_3":{
      "node-1":"ONLINE"
      ,"node-2":"ONLINE"
    }
    ,"myDB_4":{
      "node-3":"ONLINE"
      ,"node-4":"ONLINE"
    }
  }
  Help this helps on solving your problem.
Thanks
Lei
On Wed, Jun 7, 2017 at 2:58 PM, Subramanian Raghunathan <
[EMAIL PROTECTED]> wrote:
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB