[
https://issues.apache.org/jira/browse/YARN-1709?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14123885#comment-14123885
]
Chris Douglas commented on YARN-1709:
-------------------------------------
Overall, the patch lgtm. Just a few minor tweaks, then I'm +1
* very minor: Javadoc could be compressed a bit (empty lines)
{{InMemoryPlan}}
* The {{ZERO_RESOURCE}} instance escapes via {{getConsumptionForUser}}
* Some lines are more than 80 characters
* The logging can use built-in substitution more efficiently. Instead of:
{code}
String errMsg =
MessageFormat
.format(
"The specified Reservation with ID {0} does not exist in the plan",
reservation.getReservationId());
LOG.error(errMsg);
{code}
Prefer:
{code}
LOG.error("The specified Reservation with ID {} does not exist in the plan",
reservation.getReservationId());
{code}
Some of the code already uses this construction, but a few still use
{{MessageFormat}}.
* This form is harder to read:
{code}
InMemoryReservationAllocation inMemReservation = null;
if (reservation instanceof InMemoryReservationAllocation) {
inMemReservation = (InMemoryReservationAllocation) reservation;
} else {
// [snip] log error
throw new RuntimeException(errMsg);
}
{code}
than the if (error) { throw; } construction used the other checks. Is it an
improvement over {{ClassCastException}}?
* {{addReservation}} doesn't need to hold the write lock while it checks
invariants on its arguments
* The private methods that assume locks ({{incrementAllocation}},
{{decrementAllocation}}, {{removeReservation}}, etc.) are held should probably
{{assert}} that precondition (e.g., {{RRWL::isWriteLockedByCurrentThread()}})
* {{getMinimumAllocation}} and {{getMaximumAllocation}} return mutable data
that should probably be cloned
{{InMemoryReservationAllocation}}
* minor style: redundant {{this}} in get methods
* {{toString}} should use {{StringBuilder}} instead of {{StringBuffer}}
{{PlanView}}
* Mismatched javadoc on {{getEarliestStartTime}}
* {{getLastEndTime}} specifies UTC. Is that enforced in the implementation?
{{ReservationInterval}}
* Can this be made immutable? It's a key in several maps
{{RLESparseResourceAllocation}}
* Though some methods in {{InMemoryPlan}}, the {{ZERO_RESOURCE}} internal
variable can escape via {{getCapacityAtTime}}.
> Admission Control: Reservation subsystem
> ----------------------------------------
>
> Key: YARN-1709
> URL: https://issues.apache.org/jira/browse/YARN-1709
> Project: Hadoop YARN
> Issue Type: Sub-task
> Components: resourcemanager
> Reporter: Carlo Curino
> Assignee: Subramaniam Krishnan
> Attachments: YARN-1709.patch, YARN-1709.patch, YARN-1709.patch
>
>
> This JIRA is about the key data structure used to track resources over time
> to enable YARN-1051. The Reservation subsystem is conceptually a "plan" of
> how the scheduler will allocate resources over-time.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)