[ 
https://issues.apache.org/jira/browse/HBASE-10498?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13899093#comment-13899093
 ] 

rajeshbabu commented on HBASE-10498:
------------------------------------

bq.Can you not add a new attribute for the Stochastic LB to consider – 
colocation – and weight it above others rather than add API? 
Regions colocation involves all the LB algorithms like random,ratain or 
balanceCluster depends on scenario(like create,enable,balancer,startup).
At present adding co-location logic to Stochastic LB give optimal colocation 
plan only in balanceCluster case right?

bq. However, for secondary indexing, co-locating regions should be a "hard 
constraint" I imagine.
Yes co-locating regions is hard constraint, by the time the regions assignment 
completed they should be in same RS(there may be some time gap in between the 
assignments).

bq. Still it should be possible to implement hard constraints like co-location 
inside the core LB's, but implement the logic of deciding which regions to 
co-locate as a pluggable layer.
This can be handled in another JIRA right [~enis]?
As part of this issue will provide APIs to notify balancer when region is 
online or offline(these help to avoid co-location mismatches in sec indexes).


> Add new APIs to load balancer interface
> ---------------------------------------
>
>                 Key: HBASE-10498
>                 URL: https://issues.apache.org/jira/browse/HBASE-10498
>             Project: HBase
>          Issue Type: Improvement
>          Components: Balancer
>            Reporter: rajeshbabu
>            Assignee: rajeshbabu
>             Fix For: 0.98.1, 0.99.0
>
>
> If a custom load balancer required to maintain region and corresponding 
> server locations,
> we can capture this information when we run any balancer algorithm before 
> assignment(like random,retain).
> But during master startup we will not call any balancer algorithm if a region 
> already assinged
> During split also we open child regions first in RS and then notify to master 
> through zookeeper. 
> So split regions information cannot be captured into balancer.
> Since balancer has access to master we can get the information from online 
> regions or region plan data structures in AM.
> But some use cases we cannot relay on this information(mainly to maintain 
> colocation of two tables regions). 
> So it's better to add some APIs to load balancer to notify balancer when 
> *region is online or offline*.
> These APIs helps a lot to maintain *regions colocation through custom load 
> balancer* which is very important in secondary indexing. 



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to