aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2024-02-14 09:29:37 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2024-02-14 09:29:37 +0100
commitf64b704e92deb10f889d38c9f5454e8f1b9e4369 (patch)
tree99c9d336a4d3bfae5daf4eb202049b20bad70a5b
parenta2f05742236b0873bb6991b0134d6991d0b5d4b2 (diff)
Minor refactoring while reading federation code
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/FederationSearcher.java46
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChains.java2
-rw-r--r--container-core/src/main/java/com/yahoo/container/handler/threadpool/ContainerThreadpoolImpl.java1
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java21
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/sourceref/SearchChainResolver.java4
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/sourceref/SourceRefResolver.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/sourceref/SourcesTarget.java1
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedSearchChainException.java1
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedSourceRefException.java1
9 files changed, 18 insertions, 61 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/FederationSearcher.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/FederationSearcher.java
index a6d063592c1..28e11ae0deb 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/FederationSearcher.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/FederationSearcher.java
@@ -26,25 +26,14 @@ import java.util.Optional;
public class FederationSearcher extends Searcher<FederationSearcherModel> implements FederationConfig.Producer {
private final Optional<Component> targetSelector;
+ private final Map<ComponentId, Target> resolvedTargets = new LinkedHashMap<>();
/**
* Generates config for a single search chain contained in a target.
*/
- private static final class SearchChainConfig {
-
- private final SearchChain searchChain;
- final ComponentId providerId;
- final FederationOptions targetOptions;
- final List<String> documentTypes;
-
- SearchChainConfig(SearchChain searchChain, ComponentId providerId,
- FederationOptions targetOptions, List<String> documentTypes) {
- this.searchChain = searchChain;
- this.providerId = providerId;
- this.targetOptions = targetOptions;
- this.documentTypes = documentTypes;
- }
-
+ private record SearchChainConfig(SearchChain searchChain, ComponentId providerId,
+ FederationOptions targetOptions, List<String> documentTypes)
+ {
FederationConfig.Target.SearchChain.Builder getSearchChainConfig() {
FederationConfig.Target.SearchChain.Builder sB = new FederationConfig.Target.SearchChain.Builder();
FederationOptions resolvedOptions = targetOptions.inherit(searchChain.federationOptions());
@@ -77,9 +66,7 @@ public class FederationSearcher extends Searcher<FederationSearcherModel> implem
FederationConfig.Target.Builder getTargetConfig() {
FederationConfig.Target.Builder tb = new FederationConfig.Target.Builder();
- tb.
- id(id.stringValue()).
- useByDefault(targetOptions.getUseByDefault());
+ tb.id(id.stringValue()).useByDefault(targetOptions.getUseByDefault());
getSearchChainsConfig(tb);
return tb;
}
@@ -137,10 +124,9 @@ public class FederationSearcher extends Searcher<FederationSearcherModel> implem
}
}
- private static class TargetResolver {
-
- final ComponentRegistry<SearchChain> searchChainRegistry;
- final SourceGroupRegistry sourceGroupRegistry;
+ private record TargetResolver(ComponentRegistry<SearchChain> searchChainRegistry,
+ SourceGroupRegistry sourceGroupRegistry)
+ {
/** Returns true if searchChain.id newer than sourceGroup.id */
private boolean newerVersion(SearchChain searchChain, SourceGroup sourceGroup) {
@@ -153,12 +139,7 @@ public class FederationSearcher extends Searcher<FederationSearcherModel> implem
return a.compareTo(b) > 0;
}
- TargetResolver(ComponentRegistry<SearchChain> searchChainRegistry, SourceGroupRegistry sourceGroupRegistry) {
- this.searchChainRegistry = searchChainRegistry;
- this.sourceGroupRegistry = sourceGroupRegistry;
- }
-
- Target resolve(FederationSearcherModel.TargetSpec specification) {
+ Target resolve(TargetSpec specification) {
SearchChain searchChain = searchChainRegistry.getComponent(specification.sourceSpec);
SourceGroup sourceGroup = sourceGroupRegistry.getComponent(specification.sourceSpec);
@@ -172,13 +153,10 @@ public class FederationSearcher extends Searcher<FederationSearcherModel> implem
}
}
- private final Map<ComponentId, Target> resolvedTargets = new LinkedHashMap<>();
-
public FederationSearcher(FederationSearcherModel searcherModel, Optional<Component> targetSelector) {
super(searcherModel);
this.targetSelector = targetSelector;
-
- targetSelector.ifPresent(selector -> addChild(selector));
+ targetSelector.ifPresent(this::addChild);
}
@Override
@@ -196,16 +174,13 @@ public class FederationSearcher extends Searcher<FederationSearcherModel> implem
void initialize(ComponentRegistry<SearchChain> searchChainRegistry, SourceGroupRegistry sourceGroupRegistry) {
TargetResolver targetResolver = new TargetResolver(searchChainRegistry, sourceGroupRegistry);
-
addSourceTargets(targetResolver, model.targets);
-
if (model.inheritDefaultSources)
addDefaultTargets(targetResolver, searchChainRegistry);
}
private void addSourceTargets(TargetResolver targetResolver, List<TargetSpec> targets) {
for (TargetSpec targetSpec : targets) {
-
Target target = targetResolver.resolve(targetSpec);
if (target == null) {
throw new IllegalArgumentException("Can't find source " + targetSpec.sourceSpec +
@@ -220,7 +195,6 @@ public class FederationSearcher extends Searcher<FederationSearcherModel> implem
}
}
-
private void addDefaultTargets(TargetResolver targetResolver, ComponentRegistry<SearchChain> searchChainRegistry) {
for (GenericTarget genericTarget : defaultTargets(searchChainRegistry.allComponents())) {
ComponentSpecification specification = genericTarget.getComponentId().toSpecification();
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChains.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChains.java
index 037da825e74..4c382a75b24 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChains.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChains.java
@@ -98,7 +98,7 @@ public class SearchChains extends Chains<SearchChain> {
return allChains;
}
- private void addSources(ComponentRegistry<SearchChain> chains, Provider provider) {
+ private static void addSources(ComponentRegistry<SearchChain> chains, Provider provider) {
for (Source source : provider.getSources()) {
chains.register(source.getId(), source);
}
diff --git a/container-core/src/main/java/com/yahoo/container/handler/threadpool/ContainerThreadpoolImpl.java b/container-core/src/main/java/com/yahoo/container/handler/threadpool/ContainerThreadpoolImpl.java
index 0512560e0b7..f92d218390f 100644
--- a/container-core/src/main/java/com/yahoo/container/handler/threadpool/ContainerThreadpoolImpl.java
+++ b/container-core/src/main/java/com/yahoo/container/handler/threadpool/ContainerThreadpoolImpl.java
@@ -10,7 +10,6 @@ import com.yahoo.jdisc.Metric;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.Executor;
-import java.util.concurrent.Executors;
import java.util.concurrent.SynchronousQueue;
import java.util.concurrent.TimeUnit;
import java.util.logging.Logger;
diff --git a/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java b/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java
index e5393fe9b85..e92fd692cac 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java
@@ -277,7 +277,7 @@ public class FederationSearcher extends ForkingSearcher {
return descriptions;
}
- private Set<String> getMessagesSet(List<UnresolvedSearchChainException> unresolvedSearchChainExceptions) {
+ private static Set<String> getMessagesSet(List<UnresolvedSearchChainException> unresolvedSearchChainExceptions) {
Set<String> messages = new LinkedHashSet<>();
for (UnresolvedSearchChainException exception : unresolvedSearchChainExceptions) {
messages.add(exception.getMessage());
@@ -578,11 +578,7 @@ public class FederationSearcher extends ForkingSearcher {
/** Returns a result to fill for a query and chain, by creating it if necessary */
public Result get(Chain<Searcher> chain, Query query) {
- Map<Query,Result> resultsToFillForAChain = resultsToFill.get(chain);
- if (resultsToFillForAChain == null) {
- resultsToFillForAChain = new IdentityHashMap<>();
- resultsToFill.put(chain,resultsToFillForAChain);
- }
+ Map<Query, Result> resultsToFillForAChain = resultsToFill.computeIfAbsent(chain, k -> new IdentityHashMap<>());
Result resultsToFillForAChainAndQuery = resultsToFillForAChain.get(query);
if (resultsToFillForAChainAndQuery == null) {
@@ -686,27 +682,18 @@ public class FederationSearcher extends ForkingSearcher {
}
- private static class Window {
-
- private final int hits;
- private final int offset;
-
- public Window(int hits, int offset) {
- this.hits = hits;
- this.offset = offset;
- }
+ private record Window(int hits, int offset) {
public Integer get(CompoundName parameterName) {
if (parameterName.equals(Query.HITS)) return hits;
if (parameterName.equals(Query.OFFSET)) return offset;
return null;
}
-
+
public static Window from(Query query) {
return new Window(query.getHits(), query.getOffset());
}
-
public static Window from(Collection<Target> targets, Query query) {
if (targets.size() == 1) // preserve requested top-level offsets
return Window.from(query);
diff --git a/container-search/src/main/java/com/yahoo/search/federation/sourceref/SearchChainResolver.java b/container-search/src/main/java/com/yahoo/search/federation/sourceref/SearchChainResolver.java
index bfb5bf1a9ab..a2bc12ddbd0 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/sourceref/SearchChainResolver.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/sourceref/SearchChainResolver.java
@@ -57,11 +57,11 @@ public class SearchChainResolver {
};
public Builder addSearchChain(ComponentId searchChainId) {
- return addSearchChain(searchChainId, Collections.<String>emptyList());
+ return addSearchChain(searchChainId, List.of());
}
public Builder addSearchChain(ComponentId searchChainId, FederationOptions federationOptions) {
- return addSearchChain(searchChainId, federationOptions, Collections.<String>emptyList());
+ return addSearchChain(searchChainId, federationOptions, List.of());
}
public Builder addSearchChain(ComponentId searchChainId, List<String> documentTypes) {
diff --git a/container-search/src/main/java/com/yahoo/search/federation/sourceref/SourceRefResolver.java b/container-search/src/main/java/com/yahoo/search/federation/sourceref/SourceRefResolver.java
index 7345868cae7..f096ed0de86 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/sourceref/SourceRefResolver.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/sourceref/SourceRefResolver.java
@@ -26,7 +26,7 @@ public class SourceRefResolver {
Properties sourceToProviderMap,
IndexFacts indexFacts) throws UnresolvedSearchChainException {
try {
- return new LinkedHashSet<>(List.of(searchChainResolver.resolve(sourceRef, sourceToProviderMap)));
+ return Set.of(searchChainResolver.resolve(sourceRef, sourceToProviderMap));
} catch (UnresolvedSourceRefException e) {
return resolveClustersWithDocument(sourceRef, sourceToProviderMap, indexFacts);
}
diff --git a/container-search/src/main/java/com/yahoo/search/federation/sourceref/SourcesTarget.java b/container-search/src/main/java/com/yahoo/search/federation/sourceref/SourcesTarget.java
index 54b022e0b97..b6d99758c7b 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/sourceref/SourcesTarget.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/sourceref/SourcesTarget.java
@@ -1,7 +1,6 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.search.federation.sourceref;
-
import com.google.common.base.Joiner;
import com.yahoo.component.ComponentId;
import com.yahoo.component.ComponentSpecification;
diff --git a/container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedSearchChainException.java b/container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedSearchChainException.java
index 3cf2776259c..0c8562e6032 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedSearchChainException.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedSearchChainException.java
@@ -5,7 +5,6 @@ package com.yahoo.search.federation.sourceref;
* Thrown if a search chain can not be resolved from one or more ids.
* @author Tony Vaagenes
*/
-@SuppressWarnings("serial")
public class UnresolvedSearchChainException extends Exception {
public UnresolvedSearchChainException(String msg) {
super(msg);
diff --git a/container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedSourceRefException.java b/container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedSourceRefException.java
index a7da7a7ee04..fa2c1da13f0 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedSourceRefException.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/sourceref/UnresolvedSourceRefException.java
@@ -6,7 +6,6 @@ import com.yahoo.component.ComponentSpecification;
/**
* @author Tony Vaagenes
*/
-@SuppressWarnings("serial")
class UnresolvedSourceRefException extends UnresolvedSearchChainException {
UnresolvedSourceRefException(String msg) {
super(msg);