@Test public void testAppPercentagesOnswitch() throws Exception { FifoScheduler scheduler = mock(FifoScheduler.class); when(scheduler.getClusterResource()).thenReturn(Resource.newInstance(0, 0)); when(scheduler.getResourceCalculator()) .thenReturn(new DefaultResourceCalculator()); ApplicationAttemptId appAttId = createAppAttemptId(0, 0); RMContext rmContext = mock(RMContext.class); when(rmContext.getEpoch()).thenReturn(3L); when(rmContext.getScheduler()).thenReturn(scheduler); final String user = "user1"; Queue queue = createQueue("test", null); SchedulerApplicationAttempt app = new SchedulerApplicationAttempt(appAttId, user, queue, queue.getAbstractUsersManager(), rmContext); // Resource request Resource requestedResource = Resource.newInstance(1536, 2); app.attemptResourceUsage.incUsed(requestedResource); assertEquals(0.0f, app.getResourceUsageReport().getQueueUsagePercentage(), 0.0f); assertEquals(0.0f, app.getResourceUsageReport().getClusterUsagePercentage(), 0.0f); }
RMContext rmContext = mock(RMContext.class); when(rmContext.getEpoch()).thenReturn(3L); SchedulerApplicationAttempt app = new SchedulerApplicationAttempt( attemptId, "user", queue, queue.getAbstractUsersManager(), rmContext);
Queue queue = createQueue("test", null); SchedulerApplicationAttempt app = new SchedulerApplicationAttempt(appAttId, user, queue, queue.getAbstractUsersManager(), rmContext); app = new SchedulerApplicationAttempt(appAttId, user, queue, queue.getAbstractUsersManager(), rmContext); app.attemptResourceUsage.incUsed(requestedResource); app = new SchedulerApplicationAttempt(appAttId, user, queue, queue.getAbstractUsersManager(), rmContext);
@Test public void testSchedulingOpportunityOverflow() throws Exception { ApplicationAttemptId attemptId = createAppAttemptId(0, 0); Queue queue = createQueue("test", null); RMContext rmContext = mock(RMContext.class); when(rmContext.getEpoch()).thenReturn(3L); SchedulerApplicationAttempt app = new SchedulerApplicationAttempt( attemptId, "user", queue, queue.getActiveUsersManager(), rmContext); Priority priority = Priority.newInstance(1); assertEquals(0, app.getSchedulingOpportunities(priority)); app.addSchedulingOpportunity(priority); assertEquals(1, app.getSchedulingOpportunities(priority)); // verify the count is capped at MAX_VALUE and does not overflow app.setSchedulingOpportunities(priority, Integer.MAX_VALUE - 1); assertEquals(Integer.MAX_VALUE - 1, app.getSchedulingOpportunities(priority)); app.addSchedulingOpportunity(priority); assertEquals(Integer.MAX_VALUE, app.getSchedulingOpportunities(priority)); app.addSchedulingOpportunity(priority); assertEquals(Integer.MAX_VALUE, app.getSchedulingOpportunities(priority)); } }
@Test public void testSchedulingOpportunityOverflow() throws Exception { ApplicationAttemptId attemptId = createAppAttemptId(0, 0); Queue queue = createQueue("test", null); RMContext rmContext = mock(RMContext.class); when(rmContext.getEpoch()).thenReturn(3L); SchedulerApplicationAttempt app = new SchedulerApplicationAttempt( attemptId, "user", queue, queue.getAbstractUsersManager(), rmContext); Priority priority = Priority.newInstance(1); SchedulerRequestKey schedulerKey = toSchedulerKey(priority); assertEquals(0, app.getSchedulingOpportunities(schedulerKey)); app.addSchedulingOpportunity(schedulerKey); assertEquals(1, app.getSchedulingOpportunities(schedulerKey)); // verify the count is capped at MAX_VALUE and does not overflow app.setSchedulingOpportunities(schedulerKey, Integer.MAX_VALUE - 1); assertEquals(Integer.MAX_VALUE - 1, app.getSchedulingOpportunities(schedulerKey)); app.addSchedulingOpportunity(schedulerKey); assertEquals(Integer.MAX_VALUE, app.getSchedulingOpportunities(schedulerKey)); app.addSchedulingOpportunity(schedulerKey); assertEquals(Integer.MAX_VALUE, app.getSchedulingOpportunities(schedulerKey)); }
RMContext rmContext = mock(RMContext.class); when(rmContext.getEpoch()).thenReturn(3L); SchedulerApplicationAttempt app = new SchedulerApplicationAttempt(appAttId, user, oldQueue, oldQueue.getActiveUsersManager(), rmContext); oldMetrics.submitApp(user);
RMContext rmContext = mock(RMContext.class); when(rmContext.getEpoch()).thenReturn(3L); SchedulerApplicationAttempt app = new SchedulerApplicationAttempt(appAttId, user, oldQueue, oldQueue.getAbstractUsersManager(), rmContext); oldMetrics.submitApp(user);
RMContext rmContext = mock(RMContext.class); when(rmContext.getEpoch()).thenReturn(3L); SchedulerApplicationAttempt app = new SchedulerApplicationAttempt(appAttId, user, queue1, queue1.getAbstractUsersManager(), rmContext);