private static String baseClassName(ServerConfig serverConfig) { String builtInVersion = new ServerConfig().getPrestoVersion(); String configuredVersion = serverConfig.getPrestoVersion(); String version = configuredVersion; if (!Objects.equals(builtInVersion, configuredVersion)) { version = format("%s__%s", builtInVersion, configuredVersion); } return format("Presto_%s___", version); }
@Inject public GracefulShutdownHandler( TaskManager sqlTaskManager, ServerConfig serverConfig, ShutdownAction shutdownAction, LifeCycleManager lifeCycleManager) { this.sqlTaskManager = requireNonNull(sqlTaskManager, "sqlTaskManager is null"); this.shutdownAction = requireNonNull(shutdownAction, "shutdownAction is null"); this.lifeCycleManager = requireNonNull(lifeCycleManager, "lifeCycleManager is null"); this.isCoordinator = requireNonNull(serverConfig, "serverConfig is null").isCoordinator(); this.gracePeriod = serverConfig.getGracePeriod(); }
@Inject public ThrowableMapper(ServerConfig config) { includeExceptionInResponse = config.isIncludeExceptionInResponse(); }
@Test public void testDefaults() { assertRecordedDefaults(ConfigAssertions.recordDefaults(ServerConfig.class) .setCoordinator(true) .setPrestoVersion(null) .setDataSources(null) .setIncludeExceptionInResponse(true) .setGracePeriod(new Duration(2, MINUTES)) .setEnhancedErrorReporting(true)); }
if (serverConfig.isCoordinator()) { install(new CoordinatorModule()); sqlParserOptions.useEnhancedErrorHandler(serverConfig.isEnhancedErrorReporting()); NodeVersion nodeVersion = new NodeVersion(serverConfig.getPrestoVersion()); binder.bind(NodeVersion.class).toInstance(nodeVersion); .addProperty("coordinator", String.valueOf(serverConfig.isCoordinator())) .addProperty("connectorIds", nullToEmpty(serverConfig.getDataSources()));
@VisibleForTesting public TaskExecutor(int runnerThreads, int minDrivers, int guaranteedNumberOfDriversPerTask, int maximumNumberOfDriversPerTask, Ticker ticker) { this(runnerThreads, minDrivers, guaranteedNumberOfDriversPerTask, maximumNumberOfDriversPerTask, new EmbedVersion(new ServerConfig()), new MultilevelSplitQueue(2), ticker); }
@Inject public ServerInfoResource(NodeVersion nodeVersion, NodeInfo nodeInfo, ServerConfig serverConfig, StaticCatalogStore catalogStore, GracefulShutdownHandler shutdownHandler) { this.version = requireNonNull(nodeVersion, "nodeVersion is null"); this.environment = requireNonNull(nodeInfo, "nodeInfo is null").getEnvironment(); this.coordinator = requireNonNull(serverConfig, "serverConfig is null").isCoordinator(); this.catalogStore = requireNonNull(catalogStore, "catalogStore is null"); this.shutdownHandler = requireNonNull(shutdownHandler, "shutdownHandler is null"); }
@Test public void testDefaults() { assertRecordedDefaults(ConfigAssertions.recordDefaults(ServerConfig.class) .setCoordinator(true) .setPrestoVersion(null) .setDataSources(null) .setIncludeExceptionInResponse(true) .setGracePeriod(new Duration(2, MINUTES)) .setEnhancedErrorReporting(true)); }
if (serverConfig.isCoordinator()) { install(new CoordinatorModule()); sqlParserOptions.useEnhancedErrorHandler(serverConfig.isEnhancedErrorReporting()); NodeVersion nodeVersion = new NodeVersion(serverConfig.getPrestoVersion()); binder.bind(NodeVersion.class).toInstance(nodeVersion); .addProperty("coordinator", String.valueOf(serverConfig.isCoordinator())) .addProperty("connectorIds", nullToEmpty(serverConfig.getDataSources()));
@VisibleForTesting public TaskExecutor(int runnerThreads, int minDrivers, int guaranteedNumberOfDriversPerTask, int maximumNumberOfDriversPerTask, Ticker ticker) { this(runnerThreads, minDrivers, guaranteedNumberOfDriversPerTask, maximumNumberOfDriversPerTask, new EmbedVersion(new ServerConfig()), new MultilevelSplitQueue(2), ticker); }
@Inject public ServerInfoResource(NodeVersion nodeVersion, NodeInfo nodeInfo, ServerConfig serverConfig, StaticCatalogStore catalogStore, GracefulShutdownHandler shutdownHandler) { this.version = requireNonNull(nodeVersion, "nodeVersion is null"); this.environment = requireNonNull(nodeInfo, "nodeInfo is null").getEnvironment(); this.coordinator = requireNonNull(serverConfig, "serverConfig is null").isCoordinator(); this.catalogStore = requireNonNull(catalogStore, "catalogStore is null"); this.shutdownHandler = requireNonNull(shutdownHandler, "shutdownHandler is null"); }
@Test public void testExplicitPropertyMappings() { Map<String, String> properties = new ImmutableMap.Builder<String, String>() .put("coordinator", "false") .put("presto.version", "test") .put("datasources", "jmx") .put("http.include-exception-in-response", "false") .put("shutdown.grace-period", "5m") .put("sql.parser.enhanced-error-reporting", "false") .build(); ServerConfig expected = new ServerConfig() .setCoordinator(false) .setPrestoVersion("test") .setDataSources("jmx") .setIncludeExceptionInResponse(false) .setGracePeriod(new Duration(5, MINUTES)) .setEnhancedErrorReporting(false); assertFullMapping(properties, expected); } }
private static String baseClassName(ServerConfig serverConfig) { String builtInVersion = new ServerConfig().getPrestoVersion(); String configuredVersion = serverConfig.getPrestoVersion(); String version = configuredVersion; if (!Objects.equals(builtInVersion, configuredVersion)) { version = format("%s__%s", builtInVersion, configuredVersion); } return format("Presto_%s___", version); }
@VisibleForTesting public TaskExecutor( int runnerThreads, int minDrivers, int guaranteedNumberOfDriversPerTask, int maximumNumberOfDriversPerTask, EmbedVersion embedVersion, MultilevelSplitQueue splitQueue, Ticker ticker) { checkArgument(runnerThreads > 0, "runnerThreads must be at least 1"); checkArgument(guaranteedNumberOfDriversPerTask > 0, "guaranteedNumberOfDriversPerTask must be at least 1"); checkArgument(maximumNumberOfDriversPerTask > 0, "maximumNumberOfDriversPerTask must be at least 1"); checkArgument(guaranteedNumberOfDriversPerTask <= maximumNumberOfDriversPerTask, "guaranteedNumberOfDriversPerTask cannot be greater than maximumNumberOfDriversPerTask"); // we manage thread pool size directly, so create an unlimited pool this.executor = newCachedThreadPool(threadsNamed("task-processor-%s")); this.executorMBean = new ThreadPoolExecutorMBean((ThreadPoolExecutor) executor); this.runnerThreads = runnerThreads; this.embedVersion = requireNonNull(embedVersion, "embedVersion is null"); this.ticker = requireNonNull(ticker, "ticker is null"); this.minimumNumberOfDrivers = minDrivers; this.guaranteedNumberOfDriversPerTask = guaranteedNumberOfDriversPerTask; this.maximumNumberOfDriversPerTask = maximumNumberOfDriversPerTask; this.waitingSplits = requireNonNull(splitQueue, "splitQueue is null"); this.tasks = new LinkedList<>(); }
@Inject public StatusResource(NodeVersion nodeVersion, NodeInfo nodeInfo, ServerConfig serverConfig, LocalMemoryManager memoryManager) { this.nodeInfo = requireNonNull(nodeInfo, "nodeInfo is null"); this.version = requireNonNull(nodeVersion, "nodeVersion is null"); this.environment = requireNonNull(nodeInfo, "nodeInfo is null").getEnvironment(); this.coordinator = requireNonNull(serverConfig, "serverConfig is null").isCoordinator(); this.memoryManager = requireNonNull(memoryManager, "memoryManager is null"); this.memoryMXBean = ManagementFactory.getMemoryMXBean(); this.logicalCores = Runtime.getRuntime().availableProcessors(); if (ManagementFactory.getOperatingSystemMXBean() instanceof OperatingSystemMXBean) { // we want the com.sun.management sub-interface of java.lang.management.OperatingSystemMXBean this.operatingSystemMXBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean(); } }
@Inject public GracefulShutdownHandler( TaskManager sqlTaskManager, ServerConfig serverConfig, ShutdownAction shutdownAction, LifeCycleManager lifeCycleManager) { this.sqlTaskManager = requireNonNull(sqlTaskManager, "sqlTaskManager is null"); this.shutdownAction = requireNonNull(shutdownAction, "shutdownAction is null"); this.lifeCycleManager = requireNonNull(lifeCycleManager, "lifeCycleManager is null"); this.isCoordinator = requireNonNull(serverConfig, "serverConfig is null").isCoordinator(); this.gracePeriod = serverConfig.getGracePeriod(); }
@Inject public ThrowableMapper(ServerConfig config) { includeExceptionInResponse = config.isIncludeExceptionInResponse(); }
@Test public void testExplicitPropertyMappings() { Map<String, String> properties = new ImmutableMap.Builder<String, String>() .put("coordinator", "false") .put("presto.version", "test") .put("datasources", "jmx") .put("http.include-exception-in-response", "false") .put("shutdown.grace-period", "5m") .put("sql.parser.enhanced-error-reporting", "false") .build(); ServerConfig expected = new ServerConfig() .setCoordinator(false) .setPrestoVersion("test") .setDataSources("jmx") .setIncludeExceptionInResponse(false) .setGracePeriod(new Duration(5, MINUTES)) .setEnhancedErrorReporting(false); assertFullMapping(properties, expected); } }
@VisibleForTesting public TaskExecutor( int runnerThreads, int minDrivers, int guaranteedNumberOfDriversPerTask, int maximumNumberOfDriversPerTask, EmbedVersion embedVersion, MultilevelSplitQueue splitQueue, Ticker ticker) { checkArgument(runnerThreads > 0, "runnerThreads must be at least 1"); checkArgument(guaranteedNumberOfDriversPerTask > 0, "guaranteedNumberOfDriversPerTask must be at least 1"); checkArgument(maximumNumberOfDriversPerTask > 0, "maximumNumberOfDriversPerTask must be at least 1"); checkArgument(guaranteedNumberOfDriversPerTask <= maximumNumberOfDriversPerTask, "guaranteedNumberOfDriversPerTask cannot be greater than maximumNumberOfDriversPerTask"); // we manage thread pool size directly, so create an unlimited pool this.executor = newCachedThreadPool(threadsNamed("task-processor-%s")); this.executorMBean = new ThreadPoolExecutorMBean((ThreadPoolExecutor) executor); this.runnerThreads = runnerThreads; this.embedVersion = requireNonNull(embedVersion, "embedVersion is null"); this.ticker = requireNonNull(ticker, "ticker is null"); this.minimumNumberOfDrivers = minDrivers; this.guaranteedNumberOfDriversPerTask = guaranteedNumberOfDriversPerTask; this.maximumNumberOfDriversPerTask = maximumNumberOfDriversPerTask; this.waitingSplits = requireNonNull(splitQueue, "splitQueue is null"); this.tasks = new LinkedList<>(); }
@Inject public StatusResource(NodeVersion nodeVersion, NodeInfo nodeInfo, ServerConfig serverConfig, LocalMemoryManager memoryManager) { this.nodeInfo = requireNonNull(nodeInfo, "nodeInfo is null"); this.version = requireNonNull(nodeVersion, "nodeVersion is null"); this.environment = requireNonNull(nodeInfo, "nodeInfo is null").getEnvironment(); this.coordinator = requireNonNull(serverConfig, "serverConfig is null").isCoordinator(); this.memoryManager = requireNonNull(memoryManager, "memoryManager is null"); this.memoryMXBean = ManagementFactory.getMemoryMXBean(); this.logicalCores = Runtime.getRuntime().availableProcessors(); if (ManagementFactory.getOperatingSystemMXBean() instanceof OperatingSystemMXBean) { // we want the com.sun.management sub-interface of java.lang.management.OperatingSystemMXBean this.operatingSystemMXBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean(); } }