YARN-2611. Fixing jenkins findbugs warning and TestRMWebServicesCapacitySched for branch YARN-1051. Contributed by Subru Krishnan and Carlo Curino.

(cherry picked from commit c47464aba407d1dafe10be23fe454f0489cc4367)
This commit is contained in:
subru 2014-09-26 10:48:12 -07:00 committed by Chris Douglas
parent 5e10a13bb4
commit a2986234be
7 changed files with 50 additions and 7 deletions

View File

@ -29,3 +29,6 @@ delegate. (Subru Krishnan and Carlo Curino via subru)
YARN-2576. Fixing compilation, javadocs and audit issues to pass
test patch in branch. (Subru Krishnan and Carlo Curino via subru)
YARN-2611. Fixing jenkins findbugs warning and TestRMWebServicesCapacitySched
for branch YARN-1051. (Subru Krishnan and Carlo Curino via subru)

View File

@ -62,6 +62,11 @@ public class CapacityOverTimePolicy implements SharingPolicy {
// it should be easy to remove this limitation
@Override
public void init(String reservationQueuePath, Configuration conf) {
if (!(conf instanceof CapacitySchedulerConfiguration)) {
throw new IllegalArgumentException("Unexpected conf type: "
+ conf.getClass().getSimpleName() + " only supported conf is: "
+ CapacitySchedulerConfiguration.class.getSimpleName());
}
this.conf = (CapacitySchedulerConfiguration) conf;
validWindow = this.conf.getReservationWindow(reservationQueuePath);
maxInst = this.conf.getInstantaneousMaxCapacity(reservationQueuePath) / 100;
@ -203,7 +208,7 @@ public long getValidWindow() {
* The comparison/multiplication behaviors of IntegralResource are consistent
* with the DefaultResourceCalculator.
*/
public class IntegralResource {
private static class IntegralResource {
long memory;
long vcores;

View File

@ -326,7 +326,7 @@ private List<ReservationAllocation> sortByDelta(
return currentReservations;
}
private class ReservationAllocationComparator implements
private static class ReservationAllocationComparator implements
Comparator<ReservationAllocation> {
CapacityScheduler scheduler;
long now;

View File

@ -138,7 +138,7 @@ private void decrementAllocation(ReservationAllocation reservation) {
rleSparseVector.removeInterval(r.getKey(), r.getValue());
}
if (resAlloc.isEmpty()) {
userResourceAlloc.remove(resAlloc);
userResourceAlloc.remove(user);
}
}
@ -311,9 +311,9 @@ public boolean deleteReservation(ReservationId reservationID) {
public void archiveCompletedReservations(long tick) {
// Since we are looking for old reservations, read lock is optimal
LOG.debug("Running archival at time: {}", tick);
readLock.lock();
List<InMemoryReservationAllocation> expiredReservations =
new ArrayList<InMemoryReservationAllocation>();
readLock.lock();
// archive reservations and delete the ones which are beyond
// the reservation policy "window"
try {
@ -351,9 +351,9 @@ public void archiveCompletedReservations(long tick) {
@Override
public Set<ReservationAllocation> getReservationsAtTime(long tick) {
readLock.lock();
ReservationInterval searchInterval =
new ReservationInterval(tick, Long.MAX_VALUE);
readLock.lock();
try {
SortedMap<ReservationInterval, Set<InMemoryReservationAllocation>> reservations =
currentReservations.headMap(searchInterval, true);

View File

@ -78,6 +78,36 @@ public int compareTo(ReservationInterval anotherInterval) {
}
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + (int) (endTime ^ (endTime >>> 32));
result = prime * result + (int) (startTime ^ (startTime >>> 32));
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof ReservationInterval)) {
return false;
}
ReservationInterval other = (ReservationInterval) obj;
if (endTime != other.endTime) {
return false;
}
if (startTime != other.startTime) {
return false;
}
return true;
}
public String toString() {
return "[" + startTime + ", " + endTime + "]";
}

View File

@ -70,6 +70,11 @@ public SimpleCapacityReplanner() {
@Override
public void init(String planQueueName, Configuration conf) {
if (!(conf instanceof CapacitySchedulerConfiguration)) {
throw new IllegalArgumentException("Unexpected conf type: "
+ conf.getClass().getSimpleName() + " only supported conf is: "
+ CapacitySchedulerConfiguration.class.getSimpleName());
}
this.lengthOfCheckZone =
((CapacitySchedulerConfiguration) conf)
.getEnforcementWindow(planQueueName);

View File

@ -357,10 +357,10 @@ private void verifyClusterSchedulerGeneric(String type, float usedCapacity,
private void verifySubQueue(JSONObject info, String q,
float parentAbsCapacity, float parentAbsMaxCapacity)
throws JSONException, Exception {
int numExpectedElements = 11;
int numExpectedElements = 12;
boolean isParentQueue = true;
if (!info.has("queues")) {
numExpectedElements = 21;
numExpectedElements = 22;
isParentQueue = false;
}
assertEquals("incorrect number of elements", numExpectedElements, info.length());