Search in sources :

Example 1 with FailureDetectorModule

use of io.prestosql.failuredetector.FailureDetectorModule in project hetu-core by openlookeng.

the class CoordinatorModule method setup.

@Override
protected void setup(Binder binder) {
    ServerConfig serverConfig = buildConfigObject(ServerConfig.class);
    httpServerBinder(binder).bindResource("/ui", "webapp").withWelcomeFile("queryeditor.html");
    httpServerBinder(binder).bindResource("/tableau", "webapp/tableau");
    // discovery server
    install(installModuleIf(EmbeddedDiscoveryConfig.class, EmbeddedDiscoveryConfig::isEnabled, Modules.override(new EmbeddedDiscoveryModule()).with(new HetuEmbeddedDiscoveryModule())));
    // 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(io.prestosql.dispatcher.QueuedStatementResource.class);
    jaxrsBinder(binder).bind(io.prestosql.datacenter.DataCenterStatementResource.class);
    jaxrsBinder(binder).bind(io.prestosql.server.protocol.ExecutingStatementResource.class);
    binder.bind(StatementHttpExecutionMBean.class).in(Scopes.SINGLETON);
    newExporter(binder).export(StatementHttpExecutionMBean.class).withGeneratedName();
    // hetu-ui module
    binder.install(new QueryEditorUIModule());
    // catalog resource
    install(installModuleIf(DynamicCatalogConfig.class, DynamicCatalogConfig::isDynamicCatalogEnabled, new CatalogModule()));
    // 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(StatsAndCosts.class);
    configBinder(binder).bindConfig(QueryMonitorConfig.class);
    binder.bind(QueryMonitor.class).in(Scopes.SINGLETON);
    // state store
    binder.bind(StateStoreLauncher.class).to(EmbeddedStateStoreLauncher.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);
    // 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.setIdleTimeout(serverConfig.getHttpClientIdleTimeout());
        config.setRequestTimeout(serverConfig.getHttpClientRequestTimeout());
    });
    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);
    // dynamic filtering service
    binder.bind(DynamicFilterService.class).in(Scopes.SINGLETON);
    // query explainer
    binder.bind(QueryExplainer.class).in(Scopes.SINGLETON);
    // explain analyze
    binder.bind(ExplainAnalyzeContext.class).in(Scopes.SINGLETON);
    // split cache map
    binder.bind(SplitCacheStateManager.class).in(Scopes.SINGLETON);
    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.setIdleTimeout(serverConfig.getHttpClientIdleTimeout());
        config.setRequestTimeout(serverConfig.getHttpClientRequestTimeout());
        config.setMaxConnectionsPerServer(250);
    });
    binder.bind(ScheduledExecutorService.class).annotatedWith(ForScheduler.class).toInstance(newSingleThreadScheduledExecutor(threadsNamed("stage-scheduler")));
    install(installModuleIf(AutoVacuumConfig.class, config -> config.isAutoVacuumEnabled(), binder1 -> binder1.bind(AutoVacuumScanner.class).in(Scopes.SINGLETON)));
    // 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(generator -> generator.generatedNameOf(QueryExecution.class));
    MapBinder<Class<? extends Statement>, QueryExecutionFactory<?>> executionBinder = newMapBinder(binder, new TypeLiteral<Class<? extends Statement>>() {
    }, new TypeLiteral<QueryExecutionFactory<?>>() {
    });
    binder.bind(SplitSchedulerStats.class).in(Scopes.SINGLETON);
    newExporter(binder).export(SplitSchedulerStats.class).withGeneratedName();
    binder.bind(SqlQueryExecutionFactory.class).in(Scopes.SINGLETON);
    getAllQueryTypes().entrySet().stream().filter(entry -> entry.getValue() != QueryType.DATA_DEFINITION).forEach(entry -> executionBinder.addBinding(entry.getKey()).to(SqlQueryExecutionFactory.class).in(Scopes.SINGLETON));
    binder.bind(DataDefinitionExecutionFactory.class).in(Scopes.SINGLETON);
    bindDataDefinitionTask(binder, executionBinder, CreateSchema.class, CreateSchemaTask.class);
    bindDataDefinitionTask(binder, executionBinder, DropSchema.class, DropSchemaTask.class);
    bindDataDefinitionTask(binder, executionBinder, RenameSchema.class, RenameSchemaTask.class);
    bindDataDefinitionTask(binder, executionBinder, AddColumn.class, AddColumnTask.class);
    bindDataDefinitionTask(binder, executionBinder, CreateTable.class, CreateTableTask.class);
    bindDataDefinitionTask(binder, executionBinder, RenameTable.class, RenameTableTask.class);
    bindDataDefinitionTask(binder, executionBinder, RenameIndex.class, RenameIndexTask.class);
    bindDataDefinitionTask(binder, executionBinder, Comment.class, CommentTask.class);
    bindDataDefinitionTask(binder, executionBinder, RenameColumn.class, RenameColumnTask.class);
    bindDataDefinitionTask(binder, executionBinder, DropColumn.class, DropColumnTask.class);
    bindDataDefinitionTask(binder, executionBinder, DropTable.class, DropTableTask.class);
    bindDataDefinitionTask(binder, executionBinder, CreateView.class, CreateViewTask.class);
    bindDataDefinitionTask(binder, executionBinder, DropView.class, DropViewTask.class);
    bindDataDefinitionTask(binder, executionBinder, Use.class, UseTask.class);
    bindDataDefinitionTask(binder, executionBinder, SetSession.class, SetSessionTask.class);
    bindDataDefinitionTask(binder, executionBinder, ResetSession.class, ResetSessionTask.class);
    bindDataDefinitionTask(binder, executionBinder, StartTransaction.class, StartTransactionTask.class);
    bindDataDefinitionTask(binder, executionBinder, Commit.class, CommitTask.class);
    bindDataDefinitionTask(binder, executionBinder, Rollback.class, RollbackTask.class);
    bindDataDefinitionTask(binder, executionBinder, Call.class, CallTask.class);
    bindDataDefinitionTask(binder, executionBinder, CreateRole.class, CreateRoleTask.class);
    bindDataDefinitionTask(binder, executionBinder, DropRole.class, DropRoleTask.class);
    bindDataDefinitionTask(binder, executionBinder, GrantRoles.class, GrantRolesTask.class);
    bindDataDefinitionTask(binder, executionBinder, RevokeRoles.class, RevokeRolesTask.class);
    bindDataDefinitionTask(binder, executionBinder, SetRole.class, SetRoleTask.class);
    bindDataDefinitionTask(binder, executionBinder, Grant.class, GrantTask.class);
    bindDataDefinitionTask(binder, executionBinder, Revoke.class, RevokeTask.class);
    bindDataDefinitionTask(binder, executionBinder, Prepare.class, PrepareTask.class);
    bindDataDefinitionTask(binder, executionBinder, Deallocate.class, DeallocateTask.class);
    bindDataDefinitionTask(binder, executionBinder, SetPath.class, SetPathTask.class);
    bindDataDefinitionTask(binder, executionBinder, DropCache.class, DropCacheTask.class);
    bindDataDefinitionTask(binder, executionBinder, DropIndex.class, DropIndexTask.class);
    bindDataDefinitionTask(binder, executionBinder, DropCube.class, DropCubeTask.class);
    bindDataDefinitionTask(binder, executionBinder, CreateCube.class, CreateCubeTask.class);
    MapBinder<String, ExecutionPolicy> executionPolicyBinder = newMapBinder(binder, String.class, ExecutionPolicy.class);
    executionPolicyBinder.addBinding("all-at-once").to(AllAtOnceExecutionPolicy.class);
    executionPolicyBinder.addBinding("phased").to(PhasedExecutionPolicy.class);
    // cleanup
    binder.bind(ExecutorCleanup.class).in(Scopes.SINGLETON);
}
Also used : DispatchQueryFactory(io.prestosql.dispatcher.DispatchQueryFactory) CreateSchema(io.prestosql.sql.tree.CreateSchema) CostCalculator(io.prestosql.cost.CostCalculator) CostCalculatorWithEstimatedExchanges(io.prestosql.cost.CostCalculatorWithEstimatedExchanges) RollbackTask(io.prestosql.execution.RollbackTask) ForTransactionManager(io.prestosql.transaction.ForTransactionManager) ClusterSizeMonitor(io.prestosql.execution.ClusterSizeMonitor) RenameIndexTask(io.prestosql.execution.RenameIndexTask) Prepare(io.prestosql.sql.tree.Prepare) QueryManager(io.prestosql.execution.QueryManager) SqlQueryManager(io.prestosql.execution.SqlQueryManager) Statement(io.prestosql.sql.tree.Statement) Executors.newSingleThreadScheduledExecutor(java.util.concurrent.Executors.newSingleThreadScheduledExecutor) CreateTable(io.prestosql.sql.tree.CreateTable) BoundedExecutor(io.airlift.concurrent.BoundedExecutor) Executors.newScheduledThreadPool(java.util.concurrent.Executors.newScheduledThreadPool) QueryMonitor(io.prestosql.event.QueryMonitor) FailureDetectorModule(io.prestosql.failuredetector.FailureDetectorModule) RenameColumn(io.prestosql.sql.tree.RenameColumn) GrantRoles(io.prestosql.sql.tree.GrantRoles) TransactionManagerConfig(io.prestosql.transaction.TransactionManagerConfig) JsonCodecBinder.jsonCodecBinder(io.airlift.json.JsonCodecBinder.jsonCodecBinder) CreateSchemaTask(io.prestosql.execution.CreateSchemaTask) SetSessionTask(io.prestosql.execution.SetSessionTask) SplitCacheStateManager(io.prestosql.execution.SplitCacheStateManager) RevokeRolesTask(io.prestosql.execution.RevokeRolesTask) ExplainAnalyzeContext(io.prestosql.execution.ExplainAnalyzeContext) CostCalculatorUsingExchanges(io.prestosql.cost.CostCalculatorUsingExchanges) LowMemoryKiller(io.prestosql.memory.LowMemoryKiller) StatementUtils.getAllQueryTypes(io.prestosql.util.StatementUtils.getAllQueryTypes) CommentTask(io.prestosql.execution.CommentTask) DropIndexTask(io.prestosql.execution.DropIndexTask) Threads.threadsNamed(io.airlift.concurrent.Threads.threadsNamed) SetSession(io.prestosql.sql.tree.SetSession) HttpClientBinder.httpClientBinder(io.airlift.http.client.HttpClientBinder.httpClientBinder) DropView(io.prestosql.sql.tree.DropView) SplitSchedulerStats(io.prestosql.execution.scheduler.SplitSchedulerStats) TotalReservationOnBlockedNodesLowMemoryKiller(io.prestosql.memory.TotalReservationOnBlockedNodesLowMemoryKiller) CreateView(io.prestosql.sql.tree.CreateView) DiscoveryBinder.discoveryBinder(io.airlift.discovery.client.DiscoveryBinder.discoveryBinder) Call(io.prestosql.sql.tree.Call) DropRoleTask(io.prestosql.execution.DropRoleTask) DropColumn(io.prestosql.sql.tree.DropColumn) ConfigBinder.configBinder(io.airlift.configuration.ConfigBinder.configBinder) TypeLiteral(com.google.inject.TypeLiteral) QueryPreparer(io.prestosql.execution.QueryPreparer) TaskManagerConfig(io.prestosql.execution.TaskManagerConfig) Grant(io.prestosql.sql.tree.Grant) LegacyResourceGroupConfigurationManager(io.prestosql.execution.resourcegroups.LegacyResourceGroupConfigurationManager) DropRole(io.prestosql.sql.tree.DropRole) QueryMonitorConfig(io.prestosql.event.QueryMonitorConfig) StartTransactionTask(io.prestosql.execution.StartTransactionTask) DispatchExecutor(io.prestosql.dispatcher.DispatchExecutor) DropTable(io.prestosql.sql.tree.DropTable) SetPath(io.prestosql.sql.tree.SetPath) TransactionManager(io.prestosql.transaction.TransactionManager) QueryExecutionFactory(io.prestosql.execution.QueryExecution.QueryExecutionFactory) DropTableTask(io.prestosql.execution.DropTableTask) DataDefinitionTask(io.prestosql.execution.DataDefinitionTask) DataDefinitionExecutionFactory(io.prestosql.execution.DataDefinitionExecution.DataDefinitionExecutionFactory) StateStoreLauncher(io.prestosql.statestore.StateStoreLauncher) CommitTask(io.prestosql.execution.CommitTask) ResetSession(io.prestosql.sql.tree.ResetSession) EmbeddedDiscoveryModule(io.airlift.discovery.server.EmbeddedDiscoveryModule) InMemoryTransactionManager(io.prestosql.transaction.InMemoryTransactionManager) Deallocate(io.prestosql.sql.tree.Deallocate) LowMemoryKillerPolicy(io.prestosql.memory.MemoryManagerConfig.LowMemoryKillerPolicy) Binder(com.google.inject.Binder) ResetSessionTask(io.prestosql.execution.ResetSessionTask) EstimatedExchanges(io.prestosql.cost.CostCalculator.EstimatedExchanges) EmbeddedStateStoreLauncher(io.prestosql.statestore.EmbeddedStateStoreLauncher) ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) DropCubeTask(io.prestosql.execution.DropCubeTask) Comment(io.prestosql.sql.tree.Comment) RenameTable(io.prestosql.sql.tree.RenameTable) TaskCountEstimator(io.prestosql.cost.TaskCountEstimator) QueryResults(io.prestosql.client.QueryResults) CreateViewTask(io.prestosql.execution.CreateViewTask) NoneLowMemoryKiller(io.prestosql.memory.NoneLowMemoryKiller) CostComparator(io.prestosql.cost.CostComparator) DeallocateTask(io.prestosql.execution.DeallocateTask) QueryPerformanceFetcher(io.prestosql.execution.QueryPerformanceFetcher) CatalogManager(io.prestosql.metadata.CatalogManager) AutoVacuumConfig(io.prestosql.vacuum.AutoVacuumConfig) DropSchemaTask(io.prestosql.execution.DropSchemaTask) AddColumn(io.prestosql.sql.tree.AddColumn) CreateCubeTask(io.prestosql.execution.CreateCubeTask) QueryExplainer(io.prestosql.sql.analyzer.QueryExplainer) ResourceGroupManager(io.prestosql.execution.resourcegroups.ResourceGroupManager) QueryType(io.prestosql.spi.resourcegroups.QueryType) QueryInfo(io.prestosql.execution.QueryInfo) HetuEmbeddedDiscoveryModule(io.prestosql.discovery.server.HetuEmbeddedDiscoveryModule) CreateCube(io.prestosql.sql.tree.CreateCube) DynamicCatalogConfig(io.prestosql.catalog.DynamicCatalogConfig) RenameSchemaTask(io.prestosql.execution.RenameSchemaTask) RenameSchema(io.prestosql.sql.tree.RenameSchema) DropSchema(io.prestosql.sql.tree.DropSchema) PreDestroy(javax.annotation.PreDestroy) SetPathTask(io.prestosql.execution.SetPathTask) SqlQueryExecutionFactory(io.prestosql.execution.SqlQueryExecution.SqlQueryExecutionFactory) DropCacheTask(io.prestosql.execution.DropCacheTask) StartTransaction(io.prestosql.sql.tree.StartTransaction) ExportBinder.newExporter(org.weakref.jmx.guice.ExportBinder.newExporter) GrantRolesTask(io.prestosql.execution.GrantRolesTask) SetRole(io.prestosql.sql.tree.SetRole) ClusterMemoryPoolManager(io.prestosql.spi.memory.ClusterMemoryPoolManager) MapBinder(com.google.inject.multibindings.MapBinder) CreateRoleTask(io.prestosql.execution.CreateRoleTask) AllAtOnceExecutionPolicy(io.prestosql.execution.scheduler.AllAtOnceExecutionPolicy) Commit(io.prestosql.sql.tree.Commit) QueryExecutionMBean(io.prestosql.execution.QueryExecutionMBean) AutoVacuumScanner(io.prestosql.vacuum.AutoVacuumScanner) QueryExecution(io.prestosql.execution.QueryExecution) ClusterMemoryManager(io.prestosql.memory.ClusterMemoryManager) ConditionalModule.installModuleIf(io.airlift.configuration.ConditionalModule.installModuleIf) CallTask(io.prestosql.execution.CallTask) TotalReservationLowMemoryKiller(io.prestosql.memory.TotalReservationLowMemoryKiller) SelectedRole(io.prestosql.spi.security.SelectedRole) RemoteTaskFactory(io.prestosql.execution.RemoteTaskFactory) TaskInfo(io.prestosql.execution.TaskInfo) DropCache(io.prestosql.sql.tree.DropCache) RevokeTask(io.prestosql.execution.RevokeTask) Rollback(io.prestosql.sql.tree.Rollback) ForMemoryManager(io.prestosql.memory.ForMemoryManager) List(java.util.List) ForQueryExecution(io.prestosql.execution.ForQueryExecution) JaxrsBinder.jaxrsBinder(io.airlift.jaxrs.JaxrsBinder.jaxrsBinder) QueryEditorUIModule(io.prestosql.queryeditorui.QueryEditorUIModule) DropCube(io.prestosql.sql.tree.DropCube) FailedDispatchQueryFactory(io.prestosql.dispatcher.FailedDispatchQueryFactory) RenameColumnTask(io.prestosql.execution.RenameColumnTask) QueryIdGenerator(io.prestosql.execution.QueryIdGenerator) UseTask(io.prestosql.execution.UseTask) HttpServerBinder.httpServerBinder(io.airlift.http.server.HttpServerBinder.httpServerBinder) StatsCalculatorModule(io.prestosql.cost.StatsCalculatorModule) MemoryManagerConfig(io.prestosql.memory.MemoryManagerConfig) CreateRole(io.prestosql.sql.tree.CreateRole) Modules(com.google.inject.util.Modules) StatsAndCosts(io.prestosql.cost.StatsAndCosts) CreateTableTask(io.prestosql.execution.CreateTableTask) SetRoleTask(io.prestosql.execution.SetRoleTask) Singleton(javax.inject.Singleton) PlanFragmenter(io.prestosql.sql.planner.PlanFragmenter) AddColumnTask(io.prestosql.execution.AddColumnTask) ExecutionPolicy(io.prestosql.execution.scheduler.ExecutionPolicy) Inject(javax.inject.Inject) DropViewTask(io.prestosql.execution.DropViewTask) PrepareTask(io.prestosql.execution.PrepareTask) ForScheduler(io.prestosql.operator.ForScheduler) PlanOptimizers(io.prestosql.sql.planner.PlanOptimizers) AbstractConfigurationAwareModule(io.airlift.configuration.AbstractConfigurationAwareModule) ImmutableList(com.google.common.collect.ImmutableList) Verify.verify(com.google.common.base.Verify.verify) Threads.daemonThreadsNamed(io.airlift.concurrent.Threads.daemonThreadsNamed) PhasedExecutionPolicy(io.prestosql.execution.scheduler.PhasedExecutionPolicy) LocalDispatchQueryFactory(io.prestosql.dispatcher.LocalDispatchQueryFactory) RevokeRoles(io.prestosql.sql.tree.RevokeRoles) InternalResourceGroupManager(io.prestosql.execution.resourcegroups.InternalResourceGroupManager) DispatchManager(io.prestosql.dispatcher.DispatchManager) ExecutorService(java.util.concurrent.ExecutorService) MapBinder.newMapBinder(com.google.inject.multibindings.MapBinder.newMapBinder) CatalogModule(io.prestosql.catalog.CatalogModule) Scopes(com.google.inject.Scopes) DynamicFilterService(io.prestosql.dynamicfilter.DynamicFilterService) RenameIndex(io.prestosql.sql.tree.RenameIndex) Provides(com.google.inject.Provides) RemoteTaskStats(io.prestosql.server.remotetask.RemoteTaskStats) DropIndex(io.prestosql.sql.tree.DropIndex) Revoke(io.prestosql.sql.tree.Revoke) Executors.newCachedThreadPool(java.util.concurrent.Executors.newCachedThreadPool) DropColumnTask(io.prestosql.execution.DropColumnTask) Use(io.prestosql.sql.tree.Use) StateStoreProvider(io.prestosql.statestore.StateStoreProvider) RenameTableTask(io.prestosql.execution.RenameTableTask) GrantTask(io.prestosql.execution.GrantTask) QueryIdGenerator(io.prestosql.execution.QueryIdGenerator) AutoVacuumScanner(io.prestosql.vacuum.AutoVacuumScanner) DispatchManager(io.prestosql.dispatcher.DispatchManager) FailureDetectorModule(io.prestosql.failuredetector.FailureDetectorModule) QueryPreparer(io.prestosql.execution.QueryPreparer) RemoteTaskStats(io.prestosql.server.remotetask.RemoteTaskStats) QueryMonitor(io.prestosql.event.QueryMonitor) DynamicCatalogConfig(io.prestosql.catalog.DynamicCatalogConfig) DynamicFilterService(io.prestosql.dynamicfilter.DynamicFilterService) QueryExecutionMBean(io.prestosql.execution.QueryExecutionMBean) LegacyResourceGroupConfigurationManager(io.prestosql.execution.resourcegroups.LegacyResourceGroupConfigurationManager) EmbeddedStateStoreLauncher(io.prestosql.statestore.EmbeddedStateStoreLauncher) RemoteTaskFactory(io.prestosql.execution.RemoteTaskFactory) QueryExplainer(io.prestosql.sql.analyzer.QueryExplainer) CatalogModule(io.prestosql.catalog.CatalogModule) ResourceGroupManager(io.prestosql.execution.resourcegroups.ResourceGroupManager) InternalResourceGroupManager(io.prestosql.execution.resourcegroups.InternalResourceGroupManager) SplitSchedulerStats(io.prestosql.execution.scheduler.SplitSchedulerStats) QueryExecutionFactory(io.prestosql.execution.QueryExecution.QueryExecutionFactory) SqlQueryExecutionFactory(io.prestosql.execution.SqlQueryExecution.SqlQueryExecutionFactory) PlanOptimizers(io.prestosql.sql.planner.PlanOptimizers) CostCalculatorWithEstimatedExchanges(io.prestosql.cost.CostCalculatorWithEstimatedExchanges) ForQueryExecution(io.prestosql.execution.ForQueryExecution) PlanFragmenter(io.prestosql.sql.planner.PlanFragmenter) QueryExecution(io.prestosql.execution.QueryExecution) ForQueryExecution(io.prestosql.execution.ForQueryExecution) FailedDispatchQueryFactory(io.prestosql.dispatcher.FailedDispatchQueryFactory) SqlQueryExecutionFactory(io.prestosql.execution.SqlQueryExecution.SqlQueryExecutionFactory) InternalResourceGroupManager(io.prestosql.execution.resourcegroups.InternalResourceGroupManager) CostCalculatorUsingExchanges(io.prestosql.cost.CostCalculatorUsingExchanges) ForScheduler(io.prestosql.operator.ForScheduler) ExplainAnalyzeContext(io.prestosql.execution.ExplainAnalyzeContext) ClusterSizeMonitor(io.prestosql.execution.ClusterSizeMonitor) StatsCalculatorModule(io.prestosql.cost.StatsCalculatorModule) TaskCountEstimator(io.prestosql.cost.TaskCountEstimator) CostComparator(io.prestosql.cost.CostComparator) Statement(io.prestosql.sql.tree.Statement) EmbeddedDiscoveryModule(io.airlift.discovery.server.EmbeddedDiscoveryModule) HetuEmbeddedDiscoveryModule(io.prestosql.discovery.server.HetuEmbeddedDiscoveryModule) HetuEmbeddedDiscoveryModule(io.prestosql.discovery.server.HetuEmbeddedDiscoveryModule) CostCalculator(io.prestosql.cost.CostCalculator) QueryEditorUIModule(io.prestosql.queryeditorui.QueryEditorUIModule) DispatchQueryFactory(io.prestosql.dispatcher.DispatchQueryFactory) FailedDispatchQueryFactory(io.prestosql.dispatcher.FailedDispatchQueryFactory) LocalDispatchQueryFactory(io.prestosql.dispatcher.LocalDispatchQueryFactory) SplitCacheStateManager(io.prestosql.execution.SplitCacheStateManager) AllAtOnceExecutionPolicy(io.prestosql.execution.scheduler.AllAtOnceExecutionPolicy) ExecutionPolicy(io.prestosql.execution.scheduler.ExecutionPolicy) PhasedExecutionPolicy(io.prestosql.execution.scheduler.PhasedExecutionPolicy) ClusterMemoryManager(io.prestosql.memory.ClusterMemoryManager) QueryManager(io.prestosql.execution.QueryManager) SqlQueryManager(io.prestosql.execution.SqlQueryManager) DispatchExecutor(io.prestosql.dispatcher.DispatchExecutor) SqlQueryManager(io.prestosql.execution.SqlQueryManager) DataDefinitionExecutionFactory(io.prestosql.execution.DataDefinitionExecution.DataDefinitionExecutionFactory) AutoVacuumConfig(io.prestosql.vacuum.AutoVacuumConfig)

