From 162af6427e8330b40cc3cbe3c953a6cd665130bf Mon Sep 17 00:00:00 2001 From: Jon Bratseth Date: Wed, 28 Nov 2018 12:52:14 -0800 Subject: Deprecate Server.getServerDiscriminator --- .../src/main/java/com/yahoo/fs4/QueryPacket.java | 10 ++++--- .../com/yahoo/prelude/cluster/ClusterSearcher.java | 8 +++-- .../yahoo/prelude/fastsearch/FS4FillInvoker.java | 12 ++++---- .../prelude/fastsearch/FS4InvokerFactory.java | 2 +- .../yahoo/prelude/fastsearch/FS4ResourcePool.java | 10 +++---- .../yahoo/prelude/fastsearch/FS4SearchInvoker.java | 3 +- .../com/yahoo/prelude/fastsearch/FastSearcher.java | 4 +-- .../prelude/fastsearch/VespaBackEndSearcher.java | 20 ++++++++----- .../src/main/java/com/yahoo/search/Query.java | 19 ++++++++++-- .../search/grouping/vespa/GroupingExecutor.java | 2 +- .../java/com/yahoo/search/query/SessionId.java | 6 ++-- .../com/yahoo/search/query/UniqueRequestId.java | 13 ++++++++- .../java/com/yahoo/fs4/mplex/BackendTestCase.java | 2 +- .../java/com/yahoo/fs4/test/PacketTestCase.java | 8 ++--- .../java/com/yahoo/fs4/test/QueryTestCase.java | 18 ++++++------ .../prelude/fastsearch/test/CacheKeyTestCase.java | 8 ++--- .../fastsearch/test/FastSearcherTestCase.java | 2 +- .../fastsearch/test/PacketCacheTestCase.java | 8 ++--- .../fastsearch/test/PacketWrapperTestCase.java | 34 +++++++++++----------- .../VdsStreamingSearcherTestCase.java | 12 ++++---- 20 files changed, 118 insertions(+), 83 deletions(-) (limited to 'container-search') diff --git a/container-search/src/main/java/com/yahoo/fs4/QueryPacket.java b/container-search/src/main/java/com/yahoo/fs4/QueryPacket.java index b8242ff5101..e3c10c1f8ce 100644 --- a/container-search/src/main/java/com/yahoo/fs4/QueryPacket.java +++ b/container-search/src/main/java/com/yahoo/fs4/QueryPacket.java @@ -25,6 +25,7 @@ import java.util.List; */ public class QueryPacket extends Packet { + private final String serverId; private final Query query; private QueryPacketData queryPacketData; @@ -33,7 +34,8 @@ public class QueryPacket extends Packet { private int ignoreableOffset = 0; // Start of (hits/offset/timestamp) ignore section for cache key private int ignoreableSize = 0; // Length of (hits/offset/timestamp) ignore section for cache key - private QueryPacket(Query query) { + private QueryPacket(String serverId, Query query) { + this.serverId = serverId; this.query = query; } @@ -47,8 +49,8 @@ public class QueryPacket extends Packet { * * @param query the query to convert to a packet */ - public static QueryPacket create(Query query) { - return new QueryPacket(query); + public static QueryPacket create(String serverId, Query query) { + return new QueryPacket(serverId, query); } @@ -162,7 +164,7 @@ public class QueryPacket extends Packet { sessionOffset = buffer.position() - relativeZero; if (sendSessionKey) { - Utf8String key = query.getSessionId(true).asUtf8String(); + Utf8String key = query.getSessionId(serverId).asUtf8String(); sessionSize = key.getByteLength(); buffer.putInt(key.getByteLength()); buffer.put(key.getBytes()); diff --git a/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java b/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java index 3cb95fd0f7f..04a7d9a5303 100644 --- a/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java +++ b/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java @@ -144,7 +144,8 @@ public class ClusterSearcher extends Searcher { } if (searchClusterConfig.indexingmode() == STREAMING) { - VdsStreamingSearcher searcher = vdsCluster(searchClusterIndex, + VdsStreamingSearcher searcher = vdsCluster(fs4ResourcePool.getServerId(), + searchClusterIndex, searchClusterConfig, cacheParams, emulationConfig, docSumParams, documentDbConfig); addBackendSearcher(searcher); @@ -210,7 +211,8 @@ public class ClusterSearcher extends Searcher { documentdbInfoConfig); } - private static VdsStreamingSearcher vdsCluster(int searchclusterIndex, + private static VdsStreamingSearcher vdsCluster(String serverId, + int searchclusterIndex, QrSearchersConfig.Searchcluster searchClusterConfig, CacheParams cacheParams, LegacyEmulationConfig emulConfig, @@ -226,7 +228,7 @@ public class ClusterSearcher extends Searcher { searcher.setSearchClusterConfigId(searchClusterConfig.rankprofiles().configid()); searcher.setDocumentType(searchClusterConfig.searchdef(0)); searcher.setStorageClusterRouteSpec(searchClusterConfig.storagecluster().routespec()); - searcher.init(docSumParams, clusterParams, cacheParams, documentdbInfoConfig); + searcher.init(serverId, docSumParams, clusterParams, cacheParams, documentdbInfoConfig); return searcher; } diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4FillInvoker.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4FillInvoker.java index 90eb0b611bf..7453af55ec0 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4FillInvoker.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4FillInvoker.java @@ -29,6 +29,8 @@ import static com.yahoo.prelude.fastsearch.VespaBackEndSearcher.hitIterator; * @author ollivir */ public class FS4FillInvoker extends FillInvoker { + + private final String serverId; private final VespaBackEndSearcher searcher; private FS4Channel channel; @@ -36,17 +38,17 @@ public class FS4FillInvoker extends FillInvoker { private CacheKey summaryCacheKey = null; private DocsumPacketKey[] summaryPacketKeys = null; - public FS4FillInvoker(VespaBackEndSearcher searcher, Query query, FS4ResourcePool fs4ResourcePool, String hostname, int port, - int distributionKey) { + public FS4FillInvoker(VespaBackEndSearcher searcher, Query query, FS4ResourcePool fs4ResourcePool, String hostname, int port) { + this.serverId = fs4ResourcePool.getServerId(); this.searcher = searcher; - Backend backend = fs4ResourcePool.getBackend(hostname, port); this.channel = backend.openChannel(); channel.setQuery(query); } // fdispatch code path - public FS4FillInvoker(VespaBackEndSearcher searcher, Query query, Backend backend) { + public FS4FillInvoker(String serverId, VespaBackEndSearcher searcher, Query query, Backend backend) { + this.serverId = serverId; this.searcher = searcher; this.channel = backend.openChannel(); channel.setQuery(query); @@ -58,7 +60,7 @@ public class FS4FillInvoker extends FillInvoker { if (searcher.getCacheControl().useCache(channel.getQuery())) { summaryCacheKey = fetchCacheKeyFromHits(result.hits(), summaryClass); if (summaryCacheKey == null) { - QueryPacket queryPacket = QueryPacket.create(channel.getQuery()); + QueryPacket queryPacket = QueryPacket.create(serverId, channel.getQuery()); summaryCacheKey = new CacheKey(queryPacket); } boolean cacheFound = cacheLookupTwoPhase(summaryCacheKey, result, summaryClass); diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4InvokerFactory.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4InvokerFactory.java index 8fa8bdb66bf..18d73d81cc4 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4InvokerFactory.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4InvokerFactory.java @@ -134,7 +134,7 @@ public class FS4InvokerFactory { } public FillInvoker getFillInvoker(Query query, Node node) { - return new FS4FillInvoker(searcher, query, fs4ResourcePool, node.hostname(), node.fs4port(), node.key()); + return new FS4FillInvoker(searcher, query, fs4ResourcePool, node.hostname(), node.fs4port()); } /** diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4ResourcePool.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4ResourcePool.java index 0830c3f264d..f85a4019b78 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4ResourcePool.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4ResourcePool.java @@ -52,12 +52,10 @@ public class FS4ResourcePool extends AbstractComponent { scheduledExecutor = Executors.newScheduledThreadPool(1, ThreadFactoryFactory.getDaemonThreadFactory(name + ".scheduled")); } - public ExecutorService getExecutor() { - return executor; - } - public ScheduledExecutorService getScheduledExecutor() { - return scheduledExecutor; - } + /** Returns an unique identifier of the server this runs in */ + public String getServerId() { return serverId; } + public ExecutorService getExecutor() { return executor; } + public ScheduledExecutorService getScheduledExecutor() { return scheduledExecutor; } public Backend getBackend(String host, int port) { String key = host + ":" + port; diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4SearchInvoker.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4SearchInvoker.java index da32cfc4fda..edba6e650bc 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4SearchInvoker.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4SearchInvoker.java @@ -30,6 +30,7 @@ import static java.util.Arrays.asList; * @author ollivir */ public class FS4SearchInvoker extends SearchInvoker implements ResponseMonitor { + private final VespaBackEndSearcher searcher; private FS4Channel channel; @@ -53,7 +54,7 @@ public class FS4SearchInvoker extends SearchInvoker implements ResponseMonitor documentDbs = new LinkedHashMap<>(); @@ -72,7 +74,7 @@ public abstract class VespaBackEndSearcher extends PingableSearcher { private String name; /** Cache wrapper */ - protected CacheControl cacheControl = null; + private CacheControl cacheControl = null; public final String getName() { return name; } protected final String getDefaultDocsumClass() { return defaultDocsumClass; } @@ -144,6 +146,7 @@ public abstract class VespaBackEndSearcher extends PingableSearcher { return result; } + public String getServerId() { return serverId; } protected DocumentDatabase getDocumentDatabase(Query query) { if (query.getModel().getRestrict().size() == 1) { @@ -163,8 +166,9 @@ public abstract class VespaBackEndSearcher extends PingableSearcher { } } - public final void init(SummaryParameters docSumParams, ClusterParams clusterParams, CacheParams cacheParams, - DocumentdbInfoConfig documentdbInfoConfig) { + public final void init(String serverId, SummaryParameters docSumParams, ClusterParams clusterParams, + CacheParams cacheParams, DocumentdbInfoConfig documentdbInfoConfig) { + this.serverId = serverId; this.name = clusterParams.searcherName; Validator.ensureNotNull("Name of Vespa backend integration", getName()); @@ -213,7 +217,7 @@ public abstract class VespaBackEndSearcher extends PingableSearcher { if (root == null || root instanceof NullItem) // root can become null after resolving and transformation? return new Result(query); - QueryPacket queryPacket = createQueryPacket(query); + QueryPacket queryPacket = createQueryPacket(serverId, query); if (isLoggingFine()) getLogger().fine("made QueryPacket: " + queryPacket); @@ -237,8 +241,8 @@ public abstract class VespaBackEndSearcher extends PingableSearcher { return result; } - protected QueryPacket createQueryPacket(Query query) { - QueryPacket queryPacket = QueryPacket.create(query); + protected QueryPacket createQueryPacket(String serverId, Query query) { + QueryPacket queryPacket = QueryPacket.create(serverId, query); int compressionLimit = query.properties().getInteger(PACKET_COMPRESSION_LIMIT, 0); queryPacket.setCompressionLimit(compressionLimit); if (compressionLimit != 0) @@ -368,7 +372,7 @@ public abstract class VespaBackEndSearcher extends PingableSearcher { s.append(" ranking.queryCache=true"); } if (query.getGroupingSessionCache() || query.getRanking().getQueryCache()) { - s.append(" sessionId=").append(query.getSessionId(true)); + s.append(" sessionId=").append(query.getSessionId(false)); } List grouping = GroupingExecutor.getGroupingList(query); diff --git a/container-search/src/main/java/com/yahoo/search/Query.java b/container-search/src/main/java/com/yahoo/search/Query.java index 1fd81e506bd..8e5e14a3aac 100644 --- a/container-search/src/main/java/com/yahoo/search/Query.java +++ b/container-search/src/main/java/com/yahoo/search/Query.java @@ -1015,14 +1015,27 @@ public class Query extends com.yahoo.processing.Request implements Cloneable { * * @param create if true this is created if not already set * @return the session id of this query, or null if not set and create is false + * @deprecated use getSessionId() or getSessionId(serverId) instead */ + @Deprecated public SessionId getSessionId(boolean create) { - if (requestId == null && ! create) return null; + if ( ! create) return getSessionId(); - if (requestId == null && create) { + if (requestId == null) requestId = UniqueRequestId.next(); - } + return new SessionId(requestId, getRanking().getProfile()); + } + + /** Returns the session id of this query, or null if none is assigned */ + public SessionId getSessionId() { + if (requestId == null) return null; + return new SessionId(requestId, getRanking().getProfile()); + } + /** Returns the session id of this query, and creates and assigns it if not already present */ + public SessionId getSessionId(String serverId) { + if (requestId == null) + requestId = UniqueRequestId.next(serverId); return new SessionId(requestId, getRanking().getProfile()); } diff --git a/container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingExecutor.java b/container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingExecutor.java index 694c0c4580d..b28e648be78 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingExecutor.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingExecutor.java @@ -217,7 +217,7 @@ public class GroupingExecutor extends Searcher { baseRoot = origRoot.clone(); } if (query.isTraceable(3) && query.getGroupingSessionCache()) { - query.trace("Grouping in " + (lastPass + 1) + " passes. SessionId='" + query.getSessionId(true) + "'.", 3); + query.trace("Grouping in " + (lastPass + 1) + " passes. SessionId='" + query.getSessionId(false) + "'.", 3); } for (int pass = 0; pass <= lastPass; ++pass) { boolean firstPass = (pass == 0); diff --git a/container-search/src/main/java/com/yahoo/search/query/SessionId.java b/container-search/src/main/java/com/yahoo/search/query/SessionId.java index b065bd9a0a9..38b69b1a1f8 100644 --- a/container-search/src/main/java/com/yahoo/search/query/SessionId.java +++ b/container-search/src/main/java/com/yahoo/search/query/SessionId.java @@ -4,7 +4,7 @@ package com.yahoo.search.query; import com.yahoo.text.Utf8String; /** - * A id which is unique across this cluster + the extra differentiator. + * An id which is unique across the cluster of nodes * * @author baldersheim */ @@ -12,8 +12,8 @@ public class SessionId { private final Utf8String id; - public SessionId(UniqueRequestId requestId, String extraDifferentiator) { - this.id = new Utf8String(requestId.toString() + "." + extraDifferentiator); + public SessionId(UniqueRequestId requestId, String localSessionId) { + this.id = new Utf8String(requestId.toString() + "." + localSessionId); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/query/UniqueRequestId.java b/container-search/src/main/java/com/yahoo/search/query/UniqueRequestId.java index 8d11b0f4fb9..49529936901 100644 --- a/container-search/src/main/java/com/yahoo/search/query/UniqueRequestId.java +++ b/container-search/src/main/java/com/yahoo/search/query/UniqueRequestId.java @@ -13,7 +13,6 @@ import java.util.concurrent.atomic.AtomicLong; */ public class UniqueRequestId { - private static final String serverId = Server.get().getServerDiscriminator(); private static final AtomicLong sequenceCounter = new AtomicLong(); private final String id; @@ -28,8 +27,20 @@ public class UniqueRequestId { /** * Creates a session id which is unique across the cluster this runtime is a member of each time this is called. * Calling this causes synchronization. + * + * @deprecated use nextId(serverId) instead */ + @Deprecated public static UniqueRequestId next() { + return new UniqueRequestId(Server.get().getServerDiscriminator(), System.currentTimeMillis(), sequenceCounter.getAndIncrement()); + } + + /** + * Creates a session id which is unique across the cluster this runtime is a member of each time this is called. + * Calling this causes synchronization. + */ + public static UniqueRequestId next(String serverId) { return new UniqueRequestId(serverId, System.currentTimeMillis(), sequenceCounter.getAndIncrement()); } + } diff --git a/container-search/src/test/java/com/yahoo/fs4/mplex/BackendTestCase.java b/container-search/src/test/java/com/yahoo/fs4/mplex/BackendTestCase.java index 16d253d1484..9db956d4b8b 100644 --- a/container-search/src/test/java/com/yahoo/fs4/mplex/BackendTestCase.java +++ b/container-search/src/test/java/com/yahoo/fs4/mplex/BackendTestCase.java @@ -167,7 +167,7 @@ public class BackendTestCase { int channelId = channel.getChannelId(); server.dispatch.channelId = channelId; - assertTrue(backend.sendPacket(QueryPacket.create(q), channelId)); + assertTrue(backend.sendPacket(QueryPacket.create("container.0", q), channelId)); try { b = channel.receivePackets(1000, 1); } catch (ChannelTimeoutException e) { diff --git a/container-search/src/test/java/com/yahoo/fs4/test/PacketTestCase.java b/container-search/src/test/java/com/yahoo/fs4/test/PacketTestCase.java index 14e759cb4d3..5bd90ee623b 100644 --- a/container-search/src/test/java/com/yahoo/fs4/test/PacketTestCase.java +++ b/container-search/src/test/java/com/yahoo/fs4/test/PacketTestCase.java @@ -34,7 +34,7 @@ public class PacketTestCase { Query query = new Query("/?query=foo"); assertNotNull(query); - QueryPacket queryPacket = QueryPacket.create(query); + QueryPacket queryPacket = QueryPacket.create("container.0", query); assertNotNull(queryPacket); ByteBuffer buffer = ByteBuffer.allocate(1024); @@ -67,7 +67,7 @@ public class PacketTestCase { Query query = new Query(queryBuffer.toString()); assertNotNull(query); - QueryPacket queryPacket = QueryPacket.create(query); + QueryPacket queryPacket = QueryPacket.create("container.0", query); assertNotNull(queryPacket); ByteBuffer buffer = ByteBuffer.allocate(100); @@ -88,7 +88,7 @@ public class PacketTestCase { @Test public void requireThatPacketsCanTurnOnCompression() throws BufferTooSmallException { - QueryPacket queryPacket = QueryPacket.create(new Query("/?query=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")); + QueryPacket queryPacket = QueryPacket.create("container.0", new Query("/?query=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")); ByteBuffer buffer = ByteBuffer.allocate(1024); int channel = 32; @@ -116,7 +116,7 @@ public class PacketTestCase { @Test public void requireThatUncompressablePacketsArentCompressed() throws BufferTooSmallException { - QueryPacket queryPacket = QueryPacket.create(new Query("/?query=aaaaaaaaaaaaaaa")); + QueryPacket queryPacket = QueryPacket.create("container.0", new Query("/?query=aaaaaaaaaaaaaaa")); ByteBuffer buffer = ByteBuffer.allocate(1024); int channel = 32; diff --git a/container-search/src/test/java/com/yahoo/fs4/test/QueryTestCase.java b/container-search/src/test/java/com/yahoo/fs4/test/QueryTestCase.java index 815919cd29e..78b2f65305a 100644 --- a/container-search/src/test/java/com/yahoo/fs4/test/QueryTestCase.java +++ b/container-search/src/test/java/com/yahoo/fs4/test/QueryTestCase.java @@ -30,7 +30,7 @@ public class QueryTestCase { public void testEncodePacket() { Query query = new Query("/?query=chain&timeout=0"); query.setWindow(2, 8); - QueryPacket packet = QueryPacket.create(query); + QueryPacket packet = QueryPacket.create("container.0", query); assertEquals(2, packet.getOffset()); assertEquals(8, packet.getHits()); @@ -56,7 +56,7 @@ public class QueryTestCase { // we do the sledgehammer dance: query.getRanking().setProfile("two"); query.setWindow(2, 8); - QueryPacket packet = QueryPacket.create(query); + QueryPacket packet = QueryPacket.create("container.0", query); byte[] encoded = packetToBytes(packet); byte[] correctBuffer = new byte[] {0,0,0,42,0,0,0,-38,0,0,0,0, // Header 0,0,0,6, // Features @@ -90,7 +90,7 @@ public class QueryTestCase { query.prepare(); - QueryPacket packet = QueryPacket.create(query); + QueryPacket packet = QueryPacket.create("container.0", query); byte[] encoded = packetToBytes(packet); byte[] correctBuffer=new byte[] { 0, 0, 1, 23, 0, 0, 0, -38, 0, 0, 0, 0, 0, 16, 0, -122, 0, 10, ignored, ignored, ignored, ignored, 0, 0, 0x40, 0x03, 3, 't', 'w', 'o', 0, 0, 0, 3, 0, 0, 0, 4, 'r', 'a', 'n', 'k', 0, 0, 0, 5, 0, 0, 0, 11, 'p', 'r', 'o', 'p', 'e', 'r', 't', 'y', 46, 'p', '2', 0, 0, 0, 2, 'v', '2', 0, 0, 0, 11, 'p', 'r', 'o', 'p', 'e', 'r', 't', 'y', 46, 'p', '1', 0, 0, 0, 2, 'v', '1', 0, 0, 0, 3, 'f', 'o', 'o', 0, 0, 0, 4, '3', '0', 46, '3', 0, 0, 0, 3, 'b', 'a', 'r', 0, 0, 0, 1, '0', 0, 0, 0, 9, 'v', 'e', 's', 'p', 'a', 46, 'n', 'o', 'w', 0, 0, 0, 6, '1', '2', '3', '4', '5', '6', 0, 0, 0, 14, 'h', 'i', 'g', 'h', 'l', 'i', 'g', 'h', 't', 't', 'e', 'r', 'm', 's', 0, 0, 0, 3, 0, 0, 0, 6, 'f', 'i', 'e', 'l', 'd', '1', 0, 0, 0, 1, '2', 0, 0, 0, 6, 'f', 'i', 'e', 'l', 'd', '1', 0, 0, 0, 5, 't', 'e', 'r', 'm', '1', 0, 0, 0, 6, 'f', 'i', 'e', 'l', 'd', '1', 0, 0, 0, 5, 't', 'e', 'r', 'm', '2', 0, 0, 0, 5, 'm', 'o', 'd', 'e', 'l', 0, 0, 0, 1, 0, 0, 0, 10, 's', 'e', 'a', 'r', 'c', 'h', 'p', 'a', 't', 'h', 0, 0, 0, 3, '7', 47, '3', 0, 0, 0, 15, 43, 'f', 'i', 'e', 'l', 'd', '1', 32, 45, 'f', 'i', 'e', 'l', 'd', '2', 0, 0, 0, 1, 0, 0, 0, 9, 68, 1, 0, 5, 'c', 'h', 'a', 'i', 'n' @@ -116,7 +116,7 @@ public class QueryTestCase { query.prepare(); - QueryPacket packet = QueryPacket.create(query); + QueryPacket packet = QueryPacket.create("container.0", query); byte[] encoded = packetToBytes(packet); byte[] correctBuffer=new byte[] { 0, 0, 1, 23, 0, 0, 0, -38, 0, 0, 0, 0, 0, 16, 0, -122, 0, 10, ignored, ignored, ignored, ignored, 0, 0, 0x40, 0x03, 3, 't', 'w', 'o', 0, 0, 0, 3, 0, 0, 0, 4, 'r', 'a', 'n', 'k', 0, 0, 0, 5, 0, 0, 0, 11, 'p', 'r', 'o', 'p', 'e', 'r', 't', 'y', 46, 'p', '2', 0, 0, 0, 2, 'v', '2', 0, 0, 0, 11, 'p', 'r', 'o', 'p', 'e', 'r', 't', 'y', 46, 'p', '1', 0, 0, 0, 2, 'v', '1', 0, 0, 0, 3, 'f', 'o', 'o', 0, 0, 0, 4, '3', '0', 46, '3', 0, 0, 0, 3, 'b', 'a', 'r', 0, 0, 0, 1, '0', 0, 0, 0, 9, 'v', 'e', 's', 'p', 'a', 46, 'n', 'o', 'w', 0, 0, 0, 6, '1', '2', '3', '4', '5', '6', 0, 0, 0, 14, 'h', 'i', 'g', 'h', 'l', 'i', 'g', 'h', 't', 't', 'e', 'r', 'm', 's', 0, 0, 0, 3, 0, 0, 0, 6, 'f', 'i', 'e', 'l', 'd', '1', 0, 0, 0, 1, '2', 0, 0, 0, 6, 'f', 'i', 'e', 'l', 'd', '1', 0, 0, 0, 5, 't', 'e', 'r', 'm', '1', 0, 0, 0, 6, 'f', 'i', 'e', 'l', 'd', '1', 0, 0, 0, 5, 't', 'e', 'r', 'm', '2', 0, 0, 0, 5, 'm', 'o', 'd', 'e', 'l', 0, 0, 0, 1, 0, 0, 0, 10, 's', 'e', 'a', 'r', 'c', 'h', 'p', 'a', 't', 'h', 0, 0, 0, 3, '7', 47, '3', 0, 0, 0, 15, 43, 'f', 'i', 'e', 'l', 'd', '1', 32, 45, 'f', 'i', 'e', 'l', 'd', '2', 0, 0, 0, 1, 0, 0, 0, 9, 68, 1, 0, 5, 'c', 'h', 'a', 'i', 'n' @@ -146,7 +146,7 @@ public class QueryTestCase { query.prepare(); - QueryPacket packet = QueryPacket.create(query); + QueryPacket packet = QueryPacket.create("container.0", query); byte[] encoded = packetToBytes(packet); byte[] correctBuffer=new byte[] { 0, 0, 1, 16, 0, 0, 0, -38, 0, 0, 0, 0, 0, 16, 0, 6, 0, 10, ignored, ignored, ignored, ignored, 0, 0, 0x40, 0x03, 7, 'd', 'e', 'f', 'a', 'u', 'l', 't', 0, 0, 0, 1, 0, 0, 0, 4, 'r', 'a', 'n', 'k', 0, 0, 0, 5, 0, 0, 0, 18, 'v', 'e', 's', 'p', 'a', 46, 'l', 'a', 'b', 'e', 'l', 46, 'b', 'a', 'r', 46, 'i', 'd', 0, 0, 0, 1, '1', 0, 0, 0, 22, 'v', 'e', 's', 'p', 'a', 46, 't', 'e', 'r', 'm', 46, '4', 46, 'c', 'o', 'n', 'n', 'e', 'x', 'i', 't', 'y', 0, 0, 0, 1, '3', 0, 0, 0, 22, 'v', 'e', 's', 'p', 'a', 46, 't', 'e', 'r', 'm', 46, '4', 46, 'c', 'o', 'n', 'n', 'e', 'x', 'i', 't', 'y', 0, 0, 0, 4, '0', 46, '1', '5', 0, 0, 0, 25, 'v', 'e', 's', 'p', 'a', 46, 't', 'e', 'r', 'm', 46, '3', 46, 's', 'i', 'g', 'n', 'i', 'f', 'i', 'c', 'a', 'n', 'c', 'e', 0, 0, 0, 4, '0', 46, '3', '7', 0, 0, 0, 25, 'v', 'e', 's', 'p', 'a', 46, 't', 'e', 'r', 'm', 46, '4', 46, 's', 'i', 'g', 'n', 'i', 'f', 'i', 'c', 'a', 'n', 'c', 'e', 0, 0, 0, 4, '0', 46, '8', '1', 0, 0, 0, 5, 0, 0, 0, '4', 1, 4, 79, 1, 0, 6, 'f', 'i', 'e', 'l', 'd', '1', 79, 2, 0, 6, 'f', 'i', 'e', 'l', 'd', '2', 68, 3, 6, 'f', 'i', 'e', 'l', 'd', '3', 5, 'w', 'o', 'r', 'd', '1', 68, 4, 6, 'f', 'i', 'e', 'l', 'd', '3', 5, 'w', 'o', 'r', 'd', 49 @@ -158,7 +158,7 @@ public class QueryTestCase { public void testEncodeSortSpec() throws BufferTooSmallException { Query query = new Query("/?query=chain&sortspec=%2Ba+-b&timeout=0"); query.setWindow(2, 8); - QueryPacket packet = QueryPacket.create(query); + QueryPacket packet = QueryPacket.create("container.0", query); ByteBuffer buffer = ByteBuffer.allocate(500); buffer.limit(0); packet.encode(buffer, 0); @@ -199,7 +199,7 @@ public class QueryTestCase { query.getModel().getQueryTree().setRoot(p); query.setTimeout(0); - QueryPacket queryPacket = QueryPacket.create(query); + QueryPacket queryPacket = QueryPacket.create("container.0", query); ByteBuffer buffer1 = ByteBuffer.allocate(1024); @@ -212,7 +212,7 @@ public class QueryTestCase { query.getModel().getQueryTree().setRoot(p); query.setTimeout(0); - queryPacket = QueryPacket.create(query); + queryPacket = QueryPacket.create("container.0", query); assertNotNull(queryPacket); ByteBuffer buffer2 = ByteBuffer.allocate(1024); @@ -232,7 +232,7 @@ public class QueryTestCase { public void testPatchInChannelId() { Query query = new Query("/?query=chain&timeout=0"); query.setWindow(2, 8); - QueryPacket packet = QueryPacket.create(query); + QueryPacket packet = QueryPacket.create("container.0", query); assertEquals(2,packet.getOffset()); assertEquals(8, packet.getHits()); diff --git a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/CacheKeyTestCase.java b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/CacheKeyTestCase.java index e03581c6ad4..7057d3ed90d 100644 --- a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/CacheKeyTestCase.java +++ b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/CacheKeyTestCase.java @@ -17,9 +17,9 @@ public class CacheKeyTestCase { @Test public void testHitsOffsetEquality() { Query a = new Query("/?query=abcd"); - QueryPacket p1 = QueryPacket.create(a); + QueryPacket p1 = QueryPacket.create("container.0", a); a.setWindow(100, 1000); - QueryPacket p2 = QueryPacket.create(a); + QueryPacket p2 = QueryPacket.create("container.0", a); CacheKey k1 = new CacheKey(p1); CacheKey k2 = new CacheKey(p2); assertEquals(k1, k2); @@ -29,9 +29,9 @@ public class CacheKeyTestCase { @Test public void testSessionKeyIgnored() { Query a = new Query("/?query=abcd"); - QueryPacket ap = QueryPacket.create(a); + QueryPacket ap = QueryPacket.create("container.0", a); Query b = new Query("/?query=abcd&ranking.queryCache=true"); - QueryPacket bp = QueryPacket.create(b); + QueryPacket bp = QueryPacket.create("container.0", b); CacheKey ak = new CacheKey(ap); CacheKey bk = new CacheKey(bp); assertEquals(ak, bk); diff --git a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/FastSearcherTestCase.java b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/FastSearcherTestCase.java index f17f02ca27d..c4d32111124 100644 --- a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/FastSearcherTestCase.java +++ b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/FastSearcherTestCase.java @@ -394,7 +394,7 @@ public class FastSearcherTestCase { Result result = doSearch(fastSearcher,new Query("?query=ignored"), 0, 2); Query q = new Query("?query=ignored"); ((WordItem) q.getModel().getQueryTree().getRoot()).setUniqueID(1); - QueryPacket queryPacket = QueryPacket.create(q); + QueryPacket queryPacket = QueryPacket.create("container.0", q); CacheKey k = new CacheKey(queryPacket); PacketWrapper p = c.lookup(k, q); assertEquals(1, p.getResultPackets().size()); diff --git a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/PacketCacheTestCase.java b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/PacketCacheTestCase.java index 05f5fe9f763..5a19e7d866f 100644 --- a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/PacketCacheTestCase.java +++ b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/PacketCacheTestCase.java @@ -39,10 +39,10 @@ public class PacketCacheTestCase { 0,0,0,4, 2,2,2,2,2,2,2,2,2,2,2,2, 0x40,0x35,0,0,0,0,0,0, 0,0,0,8, 0,0,0,37}; static int length = queryResultPacketData.length; // 4 + 68 + 2*12 bytes - static CacheKey key1 = new CacheKey(QueryPacket.create(new Query("/?query=key1"))); - static CacheKey key2 = new CacheKey(QueryPacket.create(new Query("/?query=key2"))); - static CacheKey key3 = new CacheKey(QueryPacket.create(new Query("/?query=key3"))); - static CacheKey key4 = new CacheKey(QueryPacket.create(new Query("/?query=key4"))); + static CacheKey key1 = new CacheKey(QueryPacket.create("container.0", new Query("/?query=key1"))); + static CacheKey key2 = new CacheKey(QueryPacket.create("container.0", new Query("/?query=key2"))); + static CacheKey key3 = new CacheKey(QueryPacket.create("container.0", new Query("/?query=key3"))); + static CacheKey key4 = new CacheKey(QueryPacket.create("container.0", new Query("/?query=key4"))); @Test public void testPutAndGet() throws BufferTooSmallException { diff --git a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/PacketWrapperTestCase.java b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/PacketWrapperTestCase.java index 8411b4bcb0b..03c13972d0f 100644 --- a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/PacketWrapperTestCase.java +++ b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/PacketWrapperTestCase.java @@ -26,7 +26,7 @@ public class PacketWrapperTestCase { @Test public void testPartialOverlap() { - CacheKey key = new CacheKey(QueryPacket.create(new Query("/?query=key"))); + CacheKey key = new CacheKey(QueryPacket.create("container.0", new Query("/?query=key"))); PacketWrapper w = createResult(key, 0, 10, 100); QueryResultPacket q = createQueryResultPacket(10, 10, 100); @@ -84,7 +84,7 @@ public class PacketWrapperTestCase { @Test public void testPacketTrimming1() { - CacheKey key = new CacheKey(QueryPacket.create(new Query("/?query=key"))); + CacheKey key = new CacheKey(QueryPacket.create("container.0", new Query("/?query=key"))); PacketWrapper w = createResult(key, 0, 10, 100); QueryResultPacket q = createQueryResultPacket(5, 10, 100); @@ -100,7 +100,7 @@ public class PacketWrapperTestCase { @Test public void testPacketTrimming2() { - CacheKey key = new CacheKey(QueryPacket.create(new Query("/?query=key"))); + CacheKey key = new CacheKey(QueryPacket.create("container.0", new Query("/?query=key"))); PacketWrapper w = createResult(key, 0, 10, 100); QueryResultPacket q = createQueryResultPacket(5, 10, 100); @@ -117,7 +117,7 @@ public class PacketWrapperTestCase { @Test public void testPacketTrimming3() { - CacheKey key = new CacheKey(QueryPacket.create(new Query("/?query=key"))); + CacheKey key = new CacheKey(QueryPacket.create("container.0", new Query("/?query=key"))); PacketWrapper w = createResult(key, 0, 10, 100); QueryResultPacket q = createQueryResultPacket(20, 10, 100); @@ -134,7 +134,7 @@ public class PacketWrapperTestCase { @Test public void testPacketTrimming4() { - CacheKey key = new CacheKey(QueryPacket.create(new Query("/?query=key"))); + CacheKey key = new CacheKey(QueryPacket.create("container.0", new Query("/?query=key"))); PacketWrapper w = createResult(key, 0, 10, 100); QueryResultPacket q = createQueryResultPacket(5, 10, 100); @@ -155,7 +155,7 @@ public class PacketWrapperTestCase { @Test public void testPacketTrimming5() { - CacheKey key = new CacheKey(QueryPacket.create(new Query("/?query=key"))); + CacheKey key = new CacheKey(QueryPacket.create("container.0", new Query("/?query=key"))); PacketWrapper w = createResult(key, 0, 10, 100); QueryResultPacket q = createQueryResultPacket(5, 10, 100); @@ -180,7 +180,7 @@ public class PacketWrapperTestCase { @Test public void testPacketTrimming6() { - CacheKey key = new CacheKey(QueryPacket.create(new Query("/?query=key"))); + CacheKey key = new CacheKey(QueryPacket.create("container.0", new Query("/?query=key"))); PacketWrapper w = createResult(key, 0, 10, 100); QueryResultPacket q = createQueryResultPacket(5, 10, 100); @@ -206,7 +206,7 @@ public class PacketWrapperTestCase { public void testPacketTrimming7() { final Query query = new Query("/?query=key"); query.setWindow(50, 10); - CacheKey key = new CacheKey(QueryPacket.create(query)); + CacheKey key = new CacheKey(QueryPacket.create("container.0", query)); PacketWrapper w = createResult(key, 50, 10, 100); QueryResultPacket q = createQueryResultPacket(10, 10, 100); @@ -232,7 +232,7 @@ public class PacketWrapperTestCase { @Test public void testPacketTrimming8() { - CacheKey key = new CacheKey(QueryPacket.create(new Query("/?query=key"))); + CacheKey key = new CacheKey(QueryPacket.create("container.0", new Query("/?query=key"))); PacketWrapper w = createResult(key, 0, 10, 100); QueryResultPacket q = createQueryResultPacket(50, 10, 100); @@ -249,7 +249,7 @@ public class PacketWrapperTestCase { @Test public void testPacketTrimming9() { - CacheKey key = new CacheKey(QueryPacket.create(new Query("/?query=key"))); + CacheKey key = new CacheKey(QueryPacket.create("container.0", new Query("/?query=key"))); PacketWrapper w = createResult(key, 0, 10, 100); QueryResultPacket q = createQueryResultPacket(10, 10, 100); @@ -268,7 +268,7 @@ public class PacketWrapperTestCase { @Test public void testPacketTrimming10() { - CacheKey key = new CacheKey(QueryPacket.create(new Query("/?query=key"))); + CacheKey key = new CacheKey(QueryPacket.create("container.0", new Query("/?query=key"))); PacketWrapper w = createResult(key, 0, 10, 100); QueryResultPacket q = createQueryResultPacket(0, 11, 100); @@ -288,7 +288,7 @@ public class PacketWrapperTestCase { @Test public void testPacketTrimming11() { - CacheKey key = new CacheKey(QueryPacket.create(new Query("/?query=key"))); + CacheKey key = new CacheKey(QueryPacket.create("container.0", new Query("/?query=key"))); PacketWrapper w = createResult(key, 0, 10, 100); QueryResultPacket q = createQueryResultPacket(1, 10, 100); @@ -316,7 +316,7 @@ public class PacketWrapperTestCase { @Test public void testPacketTrimming12() { - CacheKey key = new CacheKey(QueryPacket.create(new Query("/?query=key"))); + CacheKey key = new CacheKey(QueryPacket.create("container.0", new Query("/?query=key"))); PacketWrapper w = createResult(key, 0, 10, 100); QueryResultPacket q = createQueryResultPacket(4, 10, 100); @@ -338,7 +338,7 @@ public class PacketWrapperTestCase { @Test public void testPacketTrimming13() { - CacheKey key = new CacheKey(QueryPacket.create(new Query("/?query=key"))); + CacheKey key = new CacheKey(QueryPacket.create("container.0", new Query("/?query=key"))); PacketWrapper w = createResult(key, 0, 10, 100); QueryResultPacket q = createQueryResultPacket(4, 10, 100); @@ -361,7 +361,7 @@ public class PacketWrapperTestCase { @Test public void testPacketTrimming14() { - CacheKey key = new CacheKey(QueryPacket.create(new Query("/?query=key"))); + CacheKey key = new CacheKey(QueryPacket.create("container.0", new Query("/?query=key"))); PacketWrapper w = createResult(key, 0, 10, 100); QueryResultPacket q = createQueryResultPacket(4, 10, 100); @@ -384,12 +384,12 @@ public class PacketWrapperTestCase { @Test public void testZeroHits() { - CacheKey key = new CacheKey(QueryPacket.create(new Query("/?query=key"))); + CacheKey key = new CacheKey(QueryPacket.create("container.0", new Query("/?query=key"))); PacketWrapper w = createResult(key, 0, 10, 0); final Query query = new Query("/?query=key"); query.setWindow(5, 10); - key = new CacheKey(QueryPacket.create(query)); + key = new CacheKey(QueryPacket.create("container.0", query)); QueryResultPacket q = createQueryResultPacket(5, 10, 0); w.addResultPacket(q); diff --git a/container-search/src/test/java/com/yahoo/vespa/streamingvisitors/VdsStreamingSearcherTestCase.java b/container-search/src/test/java/com/yahoo/vespa/streamingvisitors/VdsStreamingSearcherTestCase.java index 0d58b10fde4..6da4bb809c5 100644 --- a/container-search/src/test/java/com/yahoo/vespa/streamingvisitors/VdsStreamingSearcherTestCase.java +++ b/container-search/src/test/java/com/yahoo/vespa/streamingvisitors/VdsStreamingSearcherTestCase.java @@ -138,7 +138,7 @@ public class VdsStreamingSearcherTestCase { } private static Result executeQuery(VdsStreamingSearcher searcher, Query query) { - QueryPacket queryPacket = QueryPacket.create(query); + QueryPacket queryPacket = QueryPacket.create("container.0", query); CacheKey cacheKey = new CacheKey(queryPacket); Execution execution = new Execution(new Execution.Context(null, null, null, null, null)); return searcher.doSearch2(query, queryPacket, cacheKey, execution); @@ -204,10 +204,11 @@ public class VdsStreamingSearcherTestCase { ConfigGetter getter = new ConfigGetter<>(DocumentdbInfoConfig.class); DocumentdbInfoConfig config = getter.getConfig("file:src/test/java/com/yahoo/prelude/fastsearch/test/documentdb-info.cfg"); - searcher.init(new SummaryParameters("default"), - new ClusterParams("clusterName"), - new CacheParams(100, 1e64), - config); + searcher.init("container.0", + new SummaryParameters("default"), + new ClusterParams("clusterName"), + new CacheParams(100, 1e64), + config); // Magic query values are used to trigger specific behaviors from mock visitor. checkError(searcher, "/?query=noselection", @@ -282,4 +283,5 @@ public class VdsStreamingSearcherTestCase { assertFalse(VdsStreamingSearcher.verifyDocId(orderIdUser2, group1Query, false)); assertFalse(VdsStreamingSearcher.verifyDocId(badId, group1Query, false)); } + } -- cgit v1.2.3