Skip to content

Commit d304ed6

Browse files
authored
Merge branch 'main' into resharding_search_filters_2
2 parents 57e697e + 21c9c3e commit d304ed6

File tree

728 files changed

+21644
-14829
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

728 files changed

+21644
-14829
lines changed

benchmarks/src/main/java/org/elasticsearch/benchmark/vector/OptimizedScalarQuantizerBenchmark.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public class OptimizedScalarQuantizerBenchmark {
4242
int dims;
4343

4444
float[] vector;
45+
float[] scratch;
4546
float[] centroid;
4647
int[] destination;
4748

@@ -57,6 +58,7 @@ public void init() {
5758
destination = new int[dims];
5859
vector = new float[dims];
5960
centroid = new float[dims];
61+
scratch = new float[dims];
6062
for (int i = 0; i < dims; ++i) {
6163
vector[i] = random.nextFloat();
6264
centroid[i] = random.nextFloat();
@@ -65,14 +67,14 @@ public void init() {
6567

6668
@Benchmark
6769
public int[] scalar() {
68-
osq.scalarQuantize(vector, destination, bits, centroid);
70+
osq.scalarQuantize(vector, scratch, destination, bits, centroid);
6971
return destination;
7072
}
7173

7274
@Benchmark
7375
@Fork(jvmArgsPrepend = { "--add-modules=jdk.incubator.vector" })
7476
public int[] vector() {
75-
osq.scalarQuantize(vector, destination, bits, centroid);
77+
osq.scalarQuantize(vector, scratch, destination, bits, centroid);
7678
return destination;
7779
}
7880
}

build-conventions/src/main/java/org/elasticsearch/gradle/internal/conventions/VersionPropertiesBuildService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import java.util.Properties;
2323
import javax.inject.Inject;
2424

25-
abstract class VersionPropertiesBuildService implements BuildService<VersionPropertiesBuildService.Params>, AutoCloseable {
25+
public abstract class VersionPropertiesBuildService implements BuildService<VersionPropertiesBuildService.Params>, AutoCloseable {
2626

2727
private final Properties properties;
2828

build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/transport/TransportVersionGenerationFuncTest.groovy

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,4 +443,46 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
443443
assertUpperBound("9.2", "new_tv,8124000")
444444
assertReferableDefinition("new_tv", "8124000")
445445
}
446+
447+
def "alternate upper bound larger"() {
448+
given:
449+
referencedTransportVersion("new_tv")
450+
file("myserver/alt_upper_bound.csv").text = "some_tv,8126000"
451+
file("myserver/build.gradle") << """
452+
tasks.named('generateTransportVersionDefinition') {
453+
alternateUpperBoundFile = project.file("alt_upper_bound.csv")
454+
}
455+
tasks.named('validateTransportVersionResources') {
456+
shouldValidateDensity = false
457+
}
458+
"""
459+
460+
when:
461+
def result = runGenerateAndValidateTask().build()
462+
then:
463+
assertGenerateAndValidateSuccess(result)
464+
assertUpperBound("9.2", "new_tv,8127000")
465+
assertReferableDefinition("new_tv", "8127000")
466+
}
467+
468+
def "alternate upper bound less"() {
469+
given:
470+
referencedTransportVersion("new_tv")
471+
file("myserver/alt_upper_bound.csv").text = "some_tv,8122100"
472+
file("myserver/build.gradle") << """
473+
tasks.named('generateTransportVersionDefinition') {
474+
alternateUpperBoundFile = project.file("alt_upper_bound.csv")
475+
}
476+
tasks.named('validateTransportVersionResources') {
477+
shouldValidateDensity = false
478+
}
479+
"""
480+
481+
when:
482+
def result = runGenerateAndValidateTask().build()
483+
then:
484+
assertGenerateAndValidateSuccess(result)
485+
assertUpperBound("9.2", "new_tv,8124000")
486+
assertReferableDefinition("new_tv", "8124000")
487+
}
446488
}

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/GenerateTransportVersionDefinitionTask.java

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@
1111

1212
import org.gradle.api.DefaultTask;
1313
import org.gradle.api.file.ConfigurableFileCollection;
14+
import org.gradle.api.file.RegularFileProperty;
1415
import org.gradle.api.provider.Property;
1516
import org.gradle.api.services.ServiceReference;
1617
import org.gradle.api.tasks.Input;
18+
import org.gradle.api.tasks.InputFile;
1719
import org.gradle.api.tasks.InputFiles;
1820
import org.gradle.api.tasks.Optional;
1921
import org.gradle.api.tasks.PathSensitive;
@@ -22,6 +24,9 @@
2224
import org.gradle.api.tasks.options.Option;
2325

2426
import java.io.IOException;
27+
import java.nio.charset.StandardCharsets;
28+
import java.nio.file.Files;
29+
import java.nio.file.Path;
2530
import java.util.ArrayList;
2631
import java.util.Collections;
2732
import java.util.HashSet;
@@ -74,6 +79,14 @@ public abstract class GenerateTransportVersionDefinitionTask extends DefaultTask
7479
@Input
7580
public abstract Property<String> getCurrentUpperBoundName();
7681

82+
/**
83+
* An additional upper bound file that will be consulted when generating a transport version.
84+
* The larger of this and the current upper bound will be used to create the new primary id.
85+
*/
86+
@InputFile
87+
@Optional
88+
public abstract RegularFileProperty getAlternateUpperBoundFile();
89+
7790
@TaskAction
7891
public void run() throws IOException {
7992
TransportVersionResourcesService resources = getResourceService().get();
@@ -119,7 +132,7 @@ private List<TransportVersionId> updateUpperBounds(
119132
if (targetId == null) {
120133
// Case: an id doesn't yet exist for this upper bound, so create one
121134
int targetIncrement = upperBoundName.equals(currentUpperBoundName) ? increment : 1;
122-
targetId = TransportVersionId.fromInt(existingUpperBound.definitionId().complete() + targetIncrement);
135+
targetId = createTargetId(existingUpperBound, targetIncrement);
123136
var newUpperBound = new TransportVersionUpperBound(upperBoundName, definitionName, targetId);
124137
resources.writeUpperBound(newUpperBound);
125138
}
@@ -237,4 +250,21 @@ private TransportVersionId maybeGetExistingId(
237250
return null; // no existing id for this upper bound
238251
}
239252

253+
private TransportVersionId createTargetId(TransportVersionUpperBound existingUpperBound, int increment) throws IOException {
254+
int currentId = existingUpperBound.definitionId().complete();
255+
256+
// allow for an alternate upper bound file to be consulted. This supports Serverless basing its
257+
// own transport version ids on the greater of server or serverless
258+
if (getAlternateUpperBoundFile().isPresent()) {
259+
Path altUpperBoundPath = getAlternateUpperBoundFile().get().getAsFile().toPath();
260+
String contents = Files.readString(altUpperBoundPath, StandardCharsets.UTF_8);
261+
var altUpperBound = TransportVersionUpperBound.fromString(altUpperBoundPath, contents);
262+
if (altUpperBound.definitionId().complete() > currentId) {
263+
currentId = altUpperBound.definitionId().complete();
264+
}
265+
}
266+
267+
return TransportVersionId.fromInt(currentId + increment);
268+
}
269+
240270
}

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/TransportVersionReferencesPlugin.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
package org.elasticsearch.gradle.internal.transport;
1111

1212
import org.elasticsearch.gradle.internal.ProjectSubscribeServicePlugin;
13+
import org.elasticsearch.gradle.internal.conventions.precommit.PrecommitPlugin;
14+
import org.elasticsearch.gradle.internal.conventions.precommit.PrecommitTaskPlugin;
1315
import org.elasticsearch.gradle.util.GradleUtils;
1416
import org.gradle.api.Plugin;
1517
import org.gradle.api.Project;
@@ -23,6 +25,7 @@ public class TransportVersionReferencesPlugin implements Plugin<Project> {
2325
@Override
2426
public void apply(Project project) {
2527
project.getPluginManager().apply(LifecycleBasePlugin.class);
28+
project.getPluginManager().apply(PrecommitTaskPlugin.class);
2629

2730
project.getPlugins()
2831
.apply(ProjectSubscribeServicePlugin.class)
@@ -50,6 +53,6 @@ public void apply(Project project) {
5053
t.setDescription("Validates that all TransportVersion references used in the project have an associated definition file");
5154
t.getReferencesFile().set(collectTask.get().getOutputFile());
5255
});
53-
project.getTasks().named(LifecycleBasePlugin.CHECK_TASK_NAME).configure(t -> t.dependsOn(validateTask));
56+
project.getTasks().named(PrecommitPlugin.PRECOMMIT_TASK_NAME).configure(t -> t.dependsOn(validateTask));
5457
}
5558
}

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/TransportVersionResourcesPlugin.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import org.elasticsearch.gradle.Version;
1313
import org.elasticsearch.gradle.internal.ProjectSubscribeServicePlugin;
1414
import org.elasticsearch.gradle.internal.conventions.VersionPropertiesPlugin;
15+
import org.elasticsearch.gradle.internal.conventions.precommit.PrecommitPlugin;
16+
import org.elasticsearch.gradle.internal.conventions.precommit.PrecommitTaskPlugin;
1517
import org.gradle.api.Plugin;
1618
import org.gradle.api.Project;
1719
import org.gradle.api.file.Directory;
@@ -30,6 +32,7 @@ public class TransportVersionResourcesPlugin implements Plugin<Project> {
3032
public void apply(Project project) {
3133
project.getPluginManager().apply(LifecycleBasePlugin.class);
3234
project.getPluginManager().apply(VersionPropertiesPlugin.class);
35+
project.getPluginManager().apply(PrecommitTaskPlugin.class);
3336
var psService = project.getPlugins().apply(ProjectSubscribeServicePlugin.class).getService();
3437

3538
Properties versions = (Properties) project.getExtensions().getByName(VersionPropertiesPlugin.VERSIONS_EXT);
@@ -67,7 +70,7 @@ public void apply(Project project) {
6770
t.getShouldValidateDensity().convention(true);
6871
t.getShouldValidatePrimaryIdNotPatch().convention(true);
6972
});
70-
project.getTasks().named(LifecycleBasePlugin.CHECK_TASK_NAME).configure(t -> t.dependsOn(validateTask));
73+
project.getTasks().named(PrecommitPlugin.PRECOMMIT_TASK_NAME).configure(t -> t.dependsOn(validateTask));
7174

7275
var generateManifestTask = project.getTasks()
7376
.register("generateTransportVersionManifest", GenerateTransportVersionManifestTask.class, t -> {

docs/changelog/133446.yaml

Lines changed: 0 additions & 5 deletions
This file was deleted.

docs/changelog/133720.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 133720
2+
summary: Support querying multiple indices with the simplified linear retriever
3+
area: Relevance
4+
type: enhancement
5+
issues: []

docs/changelog/133860.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
pr: 133860
2+
summary: Cache Inference Endpoints
3+
area: Machine Learning
4+
type: enhancement
5+
issues:
6+
- 133135

docs/changelog/134134.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
pr: 134134
2+
summary: Prevent field caps from failing due to can match failure
3+
area: Search
4+
type: bug
5+
issues:
6+
- 116106

0 commit comments

Comments
 (0)