use of org.apache.flink.runtime.clusterframework.types.ResourceID in project flink by apache.
the class InstanceManagerTest method testRegisteringAlreadyRegistered.
@Test
public void testRegisteringAlreadyRegistered() {
try {
InstanceManager cm = new InstanceManager();
final int dataPort = 20000;
ResourceID resID1 = ResourceID.generate();
ResourceID resID2 = ResourceID.generate();
HardwareDescription resources = HardwareDescription.extractFromSystem(4096);
InetAddress address = InetAddress.getByName("127.0.0.1");
TaskManagerLocation ici = new TaskManagerLocation(resID1, address, dataPort);
JavaTestKit probe = new JavaTestKit(system);
cm.registerTaskManager(new ActorTaskManagerGateway(new AkkaActorGateway(probe.getRef(), leaderSessionID)), ici, resources, 1);
assertEquals(1, cm.getNumberOfRegisteredTaskManagers());
assertEquals(1, cm.getTotalNumberOfSlots());
try {
cm.registerTaskManager(new ActorTaskManagerGateway(new AkkaActorGateway(probe.getRef(), leaderSessionID)), ici, resources, 1);
} catch (Exception e) {
// good
}
// check for correct number of registered instances
assertEquals(1, cm.getNumberOfRegisteredTaskManagers());
assertEquals(1, cm.getTotalNumberOfSlots());
cm.shutdown();
} catch (Exception e) {
System.err.println(e.getMessage());
e.printStackTrace();
Assert.fail("Test erroneous: " + e.getMessage());
}
}
use of org.apache.flink.runtime.clusterframework.types.ResourceID in project flink by apache.
the class InstanceTest method testCancelAllSlots.
@Test
public void testCancelAllSlots() {
try {
ResourceID resourceID = ResourceID.generate();
HardwareDescription hardwareDescription = new HardwareDescription(4, 2L * 1024 * 1024 * 1024, 1024 * 1024 * 1024, 512 * 1024 * 1024);
InetAddress address = InetAddress.getByName("127.0.0.1");
TaskManagerLocation connection = new TaskManagerLocation(resourceID, address, 10001);
Instance instance = new Instance(new ActorTaskManagerGateway(DummyActorGateway.INSTANCE), connection, new InstanceID(), hardwareDescription, 3);
assertEquals(3, instance.getNumberOfAvailableSlots());
SimpleSlot slot1 = instance.allocateSimpleSlot(new JobID());
SimpleSlot slot2 = instance.allocateSimpleSlot(new JobID());
SimpleSlot slot3 = instance.allocateSimpleSlot(new JobID());
instance.cancelAndReleaseAllSlots();
assertEquals(3, instance.getNumberOfAvailableSlots());
assertTrue(slot1.isCanceled());
assertTrue(slot2.isCanceled());
assertTrue(slot3.isCanceled());
} catch (Exception e) {
e.printStackTrace();
fail(e.getMessage());
}
}
use of org.apache.flink.runtime.clusterframework.types.ResourceID in project flink by apache.
the class SimpleSlotTest method getSlot.
public static SimpleSlot getSlot() throws Exception {
ResourceID resourceID = ResourceID.generate();
HardwareDescription hardwareDescription = new HardwareDescription(4, 2L * 1024 * 1024 * 1024, 1024 * 1024 * 1024, 512 * 1024 * 1024);
InetAddress address = InetAddress.getByName("127.0.0.1");
TaskManagerLocation connection = new TaskManagerLocation(resourceID, address, 10001);
Instance instance = new Instance(new ActorTaskManagerGateway(DummyActorGateway.INSTANCE), connection, new InstanceID(), hardwareDescription, 1);
return instance.allocateSimpleSlot(new JobID());
}
use of org.apache.flink.runtime.clusterframework.types.ResourceID in project flink by apache.
the class AllocatedSlotsTest method testOperations.
@Test
public void testOperations() throws Exception {
SlotPool.AllocatedSlots allocatedSlots = new SlotPool.AllocatedSlots();
final AllocationID allocation1 = new AllocationID();
final ResourceID resource1 = new ResourceID("resource1");
final Slot slot1 = createSlot(resource1, allocation1);
allocatedSlots.add(slot1);
assertTrue(allocatedSlots.contains(slot1.getAllocatedSlot().getSlotAllocationId()));
assertTrue(allocatedSlots.containResource(resource1));
assertEquals(slot1, allocatedSlots.get(allocation1));
assertEquals(1, allocatedSlots.getSlotsForTaskManager(resource1).size());
assertEquals(1, allocatedSlots.size());
final AllocationID allocation2 = new AllocationID();
final Slot slot2 = createSlot(resource1, allocation2);
allocatedSlots.add(slot2);
assertTrue(allocatedSlots.contains(slot1.getAllocatedSlot().getSlotAllocationId()));
assertTrue(allocatedSlots.contains(slot2.getAllocatedSlot().getSlotAllocationId()));
assertTrue(allocatedSlots.containResource(resource1));
assertEquals(slot1, allocatedSlots.get(allocation1));
assertEquals(slot2, allocatedSlots.get(allocation2));
assertEquals(2, allocatedSlots.getSlotsForTaskManager(resource1).size());
assertEquals(2, allocatedSlots.size());
final AllocationID allocation3 = new AllocationID();
final ResourceID resource2 = new ResourceID("resource2");
final Slot slot3 = createSlot(resource2, allocation3);
allocatedSlots.add(slot3);
assertTrue(allocatedSlots.contains(slot1.getAllocatedSlot().getSlotAllocationId()));
assertTrue(allocatedSlots.contains(slot2.getAllocatedSlot().getSlotAllocationId()));
assertTrue(allocatedSlots.contains(slot3.getAllocatedSlot().getSlotAllocationId()));
assertTrue(allocatedSlots.containResource(resource1));
assertTrue(allocatedSlots.containResource(resource2));
assertEquals(slot1, allocatedSlots.get(allocation1));
assertEquals(slot2, allocatedSlots.get(allocation2));
assertEquals(slot3, allocatedSlots.get(allocation3));
assertEquals(2, allocatedSlots.getSlotsForTaskManager(resource1).size());
assertEquals(1, allocatedSlots.getSlotsForTaskManager(resource2).size());
assertEquals(3, allocatedSlots.size());
allocatedSlots.remove(slot2);
assertTrue(allocatedSlots.contains(slot1.getAllocatedSlot().getSlotAllocationId()));
assertFalse(allocatedSlots.contains(slot2.getAllocatedSlot().getSlotAllocationId()));
assertTrue(allocatedSlots.contains(slot3.getAllocatedSlot().getSlotAllocationId()));
assertTrue(allocatedSlots.containResource(resource1));
assertTrue(allocatedSlots.containResource(resource2));
assertEquals(slot1, allocatedSlots.get(allocation1));
assertNull(allocatedSlots.get(allocation2));
assertEquals(slot3, allocatedSlots.get(allocation3));
assertEquals(1, allocatedSlots.getSlotsForTaskManager(resource1).size());
assertEquals(1, allocatedSlots.getSlotsForTaskManager(resource2).size());
assertEquals(2, allocatedSlots.size());
allocatedSlots.remove(slot1);
assertFalse(allocatedSlots.contains(slot1.getAllocatedSlot().getSlotAllocationId()));
assertFalse(allocatedSlots.contains(slot2.getAllocatedSlot().getSlotAllocationId()));
assertTrue(allocatedSlots.contains(slot3.getAllocatedSlot().getSlotAllocationId()));
assertFalse(allocatedSlots.containResource(resource1));
assertTrue(allocatedSlots.containResource(resource2));
assertNull(allocatedSlots.get(allocation1));
assertNull(allocatedSlots.get(allocation2));
assertEquals(slot3, allocatedSlots.get(allocation3));
assertEquals(0, allocatedSlots.getSlotsForTaskManager(resource1).size());
assertEquals(1, allocatedSlots.getSlotsForTaskManager(resource2).size());
assertEquals(1, allocatedSlots.size());
allocatedSlots.remove(slot3);
assertFalse(allocatedSlots.contains(slot1.getAllocatedSlot().getSlotAllocationId()));
assertFalse(allocatedSlots.contains(slot2.getAllocatedSlot().getSlotAllocationId()));
assertFalse(allocatedSlots.contains(slot3.getAllocatedSlot().getSlotAllocationId()));
assertFalse(allocatedSlots.containResource(resource1));
assertFalse(allocatedSlots.containResource(resource2));
assertNull(allocatedSlots.get(allocation1));
assertNull(allocatedSlots.get(allocation2));
assertNull(allocatedSlots.get(allocation3));
assertEquals(0, allocatedSlots.getSlotsForTaskManager(resource1).size());
assertEquals(0, allocatedSlots.getSlotsForTaskManager(resource2).size());
assertEquals(0, allocatedSlots.size());
}
use of org.apache.flink.runtime.clusterframework.types.ResourceID in project flink by apache.
the class SlotManagerTest method testNotifyTaskManagerFailure.
@Test
public void testNotifyTaskManagerFailure() {
TestingSlotManager slotManager = new TestingSlotManager();
ResourceID resource1 = ResourceID.generate();
ResourceID resource2 = ResourceID.generate();
ResourceSlot slot11 = new ResourceSlot(new SlotID(resource1, 1), DEFAULT_TESTING_PROFILE, taskExecutorRegistration);
ResourceSlot slot12 = new ResourceSlot(new SlotID(resource1, 2), DEFAULT_TESTING_PROFILE, taskExecutorRegistration);
ResourceSlot slot21 = new ResourceSlot(new SlotID(resource2, 1), DEFAULT_TESTING_PROFILE, taskExecutorRegistration);
ResourceSlot slot22 = new ResourceSlot(new SlotID(resource2, 2), DEFAULT_TESTING_PROFILE, taskExecutorRegistration);
slotManager.addFreeSlot(slot11);
slotManager.addFreeSlot(slot21);
slotManager.requestSlot(new SlotRequest(new JobID(), new AllocationID(), DEFAULT_TESTING_PROFILE));
slotManager.requestSlot(new SlotRequest(new JobID(), new AllocationID(), DEFAULT_TESTING_PROFILE));
assertEquals(2, slotManager.getAllocatedSlotCount());
assertEquals(0, slotManager.getFreeSlotCount());
assertEquals(0, slotManager.getPendingRequestCount());
slotManager.addFreeSlot(slot12);
slotManager.addFreeSlot(slot22);
assertEquals(2, slotManager.getAllocatedSlotCount());
assertEquals(2, slotManager.getFreeSlotCount());
assertEquals(0, slotManager.getPendingRequestCount());
slotManager.notifyTaskManagerFailure(resource2);
assertEquals(1, slotManager.getAllocatedSlotCount());
assertEquals(1, slotManager.getFreeSlotCount());
assertEquals(0, slotManager.getPendingRequestCount());
// notify an not exist resource failure
slotManager.notifyTaskManagerFailure(ResourceID.generate());
assertEquals(1, slotManager.getAllocatedSlotCount());
assertEquals(1, slotManager.getFreeSlotCount());
assertEquals(0, slotManager.getPendingRequestCount());
}
Aggregations