You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-dev@hadoop.apache.org by "Owen O'Malley (JIRA)" <ji...@apache.org> on 2009/01/12 16:34:00 UTC
[jira] Resolved: (HADOOP-5003) When computing absoluet guaranteed
capacity (GC) from a percent value, Capacity Scheduler should round up
floats, rather than truncate them.
[ https://issues.apache.org/jira/browse/HADOOP-5003?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Owen O'Malley resolved HADOOP-5003.
-----------------------------------
Resolution: Won't Fix
If that is true, it is a bug in the capacity scheduler. The timer for SLA compliance should be from when the queue has load that isn't being satisfied.
> When computing absoluet guaranteed capacity (GC) from a percent value, Capacity Scheduler should round up floats, rather than truncate them.
> --------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: HADOOP-5003
> URL: https://issues.apache.org/jira/browse/HADOOP-5003
> Project: Hadoop Core
> Issue Type: Bug
> Components: contrib/capacity-sched
> Reporter: Vivek Ratan
> Priority: Minor
>
> The Capacity Scheduler calculates a queue's absolute GC value by getting its percent of the total cluster capacity (which is a float, since the configured GC% is a float) and casting it to an int. Casting a float to an int always rounds down. For very small clusters, this can result in the GC of a queue being one lower than what it should be. For example, if Q1 has a GC of 50%, Q2 has a GC of 40%, and Q3 has a GC of 10%, and if the cluster capacity is 4 (as we have, in our test cases), Q1's GC works out to 2, Q2's to 1, and Q3's to 0 with today's code. Q2's capacity should really be 2, as 40% of 4, rounded up, should be 2.
> Simple fix is to use Math.round() rather than cast to an int.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.