From 9b06b6aa58c68992fc289be8c98c371333478a11 Mon Sep 17 00:00:00 2001 From: fjy Date: Tue, 15 Apr 2014 14:23:54 -0700 Subject: [PATCH] misc fixes for router --- .../io/druid/indexing/common/task/AbstractTask.java | 4 ++-- .../java/io/druid/server/router/QueryHostFinder.java | 10 +++++++--- .../druid/server/router/TieredBrokerHostSelector.java | 11 +++++++++-- .../server/router/TieredBrokerHostSelectorTest.java | 7 +++---- .../io/druid/cli/RouterJettyServerInitializer.java | 1 + 5 files changed, 22 insertions(+), 11 deletions(-) diff --git a/indexing-service/src/main/java/io/druid/indexing/common/task/AbstractTask.java b/indexing-service/src/main/java/io/druid/indexing/common/task/AbstractTask.java index ffbc75d33c..f03c552b65 100644 --- a/indexing-service/src/main/java/io/druid/indexing/common/task/AbstractTask.java +++ b/indexing-service/src/main/java/io/druid/indexing/common/task/AbstractTask.java @@ -61,8 +61,8 @@ public abstract class AbstractTask implements Task protected AbstractTask(String id, String groupId, TaskResource taskResource, String dataSource) { - this.id = Preconditions.checkNotNull(id.toLowerCase(), "id"); - this.groupId = Preconditions.checkNotNull(groupId.toLowerCase(), "groupId"); + this.id = Preconditions.checkNotNull(id, "id"); + this.groupId = Preconditions.checkNotNull(groupId, "groupId"); this.taskResource = Preconditions.checkNotNull(taskResource, "resource"); this.dataSource = Preconditions.checkNotNull(dataSource.toLowerCase(), "dataSource"); } diff --git a/server/src/main/java/io/druid/server/router/QueryHostFinder.java b/server/src/main/java/io/druid/server/router/QueryHostFinder.java index 3355f77b22..ea32b8fbd5 100644 --- a/server/src/main/java/io/druid/server/router/QueryHostFinder.java +++ b/server/src/main/java/io/druid/server/router/QueryHostFinder.java @@ -50,10 +50,14 @@ public class QueryHostFinder { final Pair selected = hostSelector.select(query); - final String serviceName = selected.lhs; - final ServerDiscoverySelector selector = selected.rhs; + if (selected == null) { + log.error("Danger, Will Robinson! Unable to find any brokers!"); + } + + final String serviceName = selected == null ? hostSelector.getDefaultServiceName() : selected.lhs; + final ServerDiscoverySelector selector = selected == null ? null : selected.rhs; - Server server = selector.pick(); + Server server = selector == null ? null : selector.pick(); if (server == null) { log.error( "WTF?! No server found for serviceName[%s]. Using backup", diff --git a/server/src/main/java/io/druid/server/router/TieredBrokerHostSelector.java b/server/src/main/java/io/druid/server/router/TieredBrokerHostSelector.java index 9e5db5084e..9778c3b1d6 100644 --- a/server/src/main/java/io/druid/server/router/TieredBrokerHostSelector.java +++ b/server/src/main/java/io/druid/server/router/TieredBrokerHostSelector.java @@ -122,7 +122,7 @@ public class TieredBrokerHostSelector implements HostSelector { synchronized (lock) { if (!ruleManager.isStarted() || !started) { - return null; + return getDefaultLookup(); } } @@ -157,7 +157,7 @@ public class TieredBrokerHostSelector implements HostSelector } if (baseRule == null) { - return null; + return getDefaultLookup(); } // in the baseRule, find the broker of highest priority @@ -192,4 +192,11 @@ public class TieredBrokerHostSelector implements HostSelector return new Pair<>(brokerServiceName, retVal); } + + private Pair getDefaultLookup() + { + final String brokerServiceName = tierConfig.getDefaultBrokerServiceName(); + final ServerDiscoverySelector retVal = selectorMap.get(brokerServiceName); + return new Pair<>(brokerServiceName, retVal); + } } diff --git a/server/src/test/java/io/druid/server/router/TieredBrokerHostSelectorTest.java b/server/src/test/java/io/druid/server/router/TieredBrokerHostSelectorTest.java index b2a22af38e..6d058d200f 100644 --- a/server/src/test/java/io/druid/server/router/TieredBrokerHostSelectorTest.java +++ b/server/src/test/java/io/druid/server/router/TieredBrokerHostSelectorTest.java @@ -142,19 +142,18 @@ public class TieredBrokerHostSelectorTest @Test public void testSelectMatchesNothing() throws Exception { - Pair retVal = brokerSelector.select( + String brokerName = (String) brokerSelector.select( Druids.newTimeseriesQueryBuilder() .dataSource("test") .granularity("all") .aggregators(Arrays.asList(new CountAggregatorFactory("rows"))) .intervals(Arrays.asList(new Interval("2010-08-31/2010-09-01"))) .build() - ); + ).lhs; - Assert.assertEquals(null, retVal); + Assert.assertEquals("hotBroker", brokerName); } - @Test public void testSelectMultiInterval() throws Exception { diff --git a/services/src/main/java/io/druid/cli/RouterJettyServerInitializer.java b/services/src/main/java/io/druid/cli/RouterJettyServerInitializer.java index 62d93caacf..54c3a7f69e 100644 --- a/services/src/main/java/io/druid/cli/RouterJettyServerInitializer.java +++ b/services/src/main/java/io/druid/cli/RouterJettyServerInitializer.java @@ -86,6 +86,7 @@ public class RouterJettyServerInitializer implements JettyServerInitializer ), "/druid/v2/*" ); queries.addFilter(GzipFilter.class, "/druid/v2/*", null); + queries.addFilter(GuiceFilter.class, "/status/*", null); final ServletContextHandler root = new ServletContextHandler(ServletContextHandler.SESSIONS); root.addServlet(new ServletHolder(new DefaultServlet()), "/*"); -- GitLab