Class LocalityBasedCostFunction
java.lang.Object
org.apache.hadoop.hbase.master.balancer.CostFunction
org.apache.hadoop.hbase.master.balancer.LocalityBasedCostFunction
- Direct Known Subclasses:
RackLocalityCostFunction
,ServerLocalityCostFunction
Compute a cost of a potential cluster configuration based upon where
HStoreFile
s are located.-
Field Summary
Modifier and TypeFieldDescriptionprivate double
private double
private final BalancerClusterState.LocalityType
Fields inherited from class org.apache.hadoop.hbase.master.balancer.CostFunction
cluster, COST_EPSILON
-
Constructor Summary
ConstructorDescriptionLocalityBasedCostFunction
(org.apache.hadoop.conf.Configuration conf, BalancerClusterState.LocalityType type, String localityCostKey, float defaultLocalityCost) -
Method Summary
Modifier and TypeMethodDescriptionprotected final double
cost()
private int
getMostLocalEntityForRegion
(int region) private double
getWeightedLocality
(int region, int entity) (package private) void
prepare
(BalancerClusterState cluster) Called once per LB invocation to give the cost function to initialize it's state, and perform any costly calculation.(package private) abstract int
regionIndexToEntityIndex
(int region) Maps region to the current entity (server or rack) on which it is storedprotected void
regionMoved
(int region, int oldServer, int newServer) final void
updateWeight
(double[] weights) Add the cost of this cost function to the weight of the candidate generator that is optimized for this cost function.Methods inherited from class org.apache.hadoop.hbase.master.balancer.CostFunction
getMultiplier, isNeeded, postAction, scale, setMultiplier
-
Field Details
-
type
-
bestLocality
-
locality
-
-
Constructor Details
-
LocalityBasedCostFunction
LocalityBasedCostFunction(org.apache.hadoop.conf.Configuration conf, BalancerClusterState.LocalityType type, String localityCostKey, float defaultLocalityCost)
-
-
Method Details
-
regionIndexToEntityIndex
Maps region to the current entity (server or rack) on which it is stored -
prepare
Description copied from class:CostFunction
Called once per LB invocation to give the cost function to initialize it's state, and perform any costly calculation.- Overrides:
prepare
in classCostFunction
-
regionMoved
- Overrides:
regionMoved
in classCostFunction
-
cost
- Specified by:
cost
in classCostFunction
-
getMostLocalEntityForRegion
-
getWeightedLocality
-
updateWeight
Description copied from class:CostFunction
Add the cost of this cost function to the weight of the candidate generator that is optimized for this cost function. By default it is the RandomCandiateGenerator for a cost function. Called once per init or after postAction.- Overrides:
updateWeight
in classCostFunction
- Parameters:
weights
- the weights for every generator.
-