Return-Path: X-Original-To: apmail-hbase-commits-archive@www.apache.org Delivered-To: apmail-hbase-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 67735106C4 for ; Fri, 12 Apr 2013 23:43:42 +0000 (UTC) Received: (qmail 32218 invoked by uid 500); 12 Apr 2013 23:43:42 -0000 Delivered-To: apmail-hbase-commits-archive@hbase.apache.org Received: (qmail 32190 invoked by uid 500); 12 Apr 2013 23:43:42 -0000 Mailing-List: contact commits-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@hbase.apache.org Delivered-To: mailing list commits@hbase.apache.org Received: (qmail 32182 invoked by uid 99); 12 Apr 2013 23:43:42 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 12 Apr 2013 23:43:42 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 12 Apr 2013 23:43:39 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 504E72388847; Fri, 12 Apr 2013 23:43:18 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1467517 - /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java Date: Fri, 12 Apr 2013 23:43:18 -0000 To: commits@hbase.apache.org From: eclark@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20130412234318.504E72388847@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: eclark Date: Fri Apr 12 23:43:17 2013 New Revision: 1467517 URL: http://svn.apache.org/r1467517 Log: HBASE-8339 Make sure the StochasticLoadBalancer doesn't run a cost function when not needed Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java?rev=1467517&r1=1467516&r2=1467517&view=diff ============================================================================== --- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java (original) +++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java Fri Apr 12 23:43:17 2013 @@ -370,37 +370,50 @@ public class StochasticLoadBalancer exte * @return a double of a cost associated with the proposed */ protected double computeCost(Cluster cluster) { - - double moveCost = moveCostMultiplier * computeMoveCost(cluster); - - double regionCountSkewCost = loadMultiplier * computeSkewLoadCost(cluster); - double tableSkewCost = tableMultiplier * computeTableSkewLoadCost(cluster); - double localityCost = - localityMultiplier * computeDataLocalityCost(cluster); + double moveCost = (moveCostMultiplier > 0) ? + (moveCostMultiplier * computeMoveCost(cluster)) : + 0; + + double regionCountSkewCost = (loadMultiplier > 0) ? + (loadMultiplier * computeSkewLoadCost(cluster)) : + 0; + + double tableSkewCost = (tableMultiplier > 0) ? + (tableMultiplier * computeTableSkewLoadCost(cluster)) : + 0; + + double localityCost = (localityMultiplier > 0) ? + (localityMultiplier * computeDataLocalityCost(cluster)) : + 0; double memstoreSizeCost = - memStoreSizeMultiplier - * computeRegionLoadCost(cluster, RegionLoadCostType.MEMSTORE_SIZE); - double storefileSizeCost = - storeFileSizeMultiplier - * computeRegionLoadCost(cluster, RegionLoadCostType.STOREFILE_SIZE); + (memStoreSizeMultiplier > 0) ? + (memStoreSizeMultiplier * computeRegionLoadCost(cluster, RegionLoadCostType.MEMSTORE_SIZE)) : + 0; + double storefileSizeCost = + (storeFileSizeMultiplier > 0) ? + (storeFileSizeMultiplier * computeRegionLoadCost(cluster, RegionLoadCostType.STOREFILE_SIZE)): + 0; double readRequestCost = - readRequestMultiplier - * computeRegionLoadCost(cluster, RegionLoadCostType.READ_REQUEST); + (readRequestMultiplier > 0) ? + (readRequestMultiplier * computeRegionLoadCost(cluster, RegionLoadCostType.READ_REQUEST)) : + 0; + double writeRequestCost = - writeRequestMultiplier - * computeRegionLoadCost(cluster, RegionLoadCostType.WRITE_REQUEST); + (writeRequestMultiplier > 0) ? + (writeRequestMultiplier * computeRegionLoadCost(cluster, RegionLoadCostType.WRITE_REQUEST)) : + 0; double total = - moveCost + regionCountSkewCost + tableSkewCost + localityCost + memstoreSizeCost - + storefileSizeCost + readRequestCost + writeRequestCost; + moveCost + regionCountSkewCost + tableSkewCost + localityCost + memstoreSizeCost + + storefileSizeCost + readRequestCost + writeRequestCost; if (LOG.isTraceEnabled()) { LOG.trace("Computed weights for a potential balancing total = " + total + " moveCost = " - + moveCost + " regionCountSkewCost = " + regionCountSkewCost + " tableSkewCost = " - + tableSkewCost + " localityCost = " + localityCost + " memstoreSizeCost = " - + memstoreSizeCost + " storefileSizeCost = " + storefileSizeCost); + + moveCost + " regionCountSkewCost = " + regionCountSkewCost + " tableSkewCost = " + + tableSkewCost + " localityCost = " + localityCost + " memstoreSizeCost = " + + memstoreSizeCost + " storefileSizeCost = " + storefileSizeCost); } return total; }