Skip to content

Commit 2060262

Browse files
Merge 7544c88 into openjdk23-bundle
2 parents 0631ea1 + 7544c88 commit 2060262

File tree

92 files changed

+1541
-1868
lines changed

Some content is hidden

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

92 files changed

+1541
-1868
lines changed

docs/changelog/115041.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
pr: 115041
2+
summary: Increase default `queue_capacity` to 10_000 and decrease max `queue_capacity`
3+
to 100_000
4+
area: Machine Learning
5+
type: enhancement
6+
issues: []

docs/changelog/115308.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
pr: 115308
2+
summary: "ESQL: Disable pushdown of WHERE past STATS"
3+
area: ES|QL
4+
type: bug
5+
issues:
6+
- 115281

docs/changelog/115359.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
pr: 115359
2+
summary: Adding support for simulate ingest mapping adddition for indices with mappings
3+
that do not come from templates
4+
area: Ingest Node
5+
type: enhancement
6+
issues: []

docs/reference/esql/functions/kibana/definition/to_date_nanos.json

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/reference/index.asciidoc

Lines changed: 40 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,41 +6,45 @@ include::links.asciidoc[]
66

77
include::landing-page.asciidoc[]
88

9-
include::release-notes/highlights.asciidoc[]
9+
// overview / install
1010

1111
include::intro.asciidoc[]
1212

1313
include::quickstart/index.asciidoc[]
1414

1515
include::setup.asciidoc[]
1616

17-
include::upgrade.asciidoc[]
17+
// search solution
1818

19-
include::index-modules.asciidoc[]
19+
include::search/search-your-data/search-your-data.asciidoc[]
2020

21-
include::mapping.asciidoc[]
21+
include::reranking/index.asciidoc[]
2222

23-
include::analysis.asciidoc[]
23+
// data management
24+
25+
include::index-modules.asciidoc[]
2426

2527
include::indices/index-templates.asciidoc[]
2628

27-
include::data-streams/data-streams.asciidoc[]
29+
include::alias.asciidoc[]
2830

29-
include::ingest.asciidoc[]
31+
include::mapping.asciidoc[]
3032

31-
include::alias.asciidoc[]
33+
include::analysis.asciidoc[]
3234

33-
include::search/search-your-data/search-your-data.asciidoc[]
35+
include::ingest.asciidoc[]
3436

35-
include::reranking/index.asciidoc[]
37+
include::connector/docs/index.asciidoc[]
3638

37-
include::query-dsl.asciidoc[]
39+
include::data-streams/data-streams.asciidoc[]
3840

39-
include::aggregations.asciidoc[]
41+
include::data-management.asciidoc[]
4042

41-
include::geospatial-analysis.asciidoc[]
43+
include::data-rollup-transform.asciidoc[]
4244

43-
include::connector/docs/index.asciidoc[]
45+
// analysis tools
46+
47+
include::query-dsl.asciidoc[]
4448

4549
include::eql/eql.asciidoc[]
4650

@@ -50,34 +54,48 @@ include::sql/index.asciidoc[]
5054

5155
include::scripting.asciidoc[]
5256

53-
include::data-management.asciidoc[]
57+
include::aggregations.asciidoc[]
5458

55-
include::autoscaling/index.asciidoc[]
59+
include::geospatial-analysis.asciidoc[]
60+
61+
include::watcher/index.asciidoc[]
62+
63+
// cluster management
5664

5765
include::monitoring/index.asciidoc[]
5866

59-
include::data-rollup-transform.asciidoc[]
67+
include::security/index.asciidoc[]
68+
69+
// production tasks
6070

6171
include::high-availability.asciidoc[]
6272

73+
include::how-to.asciidoc[]
74+
75+
include::autoscaling/index.asciidoc[]
76+
6377
include::snapshot-restore/index.asciidoc[]
6478

65-
include::security/index.asciidoc[]
79+
// reference
6680

67-
include::watcher/index.asciidoc[]
81+
include::rest-api/index.asciidoc[]
6882

6983
include::commands/index.asciidoc[]
7084

71-
include::how-to.asciidoc[]
72-
7385
include::troubleshooting.asciidoc[]
7486

75-
include::rest-api/index.asciidoc[]
87+
// upgrades
88+
89+
include::upgrade.asciidoc[]
7690

7791
include::migration/index.asciidoc[]
7892

93+
include::release-notes/highlights.asciidoc[]
94+
7995
include::release-notes.asciidoc[]
8096

8197
include::dependencies-versions.asciidoc[]
8298

99+
// etc
100+
83101
include::redirects.asciidoc[]

docs/reference/release-notes/highlights.asciidoc

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1+
[chapter]
12
[[release-highlights]]
2-
== What's new in {minor-version}
3+
= What's new in {minor-version}
34

45
coming::[{minor-version}]
56

@@ -37,7 +38,7 @@ endif::[]
3738

