Revert "HBASE-26872 Load rate calculator for cost functions should be more precise (#4253)"
This reverts commit 7ae6be7c25
.
This commit is contained in:
parent
fd621a7c1b
commit
762390045b
|
@ -42,9 +42,9 @@ abstract class CostFromRegionLoadAsRateFunction extends CostFromRegionLoadFuncti
|
||||||
double cost = 0;
|
double cost = 0;
|
||||||
do {
|
do {
|
||||||
double current = getCostFromRl(iter.next());
|
double current = getCostFromRl(iter.next());
|
||||||
cost += current >= previous ? current - previous : current;
|
cost += current - previous;
|
||||||
previous = current;
|
previous = current;
|
||||||
} while (iter.hasNext());
|
} while (iter.hasNext());
|
||||||
return Math.max(0, cost / (regionLoadList.size() - 1));
|
return Math.max(0, cost / (regionLoadList.size() - 1));
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -23,6 +23,7 @@ import static org.junit.Assert.assertNull;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -49,6 +50,7 @@ import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
|
||||||
import org.junit.ClassRule;
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.experimental.categories.Category;
|
import org.junit.experimental.categories.Category;
|
||||||
|
|
||||||
import org.apache.hbase.thirdparty.org.apache.commons.collections4.CollectionUtils;
|
import org.apache.hbase.thirdparty.org.apache.commons.collections4.CollectionUtils;
|
||||||
|
|
||||||
@Category({ MasterTests.class, MediumTests.class })
|
@Category({ MasterTests.class, MediumTests.class })
|
||||||
|
@ -447,32 +449,6 @@ public class TestStochasticLoadBalancer extends BalancerTestBase {
|
||||||
assertEquals(2.5, result, 0.01);
|
assertEquals(2.5, result, 0.01);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testRegionLoadCostWhenDecrease() {
|
|
||||||
List<BalancerRegionLoad> regionLoads = new ArrayList<>();
|
|
||||||
// test region loads of [1,2,1,4]
|
|
||||||
for (int i = 1; i < 5; i++) {
|
|
||||||
int load = i == 3 ? 1 : i;
|
|
||||||
BalancerRegionLoad regionLoad = mock(BalancerRegionLoad.class);
|
|
||||||
when(regionLoad.getReadRequestsCount()).thenReturn((long)load);
|
|
||||||
when(regionLoad.getCpRequestsCount()).thenReturn((long)load);
|
|
||||||
regionLoads.add(regionLoad);
|
|
||||||
}
|
|
||||||
|
|
||||||
Configuration conf = HBaseConfiguration.create();
|
|
||||||
ReadRequestCostFunction readCostFunction =
|
|
||||||
new ReadRequestCostFunction(conf);
|
|
||||||
double rateResult = readCostFunction.getRegionLoadCost(regionLoads);
|
|
||||||
// read requests are treated as a rate so the average rate here is simply 1
|
|
||||||
assertEquals(1.67, rateResult, 0.01);
|
|
||||||
|
|
||||||
CPRequestCostFunction cpCostFunction =
|
|
||||||
new CPRequestCostFunction(conf);
|
|
||||||
rateResult = cpCostFunction.getRegionLoadCost(regionLoads);
|
|
||||||
// coprocessor requests are treated as a rate so the average rate here is simply 1
|
|
||||||
assertEquals(1.67, rateResult, 0.01);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testLosingRs() throws Exception {
|
public void testLosingRs() throws Exception {
|
||||||
int numNodes = 3;
|
int numNodes = 3;
|
||||||
|
|
Loading…
Reference in New Issue