Example 2 with FailureDetectorModule

use of io.prestosql.failuredetector.FailureDetectorModule in project hetu-core by openlookeng.

the class TestMergeOperator method setUp.

@BeforeMethod
public void setUp() {
    Bootstrap app = new Bootstrap(new TestingNodeModule(), new TestingJmxModule(), new TestingDiscoveryModule(), new TestingHttpServerModule(), new TraceTokenModule(), new JsonModule(), new JaxrsModule(), new FailureDetectorModule(), new Module() {

        @Override
        public void configure(Binder binder) {
            configBinder(binder).bindConfig(InternalCommunicationConfig.class);
            configBinder(binder).bindConfig(QueryManagerConfig.class);
            discoveryBinder(binder).bindSelector("presto");
            discoveryBinder(binder).bindHttpAnnouncement("presto");
            // Jersey with jetty 9 requires at least one resource
            // todo add a dummy resource to airlift jaxrs in this case
            jaxrsBinder(binder).bind(TestHeartbeatFailureDetector.FooResource.class);
        }
    });
    Injector injector = app.strictConfig().doNotInitializeLogging().quiet().initialize();
    ServiceSelector selector = injector.getInstance(Key.get(ServiceSelector.class, serviceType("presto")));
    assertEquals(selector.selectAllServices().size(), 1);
    HeartbeatFailureDetector detector = injector.getInstance(HeartbeatFailureDetector.class);
    executor = newSingleThreadScheduledExecutor(daemonThreadsNamed("test-merge-operator-%s"));
    taskBuffers = CacheBuilder.newBuilder().build(CacheLoader.from(TestingTaskBuffer::new));
    httpClient = new TestingHttpClient(new TestingExchangeHttpClientHandler(taskBuffers), executor);
    exchangeClientFactory = new ExchangeClientFactory(new ExchangeClientConfig(), httpClient, executor, detector);
    orderingCompiler = new OrderingCompiler();
}
Also used : TestingHttpServerModule(io.airlift.http.server.testing.TestingHttpServerModule) TestingNodeModule(io.airlift.node.testing.TestingNodeModule) ServiceSelector(io.airlift.discovery.client.ServiceSelector) JaxrsModule(io.airlift.jaxrs.JaxrsModule) JsonModule(io.airlift.json.JsonModule) FailureDetectorModule(io.prestosql.failuredetector.FailureDetectorModule) TraceTokenModule(io.airlift.tracetoken.TraceTokenModule) TestHeartbeatFailureDetector(io.prestosql.failuredetector.TestHeartbeatFailureDetector) HeartbeatFailureDetector(io.prestosql.failuredetector.HeartbeatFailureDetector) TestingJmxModule(io.airlift.jmx.testing.TestingJmxModule) DiscoveryBinder.discoveryBinder(io.airlift.discovery.client.DiscoveryBinder.discoveryBinder) JaxrsBinder.jaxrsBinder(io.airlift.jaxrs.JaxrsBinder.jaxrsBinder) ConfigBinder.configBinder(io.airlift.configuration.ConfigBinder.configBinder) Binder(com.google.inject.Binder) TestingDiscoveryModule(io.airlift.discovery.client.testing.TestingDiscoveryModule) InternalCommunicationConfig(io.prestosql.server.InternalCommunicationConfig) Injector(com.google.inject.Injector) TestingHttpClient(io.airlift.http.client.testing.TestingHttpClient) OrderingCompiler(io.prestosql.sql.gen.OrderingCompiler) Bootstrap(io.airlift.bootstrap.Bootstrap) QueryManagerConfig(io.prestosql.execution.QueryManagerConfig) Module(com.google.inject.Module) TestingJmxModule(io.airlift.jmx.testing.TestingJmxModule) FailureDetectorModule(io.prestosql.failuredetector.FailureDetectorModule) TestingHttpServerModule(io.airlift.http.server.testing.TestingHttpServerModule) TraceTokenModule(io.airlift.tracetoken.TraceTokenModule) TestingDiscoveryModule(io.airlift.discovery.client.testing.TestingDiscoveryModule) JaxrsModule(io.airlift.jaxrs.JaxrsModule) JsonModule(io.airlift.json.JsonModule) TestingNodeModule(io.airlift.node.testing.TestingNodeModule) BeforeMethod(org.testng.annotations.BeforeMethod)