3839
[discrete]
3940
[[esql_inlinestats]]
40-
=== ESQL: INLINESTATS
41+
== ESQL: INLINESTATS
4142
This adds the `INLINESTATS` command to ESQL which performs a STATS and
4243
then enriches the results into the output stream. So, this query:
4344

@@ -62,7 +63,7 @@ Produces output like:
6263

6364
[discrete]
6465
[[always_allow_rebalancing_by_default]]
65-
=== Always allow rebalancing by default
66+
== Always allow rebalancing by default
6667
In earlier versions of {es} the `cluster.routing.allocation.allow_rebalance` setting defaults to
6768
`indices_all_active` which blocks all rebalancing moves while the cluster is in `yellow` or `red` health. This was
6869
appropriate for the legacy allocator which might do too many rebalancing moves otherwise. Today's allocator has
@@ -74,7 +75,7 @@ version 8.16 `allow_rebalance` setting defaults to `always` unless the legacy al
7475

7576
[discrete]
7677
[[add_global_retention_in_data_stream_lifecycle]]
77-
=== Add global retention in data stream lifecycle
78+
== Add global retention in data stream lifecycle
7879
Data stream lifecycle now supports configuring retention on a cluster level,
7980
namely global retention. Global retention \nallows us to configure two different
8081
retentions:
@@ -88,7 +89,7 @@ data stream lifecycle and it allows any data stream \ndata to be deleted after t
8889

8990
[discrete]
9091
[[enable_zstandard_compression_for_indices_with_index_codec_set_to_best_compression]]
91-
=== Enable ZStandard compression for indices with index.codec set to best_compression
92+
== Enable ZStandard compression for indices with index.codec set to best_compression
9293
Before DEFLATE compression was used to compress stored fields in indices with index.codec index setting set to
9394
best_compression, with this change ZStandard is used as compression algorithm to stored fields for indices with
9495
index.codec index setting set to best_compression. The usage ZStandard results in less storage usage with a

modules/ingest-geoip/src/main/java/org/elasticsearch/ingest/geoip/GeoIpDownloaderTaskExecutor.java

Lines changed: 38 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,14 @@
4343
import org.elasticsearch.threadpool.ThreadPool;
4444
import org.elasticsearch.transport.RemoteTransportException;
4545

46+
import java.util.Collections;
47+
import java.util.HashSet;
4648
import java.util.List;
4749
import java.util.Map;
4850
import java.util.Objects;
4951
import java.util.Set;
5052
import java.util.concurrent.atomic.AtomicBoolean;
5153
import java.util.concurrent.atomic.AtomicReference;
52-
import java.util.stream.Collectors;
5354

5455
import static org.elasticsearch.ingest.geoip.GeoIpDownloader.DATABASES_INDEX;
5556
import static org.elasticsearch.ingest.geoip.GeoIpDownloader.GEOIP_DOWNLOADER;
@@ -238,14 +239,11 @@ public void clusterChanged(ClusterChangedEvent event) {
238239
}
239240

