diff options
Diffstat (limited to 'exec/java-exec/src/test/java/org/apache/drill/exec/resourcemgr/TestRMConfigLoad.java')
-rw-r--r-- | exec/java-exec/src/test/java/org/apache/drill/exec/resourcemgr/TestRMConfigLoad.java | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/resourcemgr/TestRMConfigLoad.java b/exec/java-exec/src/test/java/org/apache/drill/exec/resourcemgr/TestRMConfigLoad.java new file mode 100644 index 000000000..16f7f64f0 --- /dev/null +++ b/exec/java-exec/src/test/java/org/apache/drill/exec/resourcemgr/TestRMConfigLoad.java @@ -0,0 +1,117 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.drill.exec.resourcemgr; + +import org.apache.drill.categories.ResourceManagerTest; +import org.apache.drill.exec.ExecConstants; +import org.apache.drill.exec.resourcemgr.config.QueryQueueConfig; +import org.apache.drill.exec.resourcemgr.config.RMCommonDefaults; +import org.apache.drill.exec.resourcemgr.config.ResourcePoolTree; +import org.apache.drill.exec.resourcemgr.config.selectors.AclSelector; +import org.apache.drill.exec.work.foreman.rm.DefaultResourceManager; +import org.apache.drill.exec.work.foreman.rm.DistributedResourceManager; +import org.apache.drill.exec.work.foreman.rm.ResourceManager; +import org.apache.drill.test.BaseDirTestWatcher; +import org.apache.drill.test.ClusterFixture; +import org.apache.drill.test.ClusterFixtureBuilder; +import org.apache.drill.test.DrillTest; +import org.junit.Ignore; +import org.junit.Rule; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +@Ignore("These tests will be ignored until integration with new DistributedResourceManager is done") +@Category(ResourceManagerTest.class) +public final class TestRMConfigLoad extends DrillTest { + + @Rule + public final BaseDirTestWatcher dirTestWatcher = new BaseDirTestWatcher(); + + @Test + public void testDefaultRMConfig() throws Exception { + ClusterFixtureBuilder fixtureBuilder = ClusterFixture.builder(dirTestWatcher) + .configProperty(ExecConstants.RM_ENABLED, true) + .configProperty(ExecConstants.DRILL_PORT_HUNT, true) + .withLocalZk(); + + try (ClusterFixture cluster = fixtureBuilder.build()) { + ResourceManager resourceManager = cluster.drillbit().getContext().getResourceManager(); + assertTrue(resourceManager instanceof DistributedResourceManager); + + ResourcePoolTree poolTree = ((DistributedResourceManager) resourceManager).getRmPoolTree(); + assertTrue("In drill-rm-default root pool is not leaf pool", poolTree.getRootPool().isLeafPool()); + assertTrue("selector in drill-rm-default is not acl selector", + poolTree.getRootPool().getSelector() instanceof AclSelector); + assertEquals("max_query_memory_per_node in drill-rm-default is not configured with expected default value", + 8 * 1024L, poolTree.getRootPool().getMaxQueryMemoryPerNode()); + assertEquals("queue_selection_policy in drill-rm-default is not configured with expected default value", + RMCommonDefaults.ROOT_POOL_DEFAULT_QUEUE_SELECTION_POLICY, + poolTree.getSelectionPolicyInUse().getSelectionPolicy()); + assertEquals("memory share of root pool in drill-rm-default is not configured with expected default value", + RMCommonDefaults.ROOT_POOL_DEFAULT_MEMORY_PERCENT, poolTree.getResourceShare(), 0); + + final QueryQueueConfig defaultQueue = poolTree.getRootPool().getQueryQueue(); + assertEquals("max_admissible in drill-rm-default is not configured with expected default value", + RMCommonDefaults.MAX_ADMISSIBLE_QUERY_COUNT, defaultQueue.getMaxAdmissibleQueries()); + assertEquals("max_waiting in drill-rm-default is not configured with expected default value", + RMCommonDefaults.MAX_WAITING_QUERY_COUNT, defaultQueue.getMaxWaitingQueries()); + assertEquals("max_wait_timeout in drill-rm-default is not configured with expected default value", + RMCommonDefaults.MAX_WAIT_TIMEOUT_IN_MS, defaultQueue.getWaitTimeoutInMs()); + assertEquals("wait_for_preferred_nodes in drill-rm-default is not configured with expected default value", + RMCommonDefaults.WAIT_FOR_PREFERRED_NODES, defaultQueue.waitForPreferredNodes()); + } + } + + @Test + public void testDefaultRMWithLocalCoordinatorAndRMEnabled() throws Exception { + ClusterFixtureBuilder fixtureBuilder = ClusterFixture.builder(dirTestWatcher) + .configProperty(ExecConstants.RM_ENABLED, true); + + try (ClusterFixture cluster = fixtureBuilder.build()) { + ResourceManager resourceManager = cluster.drillbit().getContext().getResourceManager(); + assertTrue(resourceManager instanceof DefaultResourceManager); + } + } + + @Test + public void testDefaultRMWithLocalCoordinatorAndRMDisabled() throws Exception { + ClusterFixtureBuilder fixtureBuilder = ClusterFixture.builder(dirTestWatcher) + .configProperty(ExecConstants.RM_ENABLED, false); + + try (ClusterFixture cluster = fixtureBuilder.build()) { + ResourceManager resourceManager = cluster.drillbit().getContext().getResourceManager(); + assertTrue(resourceManager instanceof DefaultResourceManager); + } + } + + @Test + public void testDefaultRMOnlyRMDisabled() throws Exception { + ClusterFixtureBuilder fixtureBuilder = ClusterFixture.builder(dirTestWatcher) + .configProperty(ExecConstants.RM_ENABLED, false) + .configProperty(ExecConstants.DRILL_PORT_HUNT, true) + .withLocalZk(); + + try (ClusterFixture cluster = fixtureBuilder.build()) { + ResourceManager resourceManager = cluster.drillbit().getContext().getResourceManager(); + assertTrue(resourceManager instanceof DefaultResourceManager); + } + } +} |