Releases: opensearch-project/OpenSearch
Releases 路 opensearch-project/OpenSearch
Release list
3.8.0
Immutable
release. Only release title and notes can be modified.
Version 3.8.0 Release Notes
Compatible with OpenSearch and OpenSearch Dashboards version 3.8.0
Features
- Add API to modify a data stream's backing indices (
POST /_data_stream/_modify) (#22487) - Add
multivalue_doc_countaggregation that returns the number of documents with two or more values (#20472) - Add pull-based ingestion from Hive tables via new
ingestion-hiveplugin (#21700) - Add support for HTTP/3 on the client side via JDK HttpClient (#21718)
- Add gRPC support for Point-in-Time (PIT) create and delete operations (#22105)
- Add gRPC API support for
extra_field_valuesin bulk requests (#21907) - Add cross-cluster streaming support to the remote cluster client via Arrow Flight (#22359)
- Add coordinator-side index-level field domain pruning before
can_matchfor faster time-range queries (#21865) - Add bulkscorer script processing interface in ScriptScore query for bulk scoring optimizations (#22423)
- Add process-wide ObjectInputFilter to reject Java deserialization by default, gated behind
bootstrap.serial_filtersetting (#22073) - Add cluster-level default setting for delayed shard allocation timeout (
cluster.routing.allocation.unassigned.node_left.delayed_timeout) (#22379)
Enhancements
- Add HTTP request body decompression (gzip/deflate) to reactor-netty4 transport (#22382)
- Add cross-setting validator to prevent cluster-manager crash loop when both balance factors are set to zero (#22391)
- Add support for double, int, and long types in ExtraFieldValue for gRPC bulk indexing (#22058)
- Add timing logs for repository create, update, and delete operations (#22489)
- Add parent action name to
ProcessorGenerationContextfor conditional system-generated processor logic (#22195) - Add getter for remote translog transfer tracker to enable plugin access to tracking metrics (#22453)
- Deprecate
RestClientin favor of the internal HTTP client (#22116) - Disable Mustache partial template resolution in search templates (#22438)
- Use binary serialization for resource usage headers to reduce CPU overhead on the search path (#21230)
- Preserve resolved search pipeline id and inline pipeline source through query rewrite (#22501)
- Fork
GET _aliasesserialization to MANAGEMENT thread pool to avoid blocking transport threads (#21954) - Strengthen
scroll_idvalidation to prevent OOM from crafted scroll IDs (#22396) - Add depth tracking to recursive deserialization to prevent StackOverflowError (#22404)
- Validate
base_pathin FsRepository to prevent path traversal outsidepath.repo(#22328) - Add path boundary validation in
resolveAnalyzerPathto prevent directory traversal (#22094) - Register snapshot resilience settings (
snapshot.repository.io_timeout,max_outstanding_ops,cleanup_stale_blobs) (#22516) - Wire
request_timeoutinto S3 sync client to prevent indefinite hangs on degraded stores (#22479) - Separate internal ignore settings from user ignore settings during snapshot restore (#20494)
- Validate
total_primary_shards_per_nodeon index templates against the cluster instead of index-local flag (#22203) - Rollover
checkBlocknow scoped to write index only, skipping non-write alias members (#21838)
Bug Fixes
- Fix
OpenSearchTimeoutExceptionto return HTTP 504 instead of 500 (#22064) - Fix
ClassCastExceptionon malformed mappings in create index to return 400 instead of 500 (#22371) - Fix NPE for search-only indices without primaries in cluster allocation explain and bulk shard selection (#22097)
- Fix NPE in S3 multipart upload when
provideStream()throws, and fix shared segment array corruption (#22309) - Fix
ReplicationCheckpoint.compareToto return 0 for equal checkpoints, preventing TimSort crash during shard allocation (#22376) - Fix negative
os.cpu.percenton cgroup v2 containers by granting read access to/sys/fs/cgroup/cpu.stat(#22408) - Fix snapshot listing failing on repositories containing legacy Elasticsearch snapshots (#22193)
- Fix default SSE type to send
AES256header, preventing silent snapshot failures on buckets requiring encryption (#22144) - Fix default replica count resolution from node settings (
opensearch.yml) (#22334) - Fix
filterrewrite crash with sub-aggregations indate_histogramwhen segment contains out-of-range documents (#22390) - Fix V1 template merge regression that broke dynamic object inheritance for dotted field paths (#22515)
- Fix
disable_objectsarray parsing to preserve dotted field names (#22127) - Fix field resolution for dotted fields under
disable_objects(#21929) - Fix
NestedQueryBuilder.visit()to recursively visit child query tree (#22196) - Fix
InputStreamleak when loading hyphenation patterns in analysis-common (#22508) - Fix
_cat/nodesAPI showing negative values in cpu stats when perf counters are unavailable (#22074) - Fix global ordinals to properly trip fielddata circuit breaker (#22129)
- Restore default max nesting depth to 1000 and decouple stream depth limit from XContent limit (#22486)
- Fix unbounded recursion in deserialization that can cause StackOverflowError (#22404)
Maintenance
- Bump
bc-fipsto 2.1.3 to fix CVE-2026-8149 (#22537) - Upgrade Jackson 2 to 2.22.1 to resolve CVE-2026-54515 (#22476)
- Bump Hadoop from 3.4.2 to 3.5.0 to resolve CVE-2026-2332 (#22362)
- Update Jackson to 3.2.1 (#22497)
- Update Netty to 4.2.16.Final (#22403)
- Update OpenTelemetry to 1.63.0 (#22111)
- Update Project Reactor to 3.8.6 and Reactor Netty to 1.3.6 (#22059)
- Upgrade Lucene to 10.5.0 (#22322)
- Accommodate JDK-26 related changes with respect to HttpClient behavior (#22386)
- Remove
OpenSearchYamlFactory/OpenSearchYamlParserafter Jackson 3.2.0 update (#22147)
2.19.6
Version 2.19.6 Release Notes
Compatible with OpenSearch and OpenSearch Dashboards version 2.19.6
Bug Fixes
- Fix hang in bulk request when index is deleted during primary phase (#21305)
- Fix case insensitive and escaped query on wildcard fields (#20870)
- Fix array index out of bounds exception with wildcard fields and aggregations (#20862)
- Harden circuit breaker and failure handling logic to prevent negative estimated limits in query result consumer (#20769)
- Prevent negative fielddata stats by guarding against stale removals after shard reallocation (#22016)
Maintenance
- Update Netty to 4.1.135.Final (#21968)
- Bump org.apache.avro:avro to 1.12.1 (#22350)
- Bump Bouncy Castle (bcprov/bcpkix-jdk18on) to 1.84 (#22296)
- Bump ZooKeeper to 3.9.5 (#22296)
- Bump plexus-utils to 3.6.1 (#22296)
- Bump log4j to 2.25.4 (#22292)
- Bump Jetty to 9.4.58 (#22292)
- Bump maven-model to 3.9.16 (#22292)
- Bump plexus-xml to 3.0.1 (#22292)
- Bump commons-configuration2 to 2.15.0 (#22292)
- Bump jsoup to 1.22.2 (#22292)
- Bump Jackson to 2.18.8 (#22292)
- Bump reactor-netty to 1.2.18 (#22292)
- Bump reactor-core to 3.7.19 (#22292)
- Update bundled JDK to JDK 21.0.11+10 (#21419)
3.7.0
Version 3.7.0 Release Notes
Compatible with OpenSearch and OpenSearch Dashboards version 3.7.0
Features
- Add dynamic properties support for pattern-based field definitions without cluster state mapping updates (#20816)
- Add pluggable data format engine with DataFormatAwareEngine for multi-format indexing (#21181)
- Add Lucene engine implementation for pluggable data formats (#21299)
- Add merge support for Parquet data format plugin via streaming k-way merge sort (#21079)
- Add directory and IndexInput layers for WritableWarm tiered storage (#21178)
- Add server-side implementation for tiering status APIs (GetTieringStatus and ListTieringStatus) (#21220)
- Add server-side implementation for HotToWarm, WarmToHot, and CancelTiering APIs (#21295)
- Add prefetch settings and stored fields prefetch for WritableWarm tiered storage (#21285)
- Add slow logs, per-query metrics, and migration metrics for WritableWarm tiered storage (#21332)
- Add module wiring and integration tests for WritableWarm tiered storage (#21427)
- Add tiered object storage crate for warm node file routing (#21204)
- Add event-driven scheduler and stage execution for analytics engine (#21242)
- Add coordinator-side DataFusion reduce with streaming Arrow batches (#21356)
- Add distributed aggregation with partial/final mode for analytics engine (#21457)
- Add distributed join planning and execution for analytics engine (#21639)
- Add PPL
appendcommand support with multi-child stage runtime for Union (#21474) - Add PPL
dedupcommand support via ROW_NUMBER window function (#21622) - Add PPL
eventstatsandstreamstatswindow function support (#21734) - Add PPL
topandrarecommand support via window functions (#21593) - Add PPL
parsecommand with regex mode via Rust UDFs (#21573) - Add PPL
rexcommand with sed and extract modes (#21550) - Add PPL
spathcommand with auto-extract mode via json_extract_all UDF (#21664) - Add 7 PPL JSON scalar functions to analytics engine route (#21513)
- Add 23 PPL datetime scalar functions to analytics engine route (#21556)
- Add 14 additional PPL datetime functions (Wave A) including strftime, date_format, maketime (#21582)
- Add 30+ PPL math scalar functions to analytics engine (#21520)
- Add PPL string scalar functions to analytics engine (18 functions) (#21543)
- Add PPL conditional functions (coalesce, isempty, isblank, case, if, ifnull) to analytics engine (#21643)
- Add PPL conversion scalar functions (num, auto, memk, rmcomma, dur2sec, ctime, mktime) to analytics engine (#21628)
- Add PPL cryptographic functions (md5, sha1, sha2, crc32) to analytics engine (#21611)
- Add PPL array constructor and 8 multivalue functions to analytics engine (#21554)
- Add PPL bucketing scalars (span_bucket, width_bucket, minspan_bucket, range_bucket) (#21621)
- Add PPL TAKE, FIRST, LAST, LIST, VALUES aggregate functions (#21731)
- Add Lucene filter delegation from DataFusion for full-text search predicates (#21555)
- Add performance delegation to Lucene for selective filter predicates (#21701)
- Add native Arrow transport path with zero-copy transfer for stream transport (#21253)
- Stream Arrow batches on data-node fragment execution path (#21418)
- Add support for
extra_fieldsoutside_sourceindexing for improved vector ingestion throughput (#20635) - Add gRPC support for Min, Max, and Terms aggregations (#21205)
- Add partition strategy setting for flexible shard-to-partition mapping in pull-based ingestion (#21165)
- Add SplitToFieldsProcessor for distributing split values to target fields (#21216)
- Add native memory based admission control for transport request throttling (#21191)
- Add native memory search backpressure for off-heap query cancellation (#21647)
- Add unified native allocator framework for Arrow allocations with elastic rebalancing (#21703)
- Add on-demand jemalloc heap profiling support via JMX CLI tool (#21599)
- Add
search.max_bucketsto workload group settings for per-tenant bucket limits (#21721) - Add additional search settings and
override_request_valuesto workload management groups (#21523) - Add hunspell dictionary hot-reload support via
_refresh_search_analyzersAPI (#21559)
Enhancements
- Add adaptive query budget for DataFusion engine with bounded memory and improved throughput (#21695)
- Add DynamicLimitPool for runtime memory pool limit changes in DataFusion (#21286)
- Add configurable coordinator buffer limit for per-query Arrow allocator (#21726)
- Add CPU task cancellation for DataFusion queries (#21560)
- Add IO task cancellation support for DataFusion queries (#21531)
- Add DataFusion logical and physical plan logging at DEBUG level (#21646)
- Add dynamic settings for indexed query execution path (#21522)
- Add dedicated
analytics_schedulerthread pool to prevent coordinator deadlock (#21771) - Add dedicated
analytics_reducethread pool for coordinator reduce drains (#21800) - Add native memory stats and task cancellation stats to node stats API (#21637)
- Add
current_application_duration_msto cluster state download stats in node stats API (#20922) - Add segments and segment stats support for DataFormatAwareEngine (#21696)
- Add DataFormat-aware NRT replication engine and remote-store wiring (#21311)
- Add DataFormat-aware shallow snapshot v2 support (#21742)
- Add DataFormat-aware read-only engine for warm primaries with tiering service improvements (#21720)
- Add dynamic mapping support for pluggable data formats (#21444)
- Add delete execution engine abstraction for DataFormatAwareEngine (#21313)
- Add cluster-scope defaults for pluggable dataformat settings (#21435)
- Add indexing support for metadata fields in pluggable data formats ([#21585](https://github.com/opensearch-pr...
3.6.0
Version 3.6.0 Release Notes
Compatible with OpenSearch and OpenSearch Dashboards version 3.6.0
Features
- Add bitmap64 query support (#20606)
- Add warmup phase for pull-based ingestion to prevent serving stale data before catching up with the streaming source (#20526)
- Implement field_mapping ingestion message mapper for pull-based ingestion (#20729)
- Add mapper_settings support and field_mapping mapper type for pull-based ingestion (#20722)
- Remove experimental tag for pull-based ingestion, marking it as public API (#20704)
Enhancements
- Add index warmer support for replica shards using segment replication (#20650)
- Add indices to search request slow log for easier request identification (#20588)
- Add node-level JVM and CPU runtime metrics following OpenTelemetry semantic conventions (#20844)
- Add new
Sensitivesetting property for tiering dynamic settings authorization (#20901) - Add adaptive shard selection for bulk writes on append-only indices (#20065)
- Add support for expected remote cluster name validation in CCS sniff mode (#20532)
- Add
search_settingssupport to WLM workload groups with initialtimeoutsetting (#20536) - Add scroll API support for workload management rule-based autotagging (#20151)
- Add stream request flag to SearchRequestContext for plugin consumption (#20530)
- Support Docker distribution builds for ppc64le, arm64, and s390x architectures (#20678)
- Fallback to Netty HTTP client when AWS CRT client is unavailable on the target platform (#20698)
- Add intra-segment support for single-value metric aggregations (sum, min, max, avg, stats, cardinality, value_count) (#20503)
- Expose wrapped scorer in ProfileScorer for plugin access to custom scorer methods (#20549)
- Fix ProfileScorer.getChildren() to expose wrapped scorer in the scorer tree hierarchy (#20607)
- Remove X-Request-Id format restrictions and make maximum length configurable (#21048)
- Make telemetry Tags immutable with allocation-efficient factories and content-based equality (#20788)
- Add
ref_pathsupport for package-based Hunspell dictionary loading with multi-tenant isolation (#20840) - Prevent criteria field updates for context-aware indices to simplify version management (#20250)
- Add indexer interface to decouple IndexShard from Engine for pluggable engine architectures (#20675)
- Use
ReadAdviseByContextfor MMapDirectory instead of Lucene default read advise (#21062)
Bug Fixes
- Fix
copy_tofunctionality for geo_point fields with object and array values (#20542) - Fix
field_capsreturning empty results fordisable_objectsmappings and field name corruption (#20814) - Fix terms lookup subquery to use cluster
max_clause_countsetting instead of hardcoded fallback (#20823) - Fix terms aggregation performance regression on high-cardinality fields by adding a max cardinality setting (#20623)
- Fix terms aggregation performance regression using segment-to-global ordinals mapping (#20683)
- Fix
array_index_out_of_bounds_exceptionwith wildcard and aggregations under concurrent access (#20842) - Add range validations in query builder and field mapper (#20518)
- Fix synonym_graph filter failure with word_delimiter_graph by handling analyzer dependency ordering (#19248)
- Fix index template pattern collision false positives for multi-wildcard patterns (#20702)
- Fix
SecurityExceptionwhen usingopensearch.cgroups.hierarchy.overridesetting (#20565) - Fix SLF4J component error caused by slf4j-api version mismatch with log4j binding (#20587)
- Fix JSON escaping in task details log metadata (#20802)
- Fix
listBlobsByPrefixInSortedOrderin EncryptedBlobContainer to respect limit and prevent JVM exhaustion (#20514) - Fix batched deletion of stale cluster metadata manifests to prevent remote storage pile-up (#20566)
- Fix segment replication infinite retry caused by stale metadata checkpoint (#20551)
- Fix
ExitableTermsto delegategetMin/getMaxmethods avoiding slow path in field sort (#20775) - Lazily initialize stored field reader in SourceLookup to avoid unnecessary
madvisecalls (#20827) - Fix CriteriaBasedCodec to work with delegate codec (#20442)
- Show heap percent threshold instead of moving average in search cancellation messages (#20779)
- Relax
updatedAtvalidation for WLM workload group creation to handle minor clock skew (#20486) - Improve exception messaging when encountering legacy Elasticsearch version IDs during upgrade (#20512)
- Fix Windows service startup with OpenJDK by updating procrun to 1.5.1 (#20615)
- Expose
STRICT_EXPAND_OPEN_HIDDEN_FORBID_CLOSEDindex option via static method (#20980) - Fix stale segments cleanup to also trigger based on segments map size threshold (#20976)
- Move
Randomnessfrom server to lib/common to reduce FIPS demo installer size (#20570) - Add
accessUnixDomainSocketpermission for transport-grpc on Windows (#20649) - Harden HTTP/3 support detection by checking Quic native library availability for the target platform (#20680)
- Use
OPENSEARCH_FIPS_MODEenvironment variable to enable FIPS enforced mode instead of checking for bcFIPS jars (#20625) - Fix Arrow Flight transport TLS certificate hot-reload (#20700)
- Fix stream transport TLS certificate hot-reload by using live SSLContext from SecureTransportSettingsProvider (#20734)
- Ensure transient ThreadContext headers with propagators survive context restore (#20854)
Maintenance
- Bump Apache Lucene from 10.3.2 to 10.4.0 (#20735)
- Update Netty to 4.2.12.Final (#20586), (#20997), (#20998)
- Update Jackson to 2.21.2 (#20989)
- Bump OpenTelemetry to 1.60.1 and OpenTelemetry Semconv to 1.40.0 (#20737), (#20797)
- Bump Project Reactor to 3.8.4 and Reactor Netty to 1.3.4 (#20589), (#20834)
- Bump
ch.qos.logback:logback-classicto 1.5.32 andlogback-coreto 1.5.27 ([#20525](#2052...
2.19.5
Version 2.19.5 Release Notes
Compatible with OpenSearch and OpenSearch Dashboards version 2.19.5
Bug Fixes
- Add case sensitivity as an argument to XContentMapValues.filter (#19976)
- Fix segment replication failure during rolling restart (#20498)
Infrastructure
- Update wrapper github workflow version (#20748)
Maintenance
3.5.0
Version 3.5.0 Release Notes
Compatible with OpenSearch and OpenSearch Dashboards version 3.5.0
Added
- Add support for fields containing dots in their name as literals (#19958)
- Add support for forward translog reading (#20163)
- Added public getter method in
SourceFieldMapperto return excluded field (#20205) - Add integ test for simulating node join left event when data node cluster state publication lag because the cluster applier thread being busy (#19907).
- Relax jar hell check when extended plugins share transitive dependencies (#20103)
- Added public getter method in
SourceFieldMapperto return included field (#20290) - Support for HTTP/3 (server side) (#20017)
- Add circuit breaker support for gRPC transport to prevent out-of-memory errors (#20203)
- Add index-level-encryption support for snapshots and remote-store (#20095)
- Adding BackWardCompatibility test for remote publication enabled cluster (#20221)
- Support for hll field mapper to support cardinality rollups (#20129)
- Add tracing support for StreamingRestChannel (#20361)
- Introduce new libs/netty4 module to share common implementation between netty-based plugins and modules (transport-netty4, transport-reactor-netty4) (#20447)
- Add validation to make crypto store settings immutable (#20123)
- Introduce concurrent translog recovery to accelerate segment replication primary promotion (#20251)
- Update to
almalinux:10(#20482) - Add X-Request-Id to uniquely identify a search request (#19798)
- Added TopN selection logic for streaming terms aggregations (#20481)
- Added support for Intra Segment Search (#19704)
- Introduce AdditionalCodecs and EnginePlugin::getAdditionalCodecs hook to allow additional Codec registration (#20411)
Changed
- Handle custom metadata files in subdirectory-store (#20157)
- Add support for missing proto fields in GRPC FunctionScore and Highlight (#20169)
- Ensure all modules are included in INTEG_TEST testcluster distribution (#20241)
- Cleanup HttpServerTransport.Dispatcher in Netty tests (#20160)
- Use compact object headers with JDK25+ (#20392)
- Add
cluster.initial_cluster_manager_nodesto testClusters OVERRIDABLE_SETTINGS (#20348) - Add BigInteger support for unsigned_long fields in gRPC transport (#20346)
- Install demo security information when running ./gradlew run -PinstalledPlugins="['opensearch-security']" (#20372)
- Add
Alt-Svcheader support to advertise HTTP/3 availability (#20434) - Refactor streaming agg query phase planning (#20471)
Fixed
- Fix Snapshot rename replacement unbounded length rename (#20464)
- Fix segment replication failure during rolling restart (#19234)
- Fix bug of warm index: FullFileCachedIndexInput was closed error (#20055)
- Fix flaky test ClusterMaxMergesAtOnceIT.testClusterLevelDefaultUpdatesMergePolicy (#18056)
- Fix bug in Assertion framework(Yaml Rest test): numeric comparison fails when comparing Integer vs Long (or Float vs Double) (#19376)
- Fix Netty deprecation warnings in transport-netty4 module (#20233)
- Fix snapshot restore when an index sort is present (#20284)
- Fix SearchPhaseExecutionException to properly initCause (#20320)
- [repository-s3] remove endpointOverride and let AWS SDK V2 S3 determine the s3 url based on bucket name or arn provided (#20345)
- Fix
cluster.remote.<cluster_alias>.server_namesetting no populating SNI (#20321) - Fix X-Opaque-Id header propagation (along with other response headers) for streaming Reactor Netty 4 transport (#20371)
- Allow removing plugin that's optionally extended (#20417)
- Fix indexing regression and bug fixes for grouping criteria. (20145)
- LeafReader should not remove SubReaderWrappers incase IndexWriter encounters a non aborting Exception (#20193)
- Fix Netty deprecation warnings in transport-reactor-netty4 module (20429)
- Fix stats aggregation returning zero results with
size:0. (20427) - Fix the node local term and version being truncated in logs when host providers return very long IP or host strings (20432)
- Remove child level directory on refresh for CompositeIndexWriter (#20326)
- Fixes and refactoring in stream transport to make it more robust (#20359)
Dependencies
- Bump
com.google.auth:google-auth-library-oauth2-httpfrom 1.38.0 to 1.41.0 (#20183) - Bump
actions/checkoutfrom 5 to 6 (#20186) - Bump
org.apache.commons:commons-configuration2from 2.12.0 to 2.13.0 (#20185, #20184) - Bump Project Reactor to 3.8.1 and Reactor Netty to 1.3.1 (#20217)
- Bump OpenTelemetry to 1.57.0 and OpenTelemetry Semconv to 1.37.0 (#20231)
- Bump
peter-evans/create-pull-requestfrom 7 to 8 (#20236) - Bump
org.apache.kerby:kerb-adminfrom 2.1.0 to 2.1.1 (#20235) - Bump
org.checkerframework:checker-qualfrom 3.49.0 to 3.52.1 (#20234) - Bump
nettyto 4.2.9.Final (#20230) - Bump
log4jfrom 2.21.0 to 2.25.3 (#20308) - Bump
org.apache.logging.log4j:log4j-corefrom 2.25.2 to 2.25.3 (#20300) - Bump
ch.qos.logback:logback-corefrom 1.5.20 to 1.5.23 (#20303) - Bump
com.google.api.grpc:proto-google-iam-v1from 1.57.0 to 1.58.2 (#20302) - Bump
actions/setup-javafrom 4 to 5 (#20304) - Bump
com.squareup.okhttp3:okhttpfrom 5.3.0 to 5.3.2 (#20331) - Bump
asmfrom 9.7 to 9.9.1 (#20330) - Bump
actions/upload-artifactfrom 5 to 6 (#20333) - Bump
com.google.http-client:google-http-client-appenginefrom 2.0.2 to 2.0.3 (#20332) - Bump
jacksonfrom 2.18.1 to 2.20.1 (#20343) - Bump
opensearch-protobufsfrom 0.24.0 to 1.0.0 and update transport-grpc module compatibility ([#20335](https://github.com/opensearch-project/OpenSear...
3.4.0
Version 3.4.0 Release Notes
Compatible with OpenSearch and OpenSearch Dashboards version 3.4.0
Added
- Allow setting index.creation_date on index creation and restore for plugin compatibility and migrations (#19931)
- Add support for a ForkJoinPool type (#19008)
- Add seperate shard limit validation for local and remote indices (#19532)
- Use Lucene
packmethod forhalf_floatandunsigned_longwhen usingApproximatePointRangeQuery(#19553) - New cluster setting search.query.max_query_string_length_monitor_only (#19539)
- Add a mapper for context aware segments grouping criteria (#19233)
- Return full error for GRPC error response (#19568)
- Add support for repository with Server side encryption enabled and client side encryption as well based on a flag (#19630)
- Add pluggable gRPC interceptors with explicit ordering(#19005)
- Add BindableServices extension point to transport-grpc-spi (#19304)
- Add metrics for the merged segment warmer feature (#18929)
- Handle deleted documents for filter rewrite sub-aggregation optimization (#19643)
- Add bulk collect API for filter rewrite sub-aggregation optimization (#19933)
- Allow collectors take advantage of preaggregated data using collectRange API (#20009)
- Bulk collection logic for metrics and cardinality aggregations (#20067)
- Add pointer based lag metric in pull-based ingestion (#19635)
- Introduced internal API for retrieving metadata about requested indices from transport actions (#18523)
- Add cluster defaults for merge autoThrottle, maxMergeThreads, and maxMergeCount; Add segment size filter to the merged segment warmer (#19629)
- Add build-tooling to run in FIPS environment (#18921)
- Add SMILE/CBOR/YAML document format support to Bulk GRPC endpoint (#19744)
- Make test-suite runnable under FIPS compliance support (#18491)
- Implement GRPC Search params
HighlightandSort(#19868) - Implement GRPC ConstantScoreQuery, FuzzyQuery, MatchBoolPrefixQuery, MatchPhrasePrefix, PrefixQuery, MatchQuery (#19854)
- Add async periodic flush task support for pull-based ingestion (#19878)
- Add support for context aware segments (#19098)
- Implement GRPC FunctionScoreQuery (#19888)
- Implement error_trace parameter for bulk requests (#19985)
- Allow the truncate filter in normalizers (#19778)
- Support pull-based ingestion message mappers and raw payload support (#19765)
- Add search API tracker (#18601)
- Support dynamic consumer configuration update in pull-based ingestion (#19963)
- Cache the
StoredFieldsReaderfor scroll query optimization (#20112) - Add Hybrid Cardinality collector to prioritize Ordinals Collector (#19524)
Changed
- Combining filter rewrite and skip list to optimize sub aggregation(#19573)
- Faster
termsquery creation forkeywordfield with index and docValues enabled (#19350) - Refactor to move prepareIndex and prepareDelete methods to Engine class (#19551)
- Omit maxScoreCollector in SimpleTopDocsCollectorContext when concurrent segment search enabled (#19584)
- Onboarding new maven snapshots publishing to s3 (#19619)
- Remove MultiCollectorWrapper and use MultiCollector in Lucene instead (#19595)
- Change implementation for
percentilesaggregation for latency improvement (#19648) - Wrap checked exceptions in painless.DefBootstrap to support JDK-25 (#19706)
- Refactor the ThreadPoolStats.Stats class to use the Builder pattern instead of constructors (#19317)
- Refactor the IndexingStats.Stats class to use the Builder pattern instead of constructors (#19306)
- Remove FeatureFlag.MERGED_SEGMENT_WARMER_EXPERIMENTAL_FLAG. (#19715)
- Replace java.security.AccessController with org.opensearch.secure_sm.AccessController in sub projects with SocketAccess class (#19803)
- Replace java.security.AccessController with org.opensearch.secure_sm.AccessController in discovery plugins (#19802)
- Change the default value of doc_values in WildcardFieldMapper to true. (#19796)
- Make Engine#loadHistoryUUID() protected and Origin#isFromTranslog() public (#19753)
- Bump opensearch-protobufs dependency to 0.23.0 and update transport-grpc module compatibility (#19831)
- Refactor the RefreshStats class to use the Builder pattern instead of constructors (#19835)
- Refactor the DocStats and StoreStats class to use the Builder pattern instead of constructors (#19863)
- Pass registry of headers from ActionPlugin.getRestHeaders to ActionPlugin.getRestHandlerWrapper (#19875)
- Refactor the Condition.Stats and DirectoryFileTransferTracker.Stats class to use the Builder pattern instead of constructors (#19862)
- Refactor the RemoteTranslogTransferTracker.Stats and RemoteSegmentTransferTracker.Stats class to use the Builder pattern instead of constructors (#19837)
- Refactor the GetStats, FlushStats and QueryCacheStats class to use the Builder pattern instead of constructors (#19935)
- Add RangeSemver for
dependenciesinplugin-descriptor.properties(#19939) - Refactor the FieldDataStats and CompletionStats class to use the Builder pattern instead of constructors (#19936)
- Thread Context Preservation by gRPC Interceptor (#19776)
- Update NoOpResult constructors in the Engine to be public (#19950)
- Make XContentMapValues.filter case insensitive (#19976)
- Refactor the TranslogStats and RequestCacheStats class to use the Builder pattern instead of constructors (#19961)
- Improve performance of matrix_stats aggregation (#19989)
- Refactor the IndexPressutreStats, DeviceStats and TransportStats class to use the Builder pattern instead of constructors (#19991)
- Refactor the Cache.CacheStats class to use the Builder pattern instead of constructors (#20015)
- Refactor the HttpStats, ScriptStats, AdaptiveSelectionStats and OsStats class to use the Builder pattern instead of constructors (#20014)
- Bump opensearch-protobufs dependency to 0.24.0 and update transport-grpc module compatibility ([#20059](https://github.com/opensearc...
2.19.4
Version 2.19.4 Release Notes
Compatible with OpenSearch and OpenSearch Dashboards version 2.19.4
Added
- New cluster setting search.query.max_query_string_length (#19491)
Dependencies
- Bump Apache Lucene to 9.12.3 (#19444)
- Bump
org.bouncycastle:bc-fipsfrom 2.0.0 to 2.1.2 (#19155) - Bump
org.apache.commons:commons-lang3from 3.14.0 to 3.18.0 (#19155) - Bump
org.bouncycastle:bcprov-jdk18onfrom 1.78 to 1.79 (#19155) - Bump
org.bouncycastle:bcmail-jdk18onfrom 1.78 to 1.79 (#19155) - Bump
org.bouncycastle:bcpkix-jdk18onfrom 1.78 to 1.79 (#19155) - Bump
org.apache.tikafrom 2.9.2 to 3.2.2 (#19242) - Bump
org.apache.commons:commons-compressfrom 1.26.1 to 1.28.0 (#19125) - Bump
org.apache.commons:commonscodecfrom 1.16.1 to 1.18.0 (#19125) - Replace commons-lang:commons-lang with org.apache.commons:commons-lang3 (#19229)
- Bump netty from 4.1.121.Final to 4.1.125.Final (#19270)
- Bump bouncycastle from 1.79 to 1.82 (#19552)
- Bump
org.ajoberstar.grgit:grgit-corefrom 5.2.1 to 5.3.2 (#19606) - Bump
reactor-nettyfrom 1.1.23 to 1.2.9 (#19603) - Bump
reactorfrom 3.5.20 to 3.7.5 (#19603) - Bump
org.apache.hadoop:hadoop-miniclusterfrom 3.4.1 to 3.4.2 (#19605) - Bump
io.grpcdeps from 1.68.2 to 1.75.0 (#19495) - Bump
com.nimbusds:nimbus-jose-jwtfrom 10.0.2 to 10.3 (#19604) - Exclude commons-lang and org.jsonschema2pojo from hadoop-miniclusters (#19538)
Fixed
- Add task cancellation checks in aggregators (#18426)
- Fix OOM due to large number of shard result buffering (#19066)
- Fix QueryPhaseResultConsumer incomplete callback loops (#19231)
- Use ScoreDoc instead of FieldDoc when creating TopScoreDocCollectorManager to avoid unnecessary conversion (#18802)
- Fix IndexOutOfBoundsException when running include/exclude on non-existent prefix in terms aggregations (#19637)
Changed
3.3.2
Version 3.3.2 Release Notes
Compatible with OpenSearch 3.3.2 and OpenSearch Dashboards 3.3.0
Fixed
- [Star Tree] Fix sub-aggregator casting for search with profile=true (#19652)
- [Java Agent] Allow JRT protocol URLs in protection domain extraction (#19683)
- Fix bwc @timestamp upgrade issue by adding a version check on skip_list param (#19671)
- Fix issue with updating core with a patch number other than 0 (#19377)
- Fix IndexOutOfBoundsException when running include/exclude on non-existent prefix in terms aggregations (#19637)
- Add S3Repository.LEGACY_MD5_CHECKSUM_CALCULATION to list of repository-s3 settings (#19789)
Dependencies
3.3.1
Version 3.3.1 Release Notes
OpenSearch 3.3.1 Only.
Fixed
- Fix issue with updating core with a patch number other than 0 (#19377)
- [Star Tree] Fix sub-aggregator casting for search with profile=true (#19652)
- Fix bwc @timestamp upgrade issue by adding a version check on skip_list param (#19671)