You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Duo Zhang (Jira)" <ji...@apache.org> on 2021/04/22 07:14:00 UTC
[jira] [Resolved] (HBASE-25801) Move NamedQueuePayload to
hbase-common
[ https://issues.apache.org/jira/browse/HBASE-25801?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Duo Zhang resolved HBASE-25801.
-------------------------------
Resolution: Won't Fix
Seems the interface is narrow enough.
{code}
private void sendRegionPlansToRingBuffer(List<RegionPlan> plans, double currentCost,
double initCost, String initFunctionTotalCosts, long step) {
if (this.namedQueueRecorder != null) {
List<String> regionPlans = new ArrayList<>();
for (RegionPlan plan : plans) {
regionPlans.add(
"table: " + plan.getRegionInfo().getTable() + " , region: " + plan.getRegionName()
+ " , source: " + plan.getSource() + " , destination: " + plan.getDestination());
}
BalancerDecision balancerDecision =
new BalancerDecision.Builder()
.setInitTotalCost(initCost)
.setInitialFunctionCosts(initFunctionTotalCosts)
.setComputedTotalCost(currentCost)
.setFinalFunctionCosts(totalCostsPerFunc())
.setComputedSteps(step)
.setRegionPlans(regionPlans).build();
namedQueueRecorder.addRecord(new BalancerDecisionDetails(balancerDecision));
}
}
{code}
This is the only place where we use NamedQueueRecord in LoadBalancer, I think we could just introduce a sendRegionPlansToRingBuffer method in ClusterInfoProvider, and implement the actual code where we create BalancerDecision in MasterClusterInfoProvider, so we do not need to depend on NamedQueueRecord in hbase-balancer module.
Resolve as won't fix for now.
> Move NamedQueuePayload to hbase-common
> --------------------------------------
>
> Key: HBASE-25801
> URL: https://issues.apache.org/jira/browse/HBASE-25801
> Project: HBase
> Issue Type: Sub-task
> Components: Operability
> Reporter: Duo Zhang
> Assignee: Duo Zhang
> Priority: Major
>
> We use this class to record the balancer decision in LoadBalancer, so if we want to move LoadBalancer to hbae-balancer, we also need to move NamedQueueRecord related classes out of hbase-server. Since we use a system table to record, hbase-client will be a suitable place.
> ====== Update ======
> A we depend on disruptor for NamedQueueRecord, I do not think it is a good idea to introduce this dependency to our client library. So let's just move the minimum classes to hbase-client or hbase-common instead of the whole namedqueues implementation.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)