Search in sources :

Example 1 with SqlQueryExecutionFactory

use of com.facebook.presto.execution.SqlQueryExecution.SqlQueryExecutionFactory in project presto by prestodb.

the class SqlQueryManager method createQuery.

@Override
public QueryInfo createQuery(SessionSupplier sessionSupplier, String query) {
    requireNonNull(sessionSupplier, "sessionFactory is null");
    requireNonNull(query, "query is null");
    checkArgument(!query.isEmpty(), "query must not be empty string");
    QueryId queryId = queryIdGenerator.createNextQueryId();
    Session session = null;
    QueryExecution queryExecution;
    Statement statement;
    try {
        session = sessionSupplier.createSession(queryId, transactionManager, accessControl, sessionPropertyManager);
        if (query.length() > maxQueryLength) {
            int queryLength = query.length();
            query = query.substring(0, maxQueryLength);
            throw new PrestoException(QUERY_TEXT_TOO_LARGE, format("Query text length (%s) exceeds the maximum length (%s)", queryLength, maxQueryLength));
        }
        Statement wrappedStatement = sqlParser.createStatement(query);
        statement = unwrapExecuteStatement(wrappedStatement, sqlParser, session);
        List<Expression> parameters = wrappedStatement instanceof Execute ? ((Execute) wrappedStatement).getParameters() : emptyList();
        validateParameters(statement, parameters);
        QueryExecutionFactory<?> queryExecutionFactory = executionFactories.get(statement.getClass());
        if (queryExecutionFactory == null) {
            throw new PrestoException(NOT_SUPPORTED, "Unsupported statement type: " + statement.getClass().getSimpleName());
        }
        if (statement instanceof Explain && ((Explain) statement).isAnalyze()) {
            Statement innerStatement = ((Explain) statement).getStatement();
            if (!(executionFactories.get(innerStatement.getClass()) instanceof SqlQueryExecutionFactory)) {
                throw new PrestoException(NOT_SUPPORTED, "EXPLAIN ANALYZE only supported for statements that are queries");
            }
        }
        queryExecution = queryExecutionFactory.createQueryExecution(queryId, query, session, statement, parameters);
    } catch (ParsingException | PrestoException | SemanticException e) {
        // This is intentionally not a method, since after the state change listener is registered
        // it's not safe to do any of this, and we had bugs before where people reused this code in a method
        URI self = locationFactory.createQueryLocation(queryId);
        // if session creation failed, create a minimal session object
        if (session == null) {
            session = Session.builder(new SessionPropertyManager()).setQueryId(queryId).setIdentity(sessionSupplier.getIdentity()).build();
        }
        Optional<ResourceGroupId> resourceGroup = Optional.empty();
        if (e instanceof QueryQueueFullException) {
            resourceGroup = Optional.of(((QueryQueueFullException) e).getResourceGroup());
        }
        QueryExecution execution = new FailedQueryExecution(queryId, query, resourceGroup, session, self, transactionManager, queryExecutor, metadata, e);
        QueryInfo queryInfo = null;
        try {
            queries.put(queryId, execution);
            queryInfo = execution.getQueryInfo();
            queryMonitor.queryCreatedEvent(queryInfo);
            queryMonitor.queryCompletedEvent(queryInfo);
            stats.queryFinished(queryInfo);
        } finally {
            // execution MUST be added to the expiration queue or there will be a leak
            expirationQueue.add(execution);
        }
        return queryInfo;
    }
    QueryInfo queryInfo = queryExecution.getQueryInfo();
    queryMonitor.queryCreatedEvent(queryInfo);
    queryExecution.addFinalQueryInfoListener(finalQueryInfo -> {
        try {
            QueryInfo info = queryExecution.getQueryInfo();
            stats.queryFinished(info);
            queryMonitor.queryCompletedEvent(info);
        } finally {
            expirationQueue.add(queryExecution);
        }
    });
    addStatsListener(queryExecution);
    queries.put(queryId, queryExecution);
    // start the query in the background
    queueManager.submit(statement, queryExecution, queryExecutor);
    return queryInfo;
}
Also used : Execute(com.facebook.presto.sql.tree.Execute) Optional(java.util.Optional) Statement(com.facebook.presto.sql.tree.Statement) QueryId(com.facebook.presto.spi.QueryId) Explain(com.facebook.presto.sql.tree.Explain) QueryQueueFullException(com.facebook.presto.execution.resourceGroups.QueryQueueFullException) PrestoException(com.facebook.presto.spi.PrestoException) URI(java.net.URI) SqlQueryExecutionFactory(com.facebook.presto.execution.SqlQueryExecution.SqlQueryExecutionFactory) Expression(com.facebook.presto.sql.tree.Expression) ParsingException(com.facebook.presto.sql.parser.ParsingException) SessionPropertyManager(com.facebook.presto.metadata.SessionPropertyManager) Session(com.facebook.presto.Session) SemanticException(com.facebook.presto.sql.analyzer.SemanticException)