240241
static boolean hasAtLeastOneGeoipProcessor(ClusterState clusterState) {
241-
if (pipelineConfigurationsWithGeoIpProcessor(clusterState, true).isEmpty() == false) {
242+
if (pipelinesWithGeoIpProcessor(clusterState, true).isEmpty() == false) {
242243
return true;
243244
}
244245

245-
Set<String> checkReferencedPipelines = pipelineConfigurationsWithGeoIpProcessor(clusterState, false).stream()
246-
.map(PipelineConfiguration::getId)
247-
.collect(Collectors.toSet());
248-
246+
final Set<String> checkReferencedPipelines = pipelinesWithGeoIpProcessor(clusterState, false);
249247
if (checkReferencedPipelines.isEmpty()) {
250248
return false;
251249
}
@@ -258,22 +256,24 @@ static boolean hasAtLeastOneGeoipProcessor(ClusterState clusterState) {
258256
}
259257

260258
/**
261-
* Retrieve list of pipelines that have at least one geoip processor.
259+
* Retrieve the set of pipeline ids that have at least one geoip processor.
262260
* @param clusterState Cluster state.
263261
* @param downloadDatabaseOnPipelineCreation Filter the list to include only pipeline with the download_database_on_pipeline_creation
264262
* matching the param.
265-
* @return A list of {@link PipelineConfiguration} matching criteria.
263+
* @return A set of pipeline ids matching criteria.
266264
*/
267265
@SuppressWarnings("unchecked")
268-
private static List<PipelineConfiguration> pipelineConfigurationsWithGeoIpProcessor(
269-
ClusterState clusterState,
270-
boolean downloadDatabaseOnPipelineCreation
271-
) {
272-
List<PipelineConfiguration> pipelineDefinitions = IngestService.getPipelines(clusterState);
273-
return pipelineDefinitions.stream().filter(pipelineConfig -> {
274-
List<Map<String, Object>> processors = (List<Map<String, Object>>) pipelineConfig.getConfigAsMap().get(Pipeline.PROCESSORS_KEY);
275-
return hasAtLeastOneGeoipProcessor(processors, downloadDatabaseOnPipelineCreation);
276-
}).toList();
266+
private static Set<String> pipelinesWithGeoIpProcessor(ClusterState clusterState, boolean downloadDatabaseOnPipelineCreation) {
267+
List<PipelineConfiguration> configurations = IngestService.getPipelines(clusterState);
268+
Set<String> ids = new HashSet<>();
269+
// note: this loop is unrolled rather than streaming-style because it's hot enough to show up in a flamegraph
270+
for (PipelineConfiguration configuration : configurations) {
271+
List<Map<String, Object>> processors = (List<Map<String, Object>>) configuration.getConfigAsMap().get(Pipeline.PROCESSORS_KEY);
272+
if (hasAtLeastOneGeoipProcessor(processors, downloadDatabaseOnPipelineCreation)) {
273+
ids.add(configuration.getId());
274+
}
275+
}
276+
return Collections.unmodifiableSet(ids);
277277
}
278278

279279
/**
@@ -283,7 +283,15 @@ private static List<PipelineConfiguration> pipelineConfigurationsWithGeoIpProces
283283
* @return true if a geoip processor is found in the processor list.
284284
*/
285285
private static boolean hasAtLeastOneGeoipProcessor(List<Map<String, Object>> processors, boolean downloadDatabaseOnPipelineCreation) {
286-
return processors != null && processors.stream().anyMatch(p -> hasAtLeastOneGeoipProcessor(p, downloadDatabaseOnPipelineCreation));
286+
if (processors != null) {
287+
// note: this loop is unrolled rather than streaming-style because it's hot enough to show up in a flamegraph
288+
for (Map<String, Object> processor : processors) {
289+
if (hasAtLeastOneGeoipProcessor(processor, downloadDatabaseOnPipelineCreation)) {
290+
return true;
291+
}
292+
}
293+
}
294+
return false;
287295
}
288296

289297
/**
@@ -317,7 +325,7 @@ private static boolean hasAtLeastOneGeoipProcessor(Map<String, Object> processor
317325
}
318326

319327
/**
320-
* Check if a processor config is has an on_failure clause containing at least a geoip processor.
328+
* Check if a processor config has an on_failure clause containing at least a geoip processor.
321329
* @param processor Processor config.
322330
* @param downloadDatabaseOnPipelineCreation Should the download_database_on_pipeline_creation of the geoip processor be true or false.
323331
* @return true if a geoip processor is found in the processor list.
@@ -327,16 +335,17 @@ private static boolean isProcessorWithOnFailureGeoIpProcessor(
327335
Map<String, Object> processor,
328336
boolean downloadDatabaseOnPipelineCreation
329337
) {
330-
return processor != null
331-
&& processor.values()
332-
.stream()
333-
.anyMatch(
334-
value -> value instanceof Map
335-
&& hasAtLeastOneGeoipProcessor(
336-
((Map<String, List<Map<String, Object>>>) value).get("on_failure"),
337-
downloadDatabaseOnPipelineCreation
338-
)
339-
);
338+
// note: this loop is unrolled rather than streaming-style because it's hot enough to show up in a flamegraph
339+
for (Object value : processor.values()) {
340+
if (value instanceof Map
341+
&& hasAtLeastOneGeoipProcessor(
342+
((Map<String, List<Map<String, Object>>>) value).get("on_failure"),
343+
downloadDatabaseOnPipelineCreation
344+
)) {
345+
return true;
346+
}
347+
}
348+
return false;
340349
}
341350

342351
/**

modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/extras/MatchOnlyTextFieldMapper.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -364,8 +364,7 @@ public BlockLoader blockLoader(BlockLoaderContext blContext) {
364364
SourceValueFetcher fetcher = SourceValueFetcher.toString(blContext.sourcePaths(name()));
365365
// MatchOnlyText never has norms, so we have to use the field names field
366366
BlockSourceReader.LeafIteratorLookup lookup = BlockSourceReader.lookupFromFieldNames(blContext.fieldNames(), name());
367-
var sourceMode = blContext.indexSettings().getIndexMappingSourceMode();
368-
return new BlockSourceReader.BytesRefsBlockLoader(fetcher, lookup, sourceMode);
367+
return new BlockSourceReader.BytesRefsBlockLoader(fetcher, lookup);
369368
}
370369

371370
@Override

modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/extras/ScaledFloatFieldMapper.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -319,8 +319,7 @@ public BlockLoader blockLoader(BlockLoaderContext blContext) {
319319
BlockSourceReader.LeafIteratorLookup lookup = isStored() || isIndexed()
320320
? BlockSourceReader.lookupFromFieldNames(blContext.fieldNames(), name())
321321
: BlockSourceReader.lookupMatchingAll();
322-
var sourceMode = blContext.indexSettings().getIndexMappingSourceMode();
323-
return new BlockSourceReader.DoublesBlockLoader(valueFetcher, lookup, sourceMode);
322+
return new BlockSourceReader.DoublesBlockLoader(valueFetcher, lookup);
324323
}
325324

326325
@Override

0 commit comments

Comments
 (0)