diff options
author | Arne H Juul <arnej@yahoo-inc.com> | 2017-02-28 08:50:19 +0100 |
---|---|---|
committer | Arne H Juul <arnej@yahoo-inc.com> | 2017-02-28 08:50:19 +0100 |
commit | de0e15bd35639c23c8226c2127fdc1733064df72 (patch) | |
tree | c5ab7e119aa2f14ed4cea0512a91b524af3cc422 /container-search | |
parent | 6bf1977aeb25a21d05c27635385f9beb6cad4f3f (diff) |
revert qrserver part of docsum protocol changes
* when the qrserver was upgraded first, it would expect
the backend to send schemaless docsums without asking
for it, leading to lots of warnings and performance problems.
We'll need to do this protocol change in two steps.
Diffstat (limited to 'container-search')
4 files changed, 16 insertions, 14 deletions
diff --git a/container-search/src/main/java/com/yahoo/fs4/GetDocSumsPacket.java b/container-search/src/main/java/com/yahoo/fs4/GetDocSumsPacket.java index 105c1d49392..b5476ed6ba3 100644 --- a/container-search/src/main/java/com/yahoo/fs4/GetDocSumsPacket.java +++ b/container-search/src/main/java/com/yahoo/fs4/GetDocSumsPacket.java @@ -69,9 +69,7 @@ public class GetDocSumsPacket extends Packet { * definition of enum getdocsums_flags */ public static final int GDFLAG_IGNORE_ROW = 0x00000001; - - // TODO: now always assumed true; remove in Vespa 7 - public static final int GDFLAG_ALLOW_SLIME_NOTUSED = 0x00000002; + public static final int GDFLAG_ALLOW_SLIME = 0x00000002; public void encodeBody(ByteBuffer buffer) { setFieldsFromHits(); @@ -82,6 +80,9 @@ public class GetDocSumsPacket extends Packet { query.getRanking().getProperties().put(sessionIdKey, query.getSessionId(false).asUtf8String().toString()); } + // always allow slime docsums + flags |= GDFLAG_ALLOW_SLIME; + // set the default features long features = GDF_MLD; if (sendQuery) diff --git a/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/VdsVisitor.java b/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/VdsVisitor.java index ca2bd9c4b05..9fe64e6977d 100644 --- a/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/VdsVisitor.java +++ b/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/VdsVisitor.java @@ -181,6 +181,7 @@ class VdsVisitor extends VisitorDataHandler implements Visitor { } params.setLibraryParameter("summarycount", String.valueOf(query.getOffset() + query.getHits())); params.setLibraryParameter("rankprofile", query.getRanking().getProfile()); + params.setLibraryParameter("allowslimedocsums", "true"); params.setLibraryParameter("queryflags", String.valueOf(getQueryFlags(query))); ByteBuffer buf = ByteBuffer.allocate(1024); diff --git a/container-search/src/test/java/com/yahoo/fs4/test/GetDocSumsPacketTestCase.java b/container-search/src/test/java/com/yahoo/fs4/test/GetDocSumsPacketTestCase.java index a5c538d235a..76323b7139d 100644 --- a/container-search/src/test/java/com/yahoo/fs4/test/GetDocSumsPacketTestCase.java +++ b/container-search/src/test/java/com/yahoo/fs4/test/GetDocSumsPacketTestCase.java @@ -37,13 +37,13 @@ public class GetDocSumsPacketTestCase { hit.setIgnoreRowBits(true); assertPacket(true, hit, new byte[] { 0, 0, 0, 57, 0, 0, 0, -37, 0, 0, 40, 21, 0, 0, 0, 0, IGNORE, IGNORE, IGNORE, IGNORE, 7, 100, 101, 102, 97, 117, 108, 116, 0, 0, 0, 0x01, 0, 0, 0, 7, - 100, 101, 102, 97, 117, 108, 116, 0, 0, 0, 1, 0, 0, 0, 6, 4, 0, 3, 102, 111, 111, 0, 0, 0, 1 }); + 100, 101, 102, 97, 117, 108, 116, 0, 0, 0, 1, 0, 0, 0, 6, 4, 0, 3, 102, 111, 111, 0, 0, 0, 3 }); hit = new FastHit(); hit.setIgnoreRowBits(false); - assertPacket(true, hit, new byte[] {0, 0, 0, 53, 0, 0, 0, -37, 0, 0, 8, 21, 0, 0, 0, 0, IGNORE, IGNORE, IGNORE, + assertPacket(true, hit, new byte[] {0, 0, 0, 57, 0, 0, 0, -37, 0, 0, 40, 21, 0, 0, 0, 0, IGNORE, IGNORE, IGNORE, IGNORE, 7, 100, 101, 102, 97, 117, 108, 116, 0, 0, 0, 0x01, 0, 0, 0, 7, - 100, 101, 102, 97, 117, 108, 116, 0, 0, 0, 1, 0, 0, 0, 6, 4, 0, 3, 102, 111, 111}); + 100, 101, 102, 97, 117, 108, 116, 0, 0, 0, 1, 0, 0, 0, 6, 4, 0, 3, 102, 111, 111, 0, 0, 0, 2}); } @Test @@ -52,13 +52,13 @@ public class GetDocSumsPacketTestCase { hit.setIgnoreRowBits(true); assertPacket(false, hit, new byte[] { 0, 0, 0, 43, 0, 0, 0, -37, 0, 0, 40, 17, 0, 0, 0, 0, IGNORE, IGNORE, IGNORE, IGNORE, 7, 100, 101, 102, 97, 117, 108, 116, 0, 0, 0, 0x01, 0, 0, 0, 7, - 100, 101, 102, 97, 117, 108, 116, 0, 0, 0, 1 + 100, 101, 102, 97, 117, 108, 116, 0, 0, 0, 3 }); hit = new FastHit(); hit.setIgnoreRowBits(false); - assertPacket(false, hit, new byte[] { 0, 0, 0, 39, 0, 0, 0, -37, 0, 0, 8, 17, 0, 0, 0, 0, IGNORE, IGNORE, IGNORE, - IGNORE, 7, 100, 101, 102, 97, 117, 108, 116, 0, 0, 0, 0x01, 0, 0, 0, 7, 100, 101, 102, 97, 117, 108, 116 + assertPacket(false, hit, new byte[] { 0, 0, 0, 43, 0, 0, 0, -37, 0, 0, 40, 17, 0, 0, 0, 0, IGNORE, IGNORE, IGNORE, + IGNORE, 7, 100, 101, 102, 97, 117, 108, 116, 0, 0, 0, 0x01, 0, 0, 0, 7, 100, 101, 102, 97, 117, 108, 116, 0, 0, 0, 2 }); } @@ -68,7 +68,6 @@ public class GetDocSumsPacketTestCase { result.getQuery().getSessionId(true); // create session id. result.getQuery().getRanking().setQueryCache(true); FastHit hit = new FastHit(); - hit.setIgnoreRowBits(true); result.hits().add(hit); assertPacket(false, result, new byte[] { 0, 0, 0, -123, 0, 0, 0, -37, 0, 0, 56, 17, 0, 0, 0, 0, // query timeout @@ -85,7 +84,7 @@ public class GetDocSumsPacketTestCase { // caches: features => true 0, 0, 0, 6, 'c', 'a', 'c', 'h', 'e', 's', 0, 0, 0, 1, 0, 0, 0, 5, 'q', 'u', 'e', 'r', 'y', 0, 0, 0, 4, 't', 'r', 'u', 'e', // flags - 0, 0, 0, 1 + 0, 0, 0, 2 }); } 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 194de116baf..9787cf2838f 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 @@ -262,7 +262,7 @@ public class FastSearcherTestCase { buf.get(actual); byte IGNORE = 69; - byte[] expected = new byte[] { 0, 0, 0, -89, 0, 0, 0, -37, 0, 0, 16, 17, 0, 0, 0, 0, + byte[] expected = new byte[] { 0, 0, 0, -85, 0, 0, 0, -37, 0, 0, 48, 17, 0, 0, 0, 0, // query timeout IGNORE, IGNORE, IGNORE, IGNORE, // "default" - rank profile @@ -275,8 +275,9 @@ public class FastSearcherTestCase { // match: documentdb.searchdoctype => test 0, 0, 0, 5, 'm', 'a', 't', 'c', 'h', 0, 0, 0, 1, 0, 0, 0, 24, 'd', 'o', 'c', 'u', 'm', 'e', 'n', 't', 'd', 'b', '.', 's', 'e', 'a', 'r', 'c', 'h', 'd', 'o', 'c', 't', 'y', 'p', 'e', 0, 0, 0, 4, 't', 'e', 's', 't', // sessionId => qrserver.0.XXXXXXXXXXXXX.0 - 0, 0, 0, 6, 'c', 'a', 'c', 'h', 'e', 's', 0, 0, 0, 1, 0, 0, 0, 5, 'q', 'u', 'e', 'r', 'y', 0, 0, 0, 4, 't', 'r', 'u', 'e' - // no flags + 0, 0, 0, 6, 'c', 'a', 'c', 'h', 'e', 's', 0, 0, 0, 1, 0, 0, 0, 5, 'q', 'u', 'e', 'r', 'y', 0, 0, 0, 4, 't', 'r', 'u', 'e', + // flags + 0, 0, 0, 2 }; assertEquals(expected.length, actual.length); for (int i = 0; i < expected.length; ++i) { |