Example 2 with SqlQueryExecutionFactory

use of com.facebook.presto.execution.SqlQueryExecution.SqlQueryExecutionFactory in project presto by prestodb.

the class CoordinatorModule method setup.

@Override
protected void setup(Binder binder) {
    httpServerBinder(binder).bindResource("/ui", "webapp").withWelcomeFile("index.html");
    httpServerBinder(binder).bindResource("/tableau", "webapp/tableau");
    // discovery server
    install(installModuleIf(EmbeddedDiscoveryConfig.class, EmbeddedDiscoveryConfig::isEnabled, new EmbeddedDiscoveryModule()));
    // presto coordinator announcement
    discoveryBinder(binder).bindHttpAnnouncement("presto-coordinator");
    // statement resource
    jsonCodecBinder(binder).bindJsonCodec(QueryInfo.class);
    jsonCodecBinder(binder).bindJsonCodec(TaskInfo.class);
    jsonCodecBinder(binder).bindJsonCodec(QueryResults.class);
    jsonCodecBinder(binder).bindJsonCodec(SelectedRole.class);
    jaxrsBinder(binder).bind(QueuedStatementResource.class);
    jaxrsBinder(binder).bind(ExecutingStatementResource.class);
    binder.bind(StatementHttpExecutionMBean.class).in(Scopes.SINGLETON);
    newExporter(binder).export(StatementHttpExecutionMBean.class).withGeneratedName();
    // resource for serving static content
    jaxrsBinder(binder).bind(WebUiResource.class);
    // failure detector
    binder.install(new FailureDetectorModule());
    jaxrsBinder(binder).bind(NodeResource.class);
    jaxrsBinder(binder).bind(WorkerResource.class);
    httpClientBinder(binder).bindHttpClient("workerInfo", ForWorkerInfo.class);
    // query monitor
    jsonCodecBinder(binder).bindJsonCodec(OperatorInfo.class);
    configBinder(binder).bindConfig(QueryMonitorConfig.class);
    binder.bind(QueryMonitor.class).in(Scopes.SINGLETON);
    // query manager
    jaxrsBinder(binder).bind(QueryResource.class);
    jaxrsBinder(binder).bind(StageResource.class);
    jaxrsBinder(binder).bind(QueryStateInfoResource.class);
    jaxrsBinder(binder).bind(ResourceGroupStateInfoResource.class);
    binder.bind(QueryIdGenerator.class).in(Scopes.SINGLETON);
    binder.bind(QueryManager.class).to(SqlQueryManager.class).in(Scopes.SINGLETON);
    newExporter(binder).export(QueryManager.class).withGeneratedName();
    binder.bind(QueryPreparer.class).in(Scopes.SINGLETON);
    binder.bind(SessionSupplier.class).to(QuerySessionSupplier.class).in(Scopes.SINGLETON);
    binder.bind(InternalResourceGroupManager.class).in(Scopes.SINGLETON);
    newExporter(binder).export(InternalResourceGroupManager.class).withGeneratedName();
    binder.bind(ResourceGroupManager.class).to(InternalResourceGroupManager.class);
    binder.bind(LegacyResourceGroupConfigurationManager.class).in(Scopes.SINGLETON);
    binder.bind(RetryCircuitBreaker.class).in(Scopes.SINGLETON);
    newExporter(binder).export(RetryCircuitBreaker.class).withGeneratedName();
    binder.bind(LocalQueryProvider.class).in(Scopes.SINGLETON);
    jaxrsBinder(binder).bind(TaskInfoResource.class);
    // dispatcher
    binder.bind(DispatchManager.class).in(Scopes.SINGLETON);
    binder.bind(FailedDispatchQueryFactory.class).in(Scopes.SINGLETON);
    binder.bind(DispatchExecutor.class).in(Scopes.SINGLETON);
    // local dispatcher
    binder.bind(DispatchQueryFactory.class).to(LocalDispatchQueryFactory.class);
    // cluster memory manager
    binder.bind(ClusterMemoryManager.class).in(Scopes.SINGLETON);
    binder.bind(ClusterMemoryPoolManager.class).to(ClusterMemoryManager.class).in(Scopes.SINGLETON);
    httpClientBinder(binder).bindHttpClient("memoryManager", ForMemoryManager.class).withTracing().withConfigDefaults(config -> {
        config.setRequestTimeout(new Duration(10, SECONDS));
    });
    bindLowMemoryKiller(LowMemoryKillerPolicy.NONE, NoneLowMemoryKiller.class);
    bindLowMemoryKiller(LowMemoryKillerPolicy.TOTAL_RESERVATION, TotalReservationLowMemoryKiller.class);
    bindLowMemoryKiller(LowMemoryKillerPolicy.TOTAL_RESERVATION_ON_BLOCKED_NODES, TotalReservationOnBlockedNodesLowMemoryKiller.class);
    newExporter(binder).export(ClusterMemoryManager.class).withGeneratedName();
    // node monitor
    binder.bind(ClusterSizeMonitor.class).in(Scopes.SINGLETON);
    // statistics calculator
    binder.install(new StatsCalculatorModule());
    // cost calculator
    binder.bind(TaskCountEstimator.class).in(Scopes.SINGLETON);
    binder.bind(CostCalculator.class).to(CostCalculatorUsingExchanges.class).in(Scopes.SINGLETON);
    binder.bind(CostCalculator.class).annotatedWith(EstimatedExchanges.class).to(CostCalculatorWithEstimatedExchanges.class).in(Scopes.SINGLETON);
    binder.bind(CostComparator.class).in(Scopes.SINGLETON);
    // cluster statistics
    jaxrsBinder(binder).bind(ClusterStatsResource.class);
    // planner
    binder.bind(PlanFragmenter.class).in(Scopes.SINGLETON);
    binder.bind(PlanOptimizers.class).in(Scopes.SINGLETON);
    // query explainer
    binder.bind(QueryExplainer.class).in(Scopes.SINGLETON);
    // explain analyze
    binder.bind(ExplainAnalyzeContext.class).in(Scopes.SINGLETON);
    // execution scheduler
    binder.bind(RemoteTaskFactory.class).to(HttpRemoteTaskFactory.class).in(Scopes.SINGLETON);
    newExporter(binder).export(RemoteTaskFactory.class).withGeneratedName();
    binder.bind(RemoteTaskStats.class).in(Scopes.SINGLETON);
    newExporter(binder).export(RemoteTaskStats.class).withGeneratedName();
    httpClientBinder(binder).bindHttpClient("scheduler", ForScheduler.class).withTracing().withFilter(GenerateTraceTokenRequestFilter.class).withConfigDefaults(config -> {
        config.setRequestTimeout(new Duration(10, SECONDS));
        config.setMaxConnectionsPerServer(250);
    });
    binder.bind(ScheduledExecutorService.class).annotatedWith(ForScheduler.class).toInstance(newSingleThreadScheduledExecutor(threadsNamed("stage-scheduler")));
    // query execution
    binder.bind(ExecutorService.class).annotatedWith(ForQueryExecution.class).toInstance(newCachedThreadPool(threadsNamed("query-execution-%s")));
    binder.bind(QueryExecutionMBean.class).in(Scopes.SINGLETON);
    newExporter(binder).export(QueryExecutionMBean.class).as(generatedNameOf(QueryExecution.class));
    MapBinder<Class<? extends Statement>, QueryExecutionFactory<?>> executionBinder = newMapBinder(binder, new TypeLiteral<Class<? extends Statement>>() {
    }, new TypeLiteral<QueryExecution.QueryExecutionFactory<?>>() {
    });
    binder.bind(SplitSchedulerStats.class).in(Scopes.SINGLETON);
    newExporter(binder).export(SplitSchedulerStats.class).withGeneratedName();
    binder.bind(SqlQueryExecutionFactory.class).in(Scopes.SINGLETON);
    binder.bind(SectionExecutionFactory.class).in(Scopes.SINGLETON);
    Set<Map.Entry<Class<? extends Statement>, QueryType>> queryTypes = getAllQueryTypes().entrySet();
    // bind sql query statements to SqlQueryExecutionFactory
    queryTypes.stream().filter(entry -> entry.getValue() != QueryType.DATA_DEFINITION).forEach(entry -> executionBinder.addBinding(entry.getKey()).to(SqlQueryExecutionFactory.class).in(Scopes.SINGLETON));
    binder.bind(PartialResultQueryManager.class).in(Scopes.SINGLETON);
    // bind data definition statements to DataDefinitionExecutionFactory
    queryTypes.stream().filter(entry -> entry.getValue() == QueryType.DATA_DEFINITION && !isSessionTransactionControlStatement(entry.getKey())).forEach(entry -> executionBinder.addBinding(entry.getKey()).to(DDLDefinitionExecutionFactory.class).in(Scopes.SINGLETON));
    binder.bind(DDLDefinitionExecutionFactory.class).in(Scopes.SINGLETON);
    // bind session Control statements to SessionTransactionExecutionFactory
    queryTypes.stream().filter(entry -> (entry.getValue() == QueryType.DATA_DEFINITION && isSessionTransactionControlStatement(entry.getKey()))).forEach(entry -> executionBinder.addBinding(entry.getKey()).to(SessionDefinitionExecutionFactory.class).in(Scopes.SINGLETON));
    binder.bind(SessionDefinitionExecutionFactory.class).in(Scopes.SINGLETON);
    // helper class binding data definition tasks and statements
    PrestoDataDefBindingHelper.bindDDLDefinitionTasks(binder);
    PrestoDataDefBindingHelper.bindTransactionControlDefinitionTasks(binder);
    MapBinder<String, ExecutionPolicy> executionPolicyBinder = newMapBinder(binder, String.class, ExecutionPolicy.class);
    executionPolicyBinder.addBinding("all-at-once").to(AllAtOnceExecutionPolicy.class);
    executionPolicyBinder.addBinding("phased").to(PhasedExecutionPolicy.class);
    configBinder(binder).bindConfig(NodeResourceStatusConfig.class);
    binder.bind(NodeResourceStatusProvider.class).to(NodeResourceStatus.class).in(Scopes.SINGLETON);
    newOptionalBinder(binder, ResourceManagerProxy.class);
    install(installModuleIf(ServerConfig.class, ServerConfig::isResourceManagerEnabled, rmBinder -> {
        httpClientBinder(rmBinder).bindHttpClient("resourceManager", ForResourceManager.class);
        rmBinder.bind(ResourceManagerProxy.class).in(Scopes.SINGLETON);
    }));
    // cleanup
    binder.bind(ExecutorCleanup.class).in(Scopes.SINGLETON);
}
Also used : JaxrsBinder.jaxrsBinder(com.facebook.airlift.jaxrs.JaxrsBinder.jaxrsBinder) QueryExplainer(com.facebook.presto.sql.analyzer.QueryExplainer) QueryPerformanceFetcher(com.facebook.presto.execution.QueryPerformanceFetcher) QueryExecutionFactory(com.facebook.presto.execution.QueryExecution.QueryExecutionFactory) Executors.newSingleThreadScheduledExecutor(java.util.concurrent.Executors.newSingleThreadScheduledExecutor) Executors.newScheduledThreadPool(java.util.concurrent.Executors.newScheduledThreadPool) Map(java.util.Map) SqlQueryExecutionFactory(com.facebook.presto.execution.SqlQueryExecution.SqlQueryExecutionFactory) TaskCountEstimator(com.facebook.presto.cost.TaskCountEstimator) RemoteTaskFactory(com.facebook.presto.execution.RemoteTaskFactory) PhasedExecutionPolicy(com.facebook.presto.execution.scheduler.PhasedExecutionPolicy) Set(java.util.Set) QueryIdGenerator(com.facebook.presto.execution.QueryIdGenerator) ForMemoryManager(com.facebook.presto.memory.ForMemoryManager) RetryCircuitBreaker(com.facebook.presto.server.protocol.RetryCircuitBreaker) QueryExecution(com.facebook.presto.execution.QueryExecution) QueryInfo(com.facebook.presto.execution.QueryInfo) QueryPreparer(com.facebook.presto.execution.QueryPreparer) NodeResourceStatusConfig(com.facebook.presto.execution.NodeResourceStatusConfig) InternalResourceGroupManager(com.facebook.presto.execution.resourceGroups.InternalResourceGroupManager) TypeLiteral(com.google.inject.TypeLiteral) DispatchExecutor(com.facebook.presto.dispatcher.DispatchExecutor) EmbeddedDiscoveryModule(com.facebook.airlift.discovery.server.EmbeddedDiscoveryModule) Binder(com.google.inject.Binder) ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) LocalDispatchQueryFactory(com.facebook.presto.dispatcher.LocalDispatchQueryFactory) NoneLowMemoryKiller(com.facebook.presto.memory.NoneLowMemoryKiller) ExecutingStatementResource(com.facebook.presto.server.protocol.ExecutingStatementResource) RemoteTaskStats(com.facebook.presto.server.remotetask.RemoteTaskStats) TransactionManager(com.facebook.presto.transaction.TransactionManager) ResourceGroupManager(com.facebook.presto.execution.resourceGroups.ResourceGroupManager) DDLDefinitionExecutionFactory(com.facebook.presto.execution.DDLDefinitionExecution.DDLDefinitionExecutionFactory) LegacyResourceGroupConfigurationManager(com.facebook.presto.execution.resourceGroups.LegacyResourceGroupConfigurationManager) ClusterMemoryPoolManager(com.facebook.presto.spi.memory.ClusterMemoryPoolManager) Threads.threadsNamed(com.facebook.airlift.concurrent.Threads.threadsNamed) QueryExecutionMBean(com.facebook.presto.execution.QueryExecutionMBean) AllAtOnceExecutionPolicy(com.facebook.presto.execution.scheduler.AllAtOnceExecutionPolicy) QueryMonitor(com.facebook.presto.event.QueryMonitor) InMemoryTransactionManager(com.facebook.presto.transaction.InMemoryTransactionManager) ForQueryExecution(com.facebook.presto.execution.ForQueryExecution) ClusterSizeMonitor(com.facebook.presto.execution.ClusterSizeMonitor) TaskInfo(com.facebook.presto.execution.TaskInfo) CostCalculatorWithEstimatedExchanges(com.facebook.presto.cost.CostCalculatorWithEstimatedExchanges) ForScheduler(com.facebook.presto.operator.ForScheduler) EstimatedExchanges(com.facebook.presto.cost.CostCalculator.EstimatedExchanges) SectionExecutionFactory(com.facebook.presto.execution.scheduler.SectionExecutionFactory) TaskManagerConfig(com.facebook.presto.execution.TaskManagerConfig) Duration(io.airlift.units.Duration) PreDestroy(javax.annotation.PreDestroy) AbstractConfigurationAwareModule(com.facebook.airlift.configuration.AbstractConfigurationAwareModule) HttpClientBinder.httpClientBinder(com.facebook.airlift.http.client.HttpClientBinder.httpClientBinder) ExportBinder.newExporter(org.weakref.jmx.guice.ExportBinder.newExporter) OperatorInfo(com.facebook.presto.operator.OperatorInfo) MapBinder(com.google.inject.multibindings.MapBinder) ExecutionPolicy(com.facebook.presto.execution.scheduler.ExecutionPolicy) OptionalBinder.newOptionalBinder(com.google.inject.multibindings.OptionalBinder.newOptionalBinder) ForResourceManager(com.facebook.presto.resourcemanager.ForResourceManager) ResourceManagerProxy(com.facebook.presto.resourcemanager.ResourceManagerProxy) StatementUtils.isSessionTransactionControlStatement(com.facebook.presto.util.StatementUtils.isSessionTransactionControlStatement) SplitSchedulerStats(com.facebook.presto.execution.scheduler.SplitSchedulerStats) ConditionalModule.installModuleIf(com.facebook.airlift.configuration.ConditionalModule.installModuleIf) CostCalculatorUsingExchanges(com.facebook.presto.cost.CostCalculatorUsingExchanges) CostCalculator(com.facebook.presto.cost.CostCalculator) LowMemoryKiller(com.facebook.presto.memory.LowMemoryKiller) Threads.daemonThreadsNamed(com.facebook.airlift.concurrent.Threads.daemonThreadsNamed) List(java.util.List) StatementUtils.getAllQueryTypes(com.facebook.presto.util.StatementUtils.getAllQueryTypes) TransactionManagerConfig(com.facebook.presto.transaction.TransactionManagerConfig) PrestoDataDefBindingHelper(com.facebook.presto.util.PrestoDataDefBindingHelper) DispatchQueryFactory(com.facebook.presto.dispatcher.DispatchQueryFactory) HttpRemoteTaskFactory(com.facebook.presto.server.remotetask.HttpRemoteTaskFactory) TotalReservationLowMemoryKiller(com.facebook.presto.memory.TotalReservationLowMemoryKiller) QueryResults(com.facebook.presto.client.QueryResults) ForTransactionManager(com.facebook.presto.transaction.ForTransactionManager) QueryManager(com.facebook.presto.execution.QueryManager) Singleton(javax.inject.Singleton) JsonCodecBinder.jsonCodecBinder(com.facebook.airlift.json.JsonCodecBinder.jsonCodecBinder) StatsCalculatorModule(com.facebook.presto.cost.StatsCalculatorModule) PlanOptimizers(com.facebook.presto.sql.planner.PlanOptimizers) Inject(javax.inject.Inject) BoundedExecutor(com.facebook.airlift.concurrent.BoundedExecutor) ImmutableList(com.google.common.collect.ImmutableList) ExplainAnalyzeContext(com.facebook.presto.execution.ExplainAnalyzeContext) MemoryManagerConfig(com.facebook.presto.memory.MemoryManagerConfig) PlanFragmenter(com.facebook.presto.sql.planner.PlanFragmenter) ExecutorService(java.util.concurrent.ExecutorService) SelectedRole(com.facebook.presto.spi.security.SelectedRole) MapBinder.newMapBinder(com.google.inject.multibindings.MapBinder.newMapBinder) SessionDefinitionExecutionFactory(com.facebook.presto.execution.SessionDefinitionExecution.SessionDefinitionExecutionFactory) ObjectNames.generatedNameOf(org.weakref.jmx.ObjectNames.generatedNameOf) ClusterMemoryManager(com.facebook.presto.memory.ClusterMemoryManager) LocalQueryProvider(com.facebook.presto.server.protocol.LocalQueryProvider) DispatchManager(com.facebook.presto.dispatcher.DispatchManager) LowMemoryKillerPolicy(com.facebook.presto.memory.MemoryManagerConfig.LowMemoryKillerPolicy) Scopes(com.google.inject.Scopes) CatalogManager(com.facebook.presto.metadata.CatalogManager) TotalReservationOnBlockedNodesLowMemoryKiller(com.facebook.presto.memory.TotalReservationOnBlockedNodesLowMemoryKiller) FailureDetectorModule(com.facebook.presto.failureDetector.FailureDetectorModule) Provides(com.google.inject.Provides) QueryMonitorConfig(com.facebook.presto.event.QueryMonitorConfig) QueuedStatementResource(com.facebook.presto.server.protocol.QueuedStatementResource) QueryType(com.facebook.presto.spi.resourceGroups.QueryType) Executors.newCachedThreadPool(java.util.concurrent.Executors.newCachedThreadPool) HttpServerBinder.httpServerBinder(com.facebook.airlift.http.server.HttpServerBinder.httpServerBinder) CostComparator(com.facebook.presto.cost.CostComparator) FailedDispatchQueryFactory(com.facebook.presto.dispatcher.FailedDispatchQueryFactory) SqlQueryManager(com.facebook.presto.execution.SqlQueryManager) ConfigBinder.configBinder(com.facebook.airlift.configuration.ConfigBinder.configBinder) DiscoveryBinder.discoveryBinder(com.facebook.airlift.discovery.client.DiscoveryBinder.discoveryBinder) SECONDS(java.util.concurrent.TimeUnit.SECONDS) PartialResultQueryManager(com.facebook.presto.execution.PartialResultQueryManager) Statement(com.facebook.presto.sql.tree.Statement) QueryIdGenerator(com.facebook.presto.execution.QueryIdGenerator) DispatchManager(com.facebook.presto.dispatcher.DispatchManager) FailureDetectorModule(com.facebook.presto.failureDetector.FailureDetectorModule) RetryCircuitBreaker(com.facebook.presto.server.protocol.RetryCircuitBreaker) QueryPreparer(com.facebook.presto.execution.QueryPreparer) RemoteTaskStats(com.facebook.presto.server.remotetask.RemoteTaskStats) QueryMonitor(com.facebook.presto.event.QueryMonitor) HttpRemoteTaskFactory(com.facebook.presto.server.remotetask.HttpRemoteTaskFactory) QueryExecutionMBean(com.facebook.presto.execution.QueryExecutionMBean) LegacyResourceGroupConfigurationManager(com.facebook.presto.execution.resourceGroups.LegacyResourceGroupConfigurationManager) RemoteTaskFactory(com.facebook.presto.execution.RemoteTaskFactory) HttpRemoteTaskFactory(com.facebook.presto.server.remotetask.HttpRemoteTaskFactory) DDLDefinitionExecutionFactory(com.facebook.presto.execution.DDLDefinitionExecution.DDLDefinitionExecutionFactory) QueryExplainer(com.facebook.presto.sql.analyzer.QueryExplainer) InternalResourceGroupManager(com.facebook.presto.execution.resourceGroups.InternalResourceGroupManager) ResourceGroupManager(com.facebook.presto.execution.resourceGroups.ResourceGroupManager) Duration(io.airlift.units.Duration) PartialResultQueryManager(com.facebook.presto.execution.PartialResultQueryManager) LocalQueryProvider(com.facebook.presto.server.protocol.LocalQueryProvider) SplitSchedulerStats(com.facebook.presto.execution.scheduler.SplitSchedulerStats) QueryExecutionFactory(com.facebook.presto.execution.QueryExecution.QueryExecutionFactory) SqlQueryExecutionFactory(com.facebook.presto.execution.SqlQueryExecution.SqlQueryExecutionFactory) PlanOptimizers(com.facebook.presto.sql.planner.PlanOptimizers) CostCalculatorWithEstimatedExchanges(com.facebook.presto.cost.CostCalculatorWithEstimatedExchanges) ForQueryExecution(com.facebook.presto.execution.ForQueryExecution) SessionDefinitionExecutionFactory(com.facebook.presto.execution.SessionDefinitionExecution.SessionDefinitionExecutionFactory) PlanFragmenter(com.facebook.presto.sql.planner.PlanFragmenter) QueryExecution(com.facebook.presto.execution.QueryExecution) ForQueryExecution(com.facebook.presto.execution.ForQueryExecution) FailedDispatchQueryFactory(com.facebook.presto.dispatcher.FailedDispatchQueryFactory) SqlQueryExecutionFactory(com.facebook.presto.execution.SqlQueryExecution.SqlQueryExecutionFactory) InternalResourceGroupManager(com.facebook.presto.execution.resourceGroups.InternalResourceGroupManager) CostCalculatorUsingExchanges(com.facebook.presto.cost.CostCalculatorUsingExchanges) ForScheduler(com.facebook.presto.operator.ForScheduler) ExplainAnalyzeContext(com.facebook.presto.execution.ExplainAnalyzeContext) ClusterSizeMonitor(com.facebook.presto.execution.ClusterSizeMonitor) StatsCalculatorModule(com.facebook.presto.cost.StatsCalculatorModule) TaskCountEstimator(com.facebook.presto.cost.TaskCountEstimator) CostComparator(com.facebook.presto.cost.CostComparator) ForResourceManager(com.facebook.presto.resourcemanager.ForResourceManager) StatementUtils.isSessionTransactionControlStatement(com.facebook.presto.util.StatementUtils.isSessionTransactionControlStatement) Statement(com.facebook.presto.sql.tree.Statement) EmbeddedDiscoveryModule(com.facebook.airlift.discovery.server.EmbeddedDiscoveryModule) CostCalculator(com.facebook.presto.cost.CostCalculator) LocalDispatchQueryFactory(com.facebook.presto.dispatcher.LocalDispatchQueryFactory) DispatchQueryFactory(com.facebook.presto.dispatcher.DispatchQueryFactory) FailedDispatchQueryFactory(com.facebook.presto.dispatcher.FailedDispatchQueryFactory) PhasedExecutionPolicy(com.facebook.presto.execution.scheduler.PhasedExecutionPolicy) AllAtOnceExecutionPolicy(com.facebook.presto.execution.scheduler.AllAtOnceExecutionPolicy) ExecutionPolicy(com.facebook.presto.execution.scheduler.ExecutionPolicy) ClusterMemoryManager(com.facebook.presto.memory.ClusterMemoryManager) QueryManager(com.facebook.presto.execution.QueryManager) SqlQueryManager(com.facebook.presto.execution.SqlQueryManager) PartialResultQueryManager(com.facebook.presto.execution.PartialResultQueryManager) DispatchExecutor(com.facebook.presto.dispatcher.DispatchExecutor) SectionExecutionFactory(com.facebook.presto.execution.scheduler.SectionExecutionFactory) SqlQueryManager(com.facebook.presto.execution.SqlQueryManager)

