private void waitForAsyncRenames() { for (CompletableFuture<?> fileRenameFuture : fileRenameFutures) { MoreFutures.getFutureValue(fileRenameFuture, PrestoException.class); } }
private boolean hasPreviousSpillCompletedSuccessfully() { if (spillInProgress.isDone()) { // check for exception from previous spill for early failure getFutureValue(spillInProgress); return true; } else { return false; } }
public IndexSnapshot getFinishedIndexSnapshot() { checkState(indexSnapshotFuture.isDone(), "Update request is not finished"); return MoreFutures.getFutureValue(indexSnapshotFuture); } }
@Override public void abort() { getFutureValue(finish()); }
@Override public void addInput(Page page) { int multiplier = getFutureValue(multiplierFuture); for (int i = 0; i < multiplier; i++) { pages.add(page); } }
@GuardedBy("exclusiveLock") private void checkOperatorFinishedRevoking(Operator operator) { ListenableFuture<?> future = revokingOperators.get(operator); if (future.isDone()) { getFutureValue(future); // propagate exception if there was some revokingOperators.remove(operator); operator.finishMemoryRevoke(); operator.getOperatorContext().resetMemoryRevokingRequested(); } }
@Override public synchronized Iterator<Page> getSpilledPages(int partition) { readingStarted = true; getFutureValue(flush(partition)); spilledPartitions.remove(partition); return getSpiller(partition).getSpilledPages(); }
private static List<Split> getNextBatch(SplitSource splitSource) { return getFutureValue(splitSource.getNextBatch(NOT_PARTITIONED, Lifespan.taskWide(), 1000)).getSplits(); }
protected static List<ConnectorSplit> getAllSplits(ConnectorSplitSource splitSource) { ImmutableList.Builder<ConnectorSplit> splits = ImmutableList.builder(); while (!splitSource.isFinished()) { splits.addAll(getFutureValue(splitSource.getNextBatch(NOT_PARTITIONED, 1000)).getSplits()); } return splits.build(); }
private static List<ConnectorSplit> getAllSplits(ConnectorSplitSource splitSource) { ImmutableList.Builder<ConnectorSplit> splits = ImmutableList.builder(); while (!splitSource.isFinished()) { splits.addAll(getFutureValue(splitSource.getNextBatch(NOT_PARTITIONED, 1000)).getSplits()); } return splits.build(); }
private static List<ConnectorSplit> getSplits(ConnectorSplitSource source, OptionalInt bucketNumber, int maxSize) { if (bucketNumber.isPresent()) { return getFutureValue(source.getNextBatch(new HivePartitionHandle(bucketNumber.getAsInt()), maxSize)).getSplits(); } else { return getFutureValue(source.getNextBatch(NOT_PARTITIONED, maxSize)).getSplits(); } }
protected static int getSplitCount(ConnectorSplitSource splitSource) { int splitCount = 0; while (!splitSource.isFinished()) { splitCount += getFutureValue(splitSource.getNextBatch(NOT_PARTITIONED, 1000)).getSplits().size(); } return splitCount; }
private void executeSetPathTask(PathSpecification pathSpecification, QueryStateMachine stateMachine) { getFutureValue(new SetPathTask().execute( new SetPath(pathSpecification), transactionManager, metadata, accessControl, stateMachine, emptyList())); } }
@Test public void testCreateTableNotExistsTrue() { CreateTable statement = new CreateTable(QualifiedName.of("test_table"), ImmutableList.of(new ColumnDefinition(identifier("a"), "BIGINT", emptyList(), Optional.empty())), true, ImmutableList.of(), Optional.empty()); getFutureValue(new CreateTableTask().internalExecute(statement, metadata, new AllowAllAccessControl(), testSession, emptyList())); assertEquals(metadata.getCreateTableCallCount(), 1); }
private static void revokeMemory(HashBuilderOperator operator) { getFutureValue(operator.startMemoryRevoke()); operator.finishMemoryRevoke(); checkState(operator.getState() == HashBuilderOperator.State.SPILLING_INPUT || operator.getState() == HashBuilderOperator.State.INPUT_SPILLED); }
@Test public void testUnknownTransactionRollback() { TransactionManager transactionManager = createTestTransactionManager(); Session session = sessionBuilder() .setTransactionId(TransactionId.create()) // Use a random transaction ID that is unknown to the system .build(); QueryStateMachine stateMachine = createQueryStateMachine("ROLLBACK", session, transactionManager); getFutureValue(new RollbackTask().execute(new Rollback(), transactionManager, metadata, new AllowAllAccessControl(), stateMachine, emptyList())); assertTrue(stateMachine.getQueryInfo(Optional.empty()).isClearTransactionId()); // Still issue clear signal assertFalse(stateMachine.getQueryInfo(Optional.empty()).getStartedTransactionId().isPresent()); assertTrue(transactionManager.getAllTransactionInfos().isEmpty()); }
private static void handleMemoryRevoking(Operator operator) { if (operator.getOperatorContext().getReservedRevocableBytes() > 0) { getFutureValue(operator.startMemoryRevoke()); operator.finishMemoryRevoke(); } }
public JdbcSplit getSplit(String schemaName, String tableName) { JdbcTableHandle jdbcTableHandle = jdbcClient.getTableHandle(new SchemaTableName(schemaName, tableName)); JdbcTableLayoutHandle jdbcLayoutHandle = new JdbcTableLayoutHandle(jdbcTableHandle, TupleDomain.all()); ConnectorSplitSource splits = jdbcClient.getSplits(jdbcLayoutHandle); return (JdbcSplit) getOnlyElement(getFutureValue(splits.getNextBatch(NOT_PARTITIONED, 1000)).getSplits()); }
private RecordCursor getCursor(JdbcTableHandle jdbcTableHandle, List<JdbcColumnHandle> columns, TupleDomain<ColumnHandle> domain) { JdbcTableLayoutHandle layoutHandle = new JdbcTableLayoutHandle(jdbcTableHandle, domain); ConnectorSplitSource splits = jdbcClient.getSplits(layoutHandle); JdbcSplit split = (JdbcSplit) getOnlyElement(getFutureValue(splits.getNextBatch(NOT_PARTITIONED, 1000)).getSplits()); ConnectorTransactionHandle transaction = new JdbcTransactionHandle(); JdbcRecordSetProvider recordSetProvider = new JdbcRecordSetProvider(jdbcClient); RecordSet recordSet = recordSetProvider.getRecordSet(transaction, SESSION, split, columns); return recordSet.cursor(); } }
public static QueryId createQuery(DistributedQueryRunner queryRunner, Session session, String sql) { QueryManager queryManager = queryRunner.getCoordinator().getQueryManager(); getFutureValue(queryManager.createQuery(session.getQueryId(), new TestingSessionContext(session), sql)); return session.getQueryId(); }