Aggregations

Binder (com.google.inject.Binder)2 ConfigBinder.configBinder (io.airlift.configuration.ConfigBinder.configBinder)2 DiscoveryBinder.discoveryBinder (io.airlift.discovery.client.DiscoveryBinder.discoveryBinder)2 JaxrsBinder.jaxrsBinder (io.airlift.jaxrs.JaxrsBinder.jaxrsBinder)2 Verify.verify (com.google.common.base.Verify.verify)1 ImmutableList (com.google.common.collect.ImmutableList)1 Injector (com.google.inject.Injector)1 Module (com.google.inject.Module)1 Provides (com.google.inject.Provides)1 Scopes (com.google.inject.Scopes)1 TypeLiteral (com.google.inject.TypeLiteral)1 MapBinder (com.google.inject.multibindings.MapBinder)1 MapBinder.newMapBinder (com.google.inject.multibindings.MapBinder.newMapBinder)1 Modules (com.google.inject.util.Modules)1 Bootstrap (io.airlift.bootstrap.Bootstrap)1 BoundedExecutor (io.airlift.concurrent.BoundedExecutor)1 Threads.daemonThreadsNamed (io.airlift.concurrent.Threads.daemonThreadsNamed)1 Threads.threadsNamed (io.airlift.concurrent.Threads.threadsNamed)1 AbstractConfigurationAwareModule (io.airlift.configuration.AbstractConfigurationAwareModule)1 ConditionalModule.installModuleIf (io.airlift.configuration.ConditionalModule.installModuleIf)1