Aggregations

SqlQueryExecutionFactory (com.facebook.presto.execution.SqlQueryExecution.SqlQueryExecutionFactory)2 Statement (com.facebook.presto.sql.tree.Statement)2 BoundedExecutor (com.facebook.airlift.concurrent.BoundedExecutor)1 Threads.daemonThreadsNamed (com.facebook.airlift.concurrent.Threads.daemonThreadsNamed)1 Threads.threadsNamed (com.facebook.airlift.concurrent.Threads.threadsNamed)1 AbstractConfigurationAwareModule (com.facebook.airlift.configuration.AbstractConfigurationAwareModule)1 ConditionalModule.installModuleIf (com.facebook.airlift.configuration.ConditionalModule.installModuleIf)1 ConfigBinder.configBinder (com.facebook.airlift.configuration.ConfigBinder.configBinder)1 DiscoveryBinder.discoveryBinder (com.facebook.airlift.discovery.client.DiscoveryBinder.discoveryBinder)1 EmbeddedDiscoveryModule (com.facebook.airlift.discovery.server.EmbeddedDiscoveryModule)1 HttpClientBinder.httpClientBinder (com.facebook.airlift.http.client.HttpClientBinder.httpClientBinder)1 HttpServerBinder.httpServerBinder (com.facebook.airlift.http.server.HttpServerBinder.httpServerBinder)1 JaxrsBinder.jaxrsBinder (com.facebook.airlift.jaxrs.JaxrsBinder.jaxrsBinder)1 JsonCodecBinder.jsonCodecBinder (com.facebook.airlift.json.JsonCodecBinder.jsonCodecBinder)1 Session (com.facebook.presto.Session)1 QueryResults (com.facebook.presto.client.QueryResults)1 CostCalculator (com.facebook.presto.cost.CostCalculator)1 EstimatedExchanges (com.facebook.presto.cost.CostCalculator.EstimatedExchanges)1 CostCalculatorUsingExchanges (com.facebook.presto.cost.CostCalculatorUsingExchanges)1 CostCalculatorWithEstimatedExchanges (com.facebook.presto.cost.CostCalculatorWithEstimatedExchanges)1