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:
parent
5e10a13bb4
commit
a2986234be
@ -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)
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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 + "]";
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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());
|
||||
|
Loading…
Reference in New Issue
Block a user