Skip to content

Commit

Permalink
Update tests to check status update performance as well
Browse files Browse the repository at this point in the history
  • Loading branch information
ssalinas committed Jan 26, 2018
1 parent e1a7909 commit e4f37f5
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 10 deletions.
Expand Up @@ -254,8 +254,6 @@ private void unsafeProcessStatusUpdate(Protos.TaskStatus status) {
scheduler.handleCompletedTask(task, taskIdObj, isActiveTask, timestamp, taskState, taskHistoryUpdateCreateResult, status); scheduler.handleCompletedTask(task, taskIdObj, isActiveTask, timestamp, taskState, taskHistoryUpdateCreateResult, status);
} }


System.out.println(newTaskStatusHolder);

saveNewTaskStatusHolder(taskIdObj, newTaskStatusHolder, taskState); saveNewTaskStatusHolder(taskIdObj, newTaskStatusHolder, taskState);
} }


Expand Down
Expand Up @@ -313,7 +313,6 @@ public void itForbidsHealthCheckGreaterThanMaxTotalHealthCheck() {
SingularityRequest request = new SingularityRequestBuilder("1234567", RequestType.SERVICE).build(); SingularityRequest request = new SingularityRequestBuilder("1234567", RequestType.SERVICE).build();


WebApplicationException exn = (WebApplicationException) catchThrowable(() -> validator.checkDeploy(request, deploy, Collections.emptyList(), Collections.emptyList())); WebApplicationException exn = (WebApplicationException) catchThrowable(() -> validator.checkDeploy(request, deploy, Collections.emptyList(), Collections.emptyList()));
System.out.println(exn.getResponse().getEntity());
assertThat((String) exn.getResponse().getEntity()) assertThat((String) exn.getResponse().getEntity())
.contains("Max healthcheck time"); .contains("Max healthcheck time");
} }
Expand Down
Expand Up @@ -4,8 +4,11 @@
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Random; import java.util.Random;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.atomic.AtomicInteger;


import org.apache.mesos.v1.Protos.Offer; import org.apache.mesos.v1.Protos.Offer;
import org.apache.mesos.v1.Protos.TaskState;
import org.junit.Ignore; import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;


Expand All @@ -14,6 +17,7 @@
import com.hubspot.singularity.RequestType; import com.hubspot.singularity.RequestType;
import com.hubspot.singularity.SingularityRequest; import com.hubspot.singularity.SingularityRequest;
import com.hubspot.singularity.SingularityRequestBuilder; import com.hubspot.singularity.SingularityRequestBuilder;
import com.hubspot.singularity.SingularityTaskId;
import com.hubspot.singularity.SlavePlacement; import com.hubspot.singularity.SlavePlacement;


public class SingularityOfferPerformanceTestRunner extends SingularitySchedulerTestBase { public class SingularityOfferPerformanceTestRunner extends SingularitySchedulerTestBase {
Expand All @@ -22,13 +26,13 @@ public SingularityOfferPerformanceTestRunner() {
super(false); super(false);
} }


@Test(timeout = 300000L) @Test(timeout = 600000L)
@Ignore @Ignore
public void testOfferCache() { public void testSchedulerPerformance() {
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();


int numRequests = 1000; int numRequests = 2000;
int numOffers = 500; int numOffers = 1000;


Random r = new Random(); Random r = new Random();
Iterator<Double> cpuIterator = r.doubles(1, 5).iterator(); Iterator<Double> cpuIterator = r.doubles(1, 5).iterator();
Expand Down Expand Up @@ -62,6 +66,36 @@ public void testOfferCache() {
int activeTasks = taskManager.getActiveTaskIds().size(); int activeTasks = taskManager.getActiveTaskIds().size();


System.out.println(String.format("Launched %s tasks on %s offers in %s", activeTasks, numOffers, JavaUtils.durationFromMillis(duration))); System.out.println(String.format("Launched %s tasks on %s offers in %s", activeTasks, numOffers, JavaUtils.durationFromMillis(duration)));

start = System.currentTimeMillis();

CompletableFuture<Void>[] updateFutures = new CompletableFuture[taskManager.getActiveTaskIds().size()*5];
AtomicInteger i = new AtomicInteger(0);
for (SingularityTaskId taskId : taskManager.getActiveTaskIds()) {
updateFutures[i.getAndIncrement()] = CompletableFuture.supplyAsync(() -> {
statusUpdate(taskManager.getTask(taskId).get(), TaskState.TASK_STAGING);
return null;
});
updateFutures[i.getAndIncrement()] = CompletableFuture.supplyAsync(() -> {
statusUpdate(taskManager.getTask(taskId).get(), TaskState.TASK_STARTING);
return null;
});
updateFutures[i.getAndIncrement()] = CompletableFuture.supplyAsync(() -> {
statusUpdate(taskManager.getTask(taskId).get(), TaskState.TASK_RUNNING);
return null;
});
updateFutures[i.getAndIncrement()] = CompletableFuture.supplyAsync(() -> {
statusUpdate(taskManager.getTask(taskId).get(), TaskState.TASK_FAILED);
return null;
});
updateFutures[i.getAndIncrement()] = CompletableFuture.supplyAsync(() -> {
statusUpdate(taskManager.getTask(taskId).get(), TaskState.TASK_FAILED);
return null;
});
}
CompletableFuture.allOf(updateFutures).join();

System.out.println(String.format("Ran %s status updates in %s", activeTasks * 5, JavaUtils.durationFromMillis(System.currentTimeMillis() - start)));
} }




Expand Down
Expand Up @@ -1527,7 +1527,6 @@ public void testTaskOddities() {
statusUpdate(taskOne, TaskState.TASK_FAILED); statusUpdate(taskOne, TaskState.TASK_FAILED);


Assert.assertTrue(!taskManager.isActiveTask(taskOne.getTaskId().getId())); Assert.assertTrue(!taskManager.isActiveTask(taskOne.getTaskId().getId()));
System.out.println(taskManager.getTaskHistoryUpdates(taskOne.getTaskId()));


Assert.assertEquals(2, taskManager.getTaskHistoryUpdates(taskOne.getTaskId()).size()); Assert.assertEquals(2, taskManager.getTaskHistoryUpdates(taskOne.getTaskId()).size());
} }
Expand Down Expand Up @@ -1703,8 +1702,6 @@ public void testScaleDownTakesHighestInstancesWithPendingTask() {


scheduler.drainPendingQueue(); scheduler.drainPendingQueue();


System.out.println(taskManager.getPendingTaskIds());

requestResource.scale(requestId, new SingularityScaleRequest(Optional.of(3), Optional.absent(), Optional.absent(), requestResource.scale(requestId, new SingularityScaleRequest(Optional.of(3), Optional.absent(), Optional.absent(),
Optional.absent(), Optional.absent(), Optional.absent(), Optional.absent(), Optional.absent()), singularityUser); Optional.absent(), Optional.absent(), Optional.absent(), Optional.absent(), Optional.absent()), singularityUser);
scheduler.drainPendingQueue(); scheduler.drainPendingQueue();
Expand Down

0 comments on commit e4f37f5

Please sign in to comment.