@AfterClass(alwaysRun = true) public void tearDownServer() throws Exception { server.close(); }
@AfterClass(alwaysRun = true) public void tearDownServer() throws Exception { server.close(); lifeCycleManager.stop(); executorService.shutdownNow(); Files.delete(sharedSecretFile); }
private void closeWorker() throws Exception { int nodeCount = getNodeCount(); DistributedQueryRunner queryRunner = (DistributedQueryRunner) getQueryRunner(); TestingPrestoServer worker = queryRunner.getServers().stream() .filter(server -> !server.isCoordinator()) .findAny() .orElseThrow(() -> new IllegalStateException("No worker nodes")); worker.close(); waitForNodes(nodeCount - 1); }
@Test public void testInsufficientWorkerNodesAfterDrop() throws Exception { try (DistributedQueryRunner queryRunner = TpchQueryRunnerBuilder.builder() .setCoordinatorProperties(ImmutableMap.<String, String>builder() .put("query-manager.required-workers", "4") .put("query-manager.required-workers-max-wait", "1ns") .build()) .setNodeCount(4) .build()) { queryRunner.execute("SELECT 1"); assertEquals(queryRunner.getCoordinator().refreshNodes().getActiveNodes().size(), 4); try { // Query should still be allowed to run if active workers drop down below the minimum required nodes queryRunner.getServers().get(0).close(); assertEquals(queryRunner.getCoordinator().refreshNodes().getActiveNodes().size(), 3); queryRunner.execute("SELECT 1"); } catch (RuntimeException e) { assertEquals(e.getMessage(), "Insufficient active worker nodes. Waited 1.00ns for at least 4 workers, but only 3 workers are active"); } } } }
@Test public void testSufficientInitialWorkerNodes() throws Exception { try (DistributedQueryRunner queryRunner = TpchQueryRunnerBuilder.builder() .setSingleCoordinatorProperty("query-manager.initialization-required-workers", "4") .setNodeCount(4) .build()) { queryRunner.execute("SELECT 1"); assertEquals(queryRunner.getCoordinator().refreshNodes().getActiveNodes().size(), 4); // Query should still be allowed to run if active workers drop down below the minimum required nodes queryRunner.getServers().get(0).close(); assertEquals(queryRunner.getCoordinator().refreshNodes().getActiveNodes().size(), 3); queryRunner.execute("SELECT 1"); } }
public void close() throws Exception { testingPrestoServer.close(); if (testingPostgresqlServer != null) { testingPostgresqlServer.close(); } } }
@AfterClass(alwaysRun = true) public void tearDownServer() throws Exception { server.close(); }
@Test public void testInsufficientWorkerNodesAfterDrop() throws Exception { try (DistributedQueryRunner queryRunner = TpchQueryRunnerBuilder.builder() .setCoordinatorProperties(ImmutableMap.<String, String>builder() .put("query-manager.required-workers", "4") .put("query-manager.required-workers-max-wait", "1ns") .build()) .setNodeCount(4) .build()) { queryRunner.execute("SELECT 1"); assertEquals(queryRunner.getCoordinator().refreshNodes().getActiveNodes().size(), 4); try { // Query should still be allowed to run if active workers drop down below the minimum required nodes queryRunner.getServers().get(0).close(); assertEquals(queryRunner.getCoordinator().refreshNodes().getActiveNodes().size(), 3); queryRunner.execute("SELECT 1"); } catch (RuntimeException e) { assertEquals(e.getMessage(), "Insufficient active worker nodes. Waited 1.00ns for at least 4 workers, but only 3 workers are active"); } } } }
@Test public void testSufficientInitialWorkerNodes() throws Exception { try (DistributedQueryRunner queryRunner = TpchQueryRunnerBuilder.builder() .setSingleCoordinatorProperty("query-manager.initialization-required-workers", "4") .setNodeCount(4) .build()) { queryRunner.execute("SELECT 1"); assertEquals(queryRunner.getCoordinator().refreshNodes().getActiveNodes().size(), 4); // Query should still be allowed to run if active workers drop down below the minimum required nodes queryRunner.getServers().get(0).close(); assertEquals(queryRunner.getCoordinator().refreshNodes().getActiveNodes().size(), 3); queryRunner.execute("SELECT 1"); } }