diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-04-19 09:58:55 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-19 09:58:55 +0200 |
commit | 4143fbfef4208f4d3b7b6410283a8d7e1e79646c (patch) | |
tree | 01e367f7a1564321b44576f191fbaf20d7c4352f | |
parent | af511c60f999ba1a60f4aa3ed2443c86e4ae01b2 (diff) | |
parent | 0be94de0507cd72b511b02c863430cd04cef466f (diff) |
Merge pull request #26775 from vespa-engine/balder/allow-chunks-larger-than-1k
Balder/allow chunks larger than 1k
2 files changed, 25 insertions, 46 deletions
diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java index 2a688ad078b..28e475b8370 100644 --- a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java +++ b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java @@ -526,23 +526,18 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler { parameters = getProperty(request, TIMEOUT, timeoutMillisParser).map(clock.instant()::plusMillis) .map(parameters::withDeadline) .orElse(parameters); - for (String name : names) switch (name) { - case CLUSTER: - parameters = getProperty(request, CLUSTER).map(cluster -> resolveCluster(Optional.of(cluster), clusters).name()) - .map(parameters::withRoute) - .orElse(parameters); - break; - case FIELD_SET: - parameters = getProperty(request, FIELD_SET).map(parameters::withFieldSet) - .orElse(parameters); - break; - case ROUTE: - parameters = getProperty(request, ROUTE).map(parameters::withRoute) - .orElse(parameters); - break; - default: - throw new IllegalArgumentException("Unrecognized document operation parameter name '" + name + "'"); - } + for (String name : names) + parameters = switch (name) { + case CLUSTER -> + getProperty(request, CLUSTER) + .map(cluster -> resolveCluster(Optional.of(cluster), clusters).name()) + .map(parameters::withRoute) + .orElse(parameters); + case FIELD_SET -> getProperty(request, FIELD_SET).map(parameters::withFieldSet).orElse(parameters); + case ROUTE -> getProperty(request, ROUTE).map(parameters::withRoute).orElse(parameters); + default -> + throw new IllegalArgumentException("Unrecognized document operation parameter name '" + name + "'"); + }; return parameters; } @@ -630,10 +625,6 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler { private boolean first = true; private ContentChannel channel; - private JsonResponse(ResponseHandler handler) throws IOException { - this(handler, null); - } - private JsonResponse(ResponseHandler handler, HttpRequest request) throws IOException { this.handler = handler; this.request = request; @@ -642,11 +633,6 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler { } /** Creates a new JsonResponse with path and id fields written. */ - static JsonResponse create(DocumentPath path, ResponseHandler handler) throws IOException { - return create(path, handler, null); - } - - /** Creates a new JsonResponse with path and id fields written. */ static JsonResponse create(DocumentPath path, ResponseHandler handler, HttpRequest request) throws IOException { JsonResponse response = new JsonResponse(handler, request); response.writePathId(path.rawPath()); @@ -749,23 +735,17 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler { } private boolean tensorShortForm() { - if (request != null && - request.parameters().containsKey("format.tensors") && - ( request.parameters().get("format.tensors").contains("long") - || request.parameters().get("format.tensors").contains("long-value"))) { - return false; - } - return true; // default + return request == null || + !request.parameters().containsKey("format.tensors") || + (!request.parameters().get("format.tensors").contains("long") + && !request.parameters().get("format.tensors").contains("long-value"));// default } private boolean tensorDirectValues() { - if (request != null && - request.parameters().containsKey("format.tensors") && - ( request.parameters().get("format.tensors").contains("short-value") - || request.parameters().get("format.tensors").contains("long-value"))) { - return true; - } - return false; // TODO: Flip default on Vespa 9 + return request != null && + request.parameters().containsKey("format.tensors") && + (request.parameters().get("format.tensors").contains("short-value") + || request.parameters().get("format.tensors").contains("long-value"));// TODO: Flip default on Vespa 9 } synchronized void writeSingleDocument(Document document) throws IOException { @@ -1168,9 +1148,8 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler { // ------------------------------------------------- Visits ------------------------------------------------ private VisitorParameters parseGetParameters(HttpRequest request, DocumentPath path, boolean streamed) { - int wantedDocumentCount = Math.min(streamed ? Integer.MAX_VALUE : 1 << 10, - getProperty(request, WANTED_DOCUMENT_COUNT, integerParser) - .orElse(streamed ? Integer.MAX_VALUE : 1)); + int wantedDocumentCount = getProperty(request, WANTED_DOCUMENT_COUNT, integerParser) + .orElse(streamed ? Integer.MAX_VALUE : 1 << 10); if (wantedDocumentCount <= 0) throw new IllegalArgumentException("wantedDocumentCount must be positive"); @@ -1546,11 +1525,11 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler { private static Map<String, StorageCluster> parseClusters(ClusterListConfig clusters, AllClustersBucketSpacesConfig buckets) { return clusters.storage().stream() - .collect(toUnmodifiableMap(storage -> storage.name(), + .collect(toUnmodifiableMap(ClusterListConfig.Storage::name, storage -> new StorageCluster(storage.name(), buckets.cluster(storage.name()) .documentType().entrySet().stream() - .collect(toMap(entry -> entry.getKey(), + .collect(toMap(Map.Entry::getKey, entry -> entry.getValue().bucketSpace()))))); } diff --git a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java index 851a0949266..7696fd2196c 100644 --- a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java +++ b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java @@ -217,7 +217,7 @@ public class DocumentV1ApiTest { access.expect(parameters -> { assertEquals("content", parameters.getRoute().toString()); assertEquals("default", parameters.getBucketSpace()); - assertEquals(1024, parameters.getMaxTotalHits()); + assertEquals(1025, parameters.getMaxTotalHits()); assertEquals(100, ((StaticThrottlePolicy) parameters.getThrottlePolicy()).getMaxPendingCount()); assertEquals("[id]", parameters.getFieldSet()); assertEquals("(all the things)", parameters.getDocumentSelection()); |