8.7.0.asciidoc 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. [[release-notes-8.7.0]]
  2. == {es} version 8.7.0
  3. Also see <<breaking-changes-8.7,Breaking changes in 8.7>>.
  4. [[breaking-8.7.0]]
  5. [float]
  6. === Breaking changes
  7. Ingest Node::
  8. * Making `JsonProcessor` stricter so that it does not silently drop data {es-pull}93179[#93179] (issue: {es-issue}92898[#92898])
  9. [[bug-8.7.0]]
  10. [float]
  11. === Bug fixes
  12. Aggregations::
  13. * Don't create a new `DoubleHistogram` instance for empty buckets {es-pull}92547[#92547]
  14. * Fix: do not allow map key types other than String {es-pull}88686[#88686] (issue: {es-issue}66057[#66057])
  15. Allocation::
  16. * Fallback to the actual shard size when forecast is not available {es-pull}93461[#93461]
  17. * Skip `DiskThresholdMonitor` when cluster state is not recovered {es-pull}93699[#93699]
  18. * Suppress response headers in `AllocationActionMultiListener` {es-pull}93777[#93777] (issue: {es-issue}93773[#93773])
  19. Authentication::
  20. * Correctly remove domain from realm when rewriting `Authentication` for compatibility with node versions that don't
  21. support domains {es-pull}93276[#93276]
  22. Authorization::
  23. * Fix Security's expression resolver to not remove unavailable but authorized names {es-pull}92625[#92625]
  24. CCR::
  25. * Deduplicate Heavy CCR Repository CS Requests {es-pull}91398[#91398]
  26. CRUD::
  27. * Avoid NPE in Stateless Get/mGet {es-pull}94164[#94164]
  28. * Do not refresh all indices in `TransportBulkAction` {es-pull}93417[#93417]
  29. Cluster Coordination::
  30. * Delay master task failure notifications until commit {es-pull}92693[#92693] (issue: {es-issue}92677[#92677])
  31. Data streams::
  32. * Allow different filters per `DataStream` in a `DataStreamAlias` {es-pull}92692[#92692] (issue: {es-issue}92050[#92050])
  33. Geo::
  34. * Build index qualified name in cross cluster vector tile search {es-pull}94574[#94574] (issue: {es-issue}94557[#94557])
  35. * Check `GeohexGrid` bounds on geopoint using spherical coordinates {es-pull}92460[#92460]
  36. * Fix bug when clipping Geometry collections in vector tiles {es-pull}93562[#93562]
  37. Health::
  38. * Take into account `max_headroom` in disk watermark calculations {es-pull}93157[#93157] (issue: {es-issue}93155[#93155])
  39. ILM+SLM::
  40. * Allow ILM step transition to the phase terminal step {es-pull}91754[#91754]
  41. * Avoiding `BulkProcessor` deadlock in ILMHistoryStore {es-pull}91238[#91238] (issues: {es-issue}68468[#68468], {es-issue}50440[#50440])
  42. * Fixed changing only the `forceMerge` flag in `SearchableSnapshotAction` wouldn't update the policy {es-pull}93847[#93847]
  43. * Preventing ILM and SLM runtime state from being stored in a snapshot {es-pull}92252[#92252]
  44. Infra/CLI::
  45. * Restore printing bootstrap checks as errors {es-pull}93178[#93178] (issue: {es-issue}93074[#93074])
  46. Infra/Core::
  47. * Add `jdk.internal.reflect` permission to es codebase {es-pull}92387[#92387] (issue: {es-issue}92356[#92356])
  48. * Add checks for exception loops through suppressed exceptions only {es-pull}93944[#93944] (issue: {es-issue}93943[#93943])
  49. * Ensure one-shot wrappers release their delegates {es-pull}92928[#92928]
  50. * Fix `InputStream#readAllBytes` on `InputStreamIndexInput` {es-pull}92680[#92680]
  51. * Fix indices resolver for datemath with colon {es-pull}92973[#92973]
  52. * Make `FilterStreamInput` less trappy {es-pull}92422[#92422]
  53. Infra/Plugins::
  54. * Ensure ordering of plugin initialization {es-pull}93882[#93882] (issue: {es-issue}93851[#93851])
  55. * Fix unclosed directory stream in `ClassReaders` {es-pull}92890[#92890] (issue: {es-issue}92866[#92866])
  56. * Update the version of asm used by plugin scanner {es-pull}92784[#92784] (issue: {es-issue}92782[#92782])
  57. Infra/REST API::
  58. * [Rest Api Compatibility] Format response media type with parameters {es-pull}92695[#92695]
  59. Infra/Scripting::
  60. * Fix NPE when method was called on an array type {es-pull}91713[#91713] (issue: {es-issue}87562[#87562])
  61. Infra/Settings::
  62. * Fix parse failures for ILM operator settings {es-pull}94477[#94477] (issue: {es-issue}94465[#94465])
  63. Ingest Node::
  64. * Better names and types for ingest stats {es-pull}93533[#93533] (issue: {es-issue}80763[#80763])
  65. * Correctly handle an exception case for ingest failure {es-pull}92455[#92455]
  66. * Disable ingest-attachment logging {es-pull}93878[#93878]
  67. * Download the geoip databases only when needed {es-pull}92335[#92335] (issue: {es-issue}90673[#90673])
  68. * Forwarding simulate calls to ingest nodes {es-pull}92171[#92171]
  69. * Grok returns a list of matches for repeated pattern names #92092 {es-pull}92586[#92586] (issue: {es-issue}92092[#92092])
  70. * Handle a default/request pipeline and a final pipeline with minimal additional overhead {es-pull}93329[#93329] (issues: {es-issue}92843[#92843], {es-issue}81244[#81244], {es-issue}93118[#93118])
  71. * Ingest-attachment module tika dependency versions {es-pull}93755[#93755]
  72. * More accurate total ingest stats {es-pull}91730[#91730] (issue: {es-issue}91358[#91358])
  73. * Speed up ingest geoip processors {es-pull}92372[#92372]
  74. * Speed up ingest set and append processors {es-pull}92395[#92395]
  75. Machine Learning::
  76. * Allocate trained models if zone awareness attributes not set {es-pull}94128[#94128] (issue: {es-issue}94123[#94123])
  77. * Fix data counts race condition when starting a datafeed {es-pull}93324[#93324] (issue: {es-issue}93298[#93298])
  78. * Fix tokenization bug when handling normalization in BERT and MPNet {es-pull}92329[#92329]
  79. * Free resources correctly when model loading is cancelled {es-pull}92204[#92204]
  80. * Stop the `frequent_items` aggregation reporting a subset when a superset exists {es-pull}92239[#92239]
  81. * Use long inference timeout at ingest {es-pull}93731[#93731]
  82. Mapping::
  83. * Fix dynamic mapping detection for invalid dates {es-pull}94115[#94115] (issue: {es-issue}93888[#93888])
  84. * No length check for source-only keyword fields {es-pull}93299[#93299] (issue: {es-issue}9304[#9304])
  85. Network::
  86. * Delay Connection#onRemoved while pending {es-pull}92546[#92546]
  87. * Fix fransport handshake starting before tls handshake completes {es-pull}90534[#90534] (issue: {es-issue}77999[#77999])
  88. * Protect `NodeConnectionsService` from stale conns {es-pull}92558[#92558] (issue: {es-issue}92029[#92029])
  89. Recovery::
  90. * Disable recovery monitor before recovery start {es-pull}93551[#93551] (issue: {es-issue}93542[#93542])
  91. * Fix potential leak in `RemoteRecoveryHandler` {es-pull}91802[#91802]
  92. * Report recovered files as recovered from snapshot for fully mounted searchable snapshots {es-pull}92976[#92976]
  93. Rollup::
  94. * Downsampling unmapped text fields {es-pull}94387[#94387] (issue: {es-issue}94346[#94346])
  95. * Propagate timestamp format and convert nanoseconds to milliseconds {es-pull}94141[#94141] (issue: {es-issue}94085[#94085])
  96. * Stop processing `TransportDownsampleAction` on failure {es-pull}94624[#94624]
  97. * Support downsampling of histogram as labels {es-pull}93445[#93445] (issue: {es-issue}93263[#93263])
  98. Search::
  99. * Add null check for sort fields over collapse fields {es-pull}94546[#94546] (issue: {es-issue}94407[#94407])
  100. * Annotated highlighter does not match when search contains both annotation and annotated term {es-pull}92920[#92920] (issue: {es-issue}91944[#91944])
  101. * Clear field caps index responses on cancelled {es-pull}93716[#93716] (issue: {es-issue}93029[#93029])
  102. * Do not include frozen indices in PIT by default {es-pull}94377[#94377]
  103. * Fix NPE thrown by prefix query in strange scenarios {es-pull}94369[#94369]
  104. * Fix _id field fetch issue. {es-pull}94528[#94528] (issue: {es-issue}94515[#94515])
  105. * Fix metadata `_size` when it comes to stored fields extraction {es-pull}94483[#94483] (issue: {es-issue}94468[#94468])
  106. * Fix missing override for matches in `ProfileWeight` {es-pull}92360[#92360]
  107. * Nested path info shouldn't be added during `copy_to` {es-pull}93340[#93340] (issue: {es-issue}93117[#93117])
  108. * Use all profiling events on startup {es-pull}92087[#92087]
  109. * Use keyword analyzer for untokenized fields in `TermVectorsService` {es-pull}94518[#94518]
  110. * [Profiling] Adjust handling of last data slice {es-pull}94283[#94283]
  111. * [Profiling] Ensure responses are only sent once {es-pull}93692[#93692] (issue: {es-issue}93691[#93691])
  112. * [Profiling] Handle response processing errors {es-pull}93860[#93860]
  113. Snapshot/Restore::
  114. * Fix unhandled exception when blobstore repository contains unexpected file {es-pull}93914[#93914]
  115. * Support for GCS proxies everywhere in the GCS API {es-pull}92192[#92192] (issue: {es-issue}91952[#91952])
  116. Stats::
  117. * Avoid capturing cluster state in TBbNA {es-pull}92255[#92255]
  118. TSDB::
  119. * Fix synthetic `_source` for sparse `_doc_count` field {es-pull}91769[#91769] (issue: {es-issue}91731[#91731])
  120. Task Management::
  121. * Fix context leak in list tasks API {es-pull}93431[#93431] (issue: {es-issue}93428[#93428])
  122. Transform::
  123. * Integrate "sourceHasChanged" call into failure handling and retry logic {es-pull}92762[#92762] (issue: {es-issue}92133[#92133])
  124. Vector Search::
  125. * Fix `maxScore` calculation for kNN search {es-pull}93875[#93875]
  126. * Fix explain for kNN search matches {es-pull}93876[#93876]
  127. [[enhancement-8.7.0]]
  128. [float]
  129. === Enhancements
  130. Aggregations::
  131. * Optimize composite agg with leading global ordinal value source {es-pull}92197[#92197]
  132. Allocation::
  133. * Add `forecasted_write_load` and `forecasted_shard_size_in_bytes` to the endpoint {es-pull}92303[#92303]
  134. * Expose tier balancing stats via internal endpoint {es-pull}92199[#92199]
  135. * Introduce ShardRouting.Role {es-pull}92668[#92668]
  136. * Prevalidate node removal API (pt. 2) {es-pull}91256[#91256] (issue: {es-issue}87776[#87776])
  137. * Simulate moves using cluster_concurrent_rebalance=2 {es-pull}93977[#93977]
  138. * Unpromotables skip replication and peer recovery {es-pull}93210[#93210]
  139. Authentication::
  140. * Add new `token_type` setting to JWT realm {es-pull}91536[#91536]
  141. * JWT realm - Initial support for access tokens {es-pull}91781[#91781]
  142. * JWT realm - Simplify token principal calculation {es-pull}92315[#92315]
  143. * JWT realm - add support for required claims {es-pull}92314[#92314]
  144. * Support custom PBKDF2 password hashes {es-pull}92871[#92871]
  145. Authorization::
  146. * Allowed indices matcher supports nested limited roles {es-pull}93306[#93306]
  147. * Extra `kibana_system` privileges for Fleet transform upgrades {es-pull}91499[#91499]
  148. * Pre-authorize child search transport actions {es-pull}91886[#91886]
  149. Cluster Coordination::
  150. * Add links to troubleshooting docs {es-pull}92755[#92755] (issue: {es-issue}92741[#92741])
  151. * Improve node-{join,left} logging for troubleshooting {es-pull}92742[#92742]
  152. * Repeat `cluster.initial_master_nodes` log warning {es-pull}92744[#92744]
  153. EQL::
  154. * EQL Samples: add support for multiple samples per key {es-pull}91783[#91783]
  155. Engine::
  156. * Add commits listener for `InternalEngine` and `CombinedDeletionPolicy` {es-pull}92017[#92017]
  157. * Add primary term supplier to Engine.IndexCommitListener {es-pull}92101[#92101]
  158. * Adjust range of allowed percentages of deletes in an index {es-pull}93188[#93188]
  159. * Diff the list of filenames that are added by each new commit {es-pull}92238[#92238]
  160. * Set a fixed compound file threshold of 1GB {es-pull}92659[#92659]
  161. Geo::
  162. * Add methods to H3#hexRing to prevent allocating long arrays {es-pull}92711[#92711]
  163. * Add methods to prevent allocating long arrays during child navigation on H3 api {es-pull}92099[#92099]
  164. * Add new H3 api method #h3ToNoChildrenIntersecting {es-pull}91673[#91673]
  165. * In H3, compute destination point from distance and azimuth using planar 3d math" {es-pull}93084[#93084]
  166. * Protect H3 library against integer overflow {es-pull}92829[#92829]
  167. * Reduce number of object allocations in H3#h3ToGeoBoundary {es-pull}91586[#91586]
  168. * Speed H3 library by using `FastMath` implementation for trigonometric functions {es-pull}91839[#91839]
  169. Health::
  170. * Expose Health Api telemetry via xpack {es-pull}91708[#91708] (issue: {es-issue}90877[#90877])
  171. * Health api stats {es-pull}91559[#91559]
  172. Indices APIs::
  173. * Add `ignore_missing_component_templates` config option {es-pull}92436[#92436] (issue: {es-issue}92426[#92426])
  174. Infra/CLI::
  175. * Scan stable plugins for named components upon install {es-pull}92528[#92528]
  176. Infra/Core::
  177. * Add log level for JVM logs {es-pull}92382[#92382]
  178. * Added new field `rollout_duration_seconds` to fleet-actions {es-pull}92640[#92640]
  179. * Bind the readiness service to the wildcard address {es-pull}91329[#91329] (issue: {es-issue}90997[#90997])
  180. * Provide locally mounted secure settings implementation {es-pull}93392[#93392]
  181. Infra/Plugins::
  182. * Check stable plugin version at install and load time {es-pull}91780[#91780]
  183. * Example stable plugins with settings {es-pull}92334[#92334]
  184. * Load stable plugins as synthetic modules {es-pull}91869[#91869]
  185. * Settings api for stable plugins {es-pull}91467[#91467]
  186. Infra/Scripting::
  187. * Script: Metadata `validateMetadata` optimization {es-pull}93333[#93333]
  188. * Short-circuit painless def equality {es-pull}92102[#92102]
  189. * Use primitive types rather than boxing/unboxing for iterating over primitive arrays from defs {es-pull}92025[#92025]
  190. Ingest Node::
  191. * Cache the creation of parsers within DateProcessor {es-pull}92880[#92880]
  192. * Make `GeoIpProcessor` backing database instance pluggable {es-pull}93285[#93285]
  193. Machine Learning::
  194. * Add identification of multimodal distribution to anomaly explanations {ml-pull}2440[#2440]
  195. * Add the ability to include and exclude values in Frequent items {es-pull}92414[#92414]
  196. * Better error when `aggregate_metric_double` used in scrolling datafeeds {es-pull}92232[#92232] (issue: {es-issue}90592[#90592])
  197. * Implement extension pruning in frequent items to improve runtime {es-pull}92322[#92322]
  198. * Improve `frequent_items` performance using global ordinals {es-pull}93304[#93304]
  199. * Improve anomaly detection results indexing speed {es-pull}92417[#92417]
  200. * Improve frequent items runtime {es-pull}93255[#93255]
  201. * Increase the default timeout for the start trained model deployment API {es-pull}92328[#92328]
  202. * Option to delete user-added annotations for the reset/delete job APIs {es-pull}91698[#91698] (issue: {es-issue}74310[#74310])
  203. * Persist data counts and datafeed timing stats asynchronously {es-pull}93000[#93000]
  204. * Remove the PyTorch inference work queue as now handled in Elasticsearch {ml-pull}2456[#2456]
  205. * Text Embedding search {es-pull}93531[#93531]
  206. * Upgrade PyTorch to version 1.13.1 {ml-pull}2430[#2430]
  207. Mapping::
  208. * Switch to Lucene's new `IntField/LongField/FloatField/DoubleField` {es-pull}93165[#93165]
  209. Monitoring::
  210. * Add kibana.stats.elasticsearch_client stats to the monitoring index templates. {es-pull}91508[#91508]
  211. * Add monitoring mappings for es ingest metricset {es-pull}92950[#92950]
  212. Network::
  213. * Deserialize responses on the handling thread-pool {es-pull}91367[#91367]
  214. Performance::
  215. * Add vector distance scoring to micro benchmarks {es-pull}92340[#92340]
  216. Query Languages::
  217. * Introduce parameterized rule and executor {es-pull}92428[#92428]
  218. Recovery::
  219. * Make clean up files step configurable for peer-recovery of replicas {es-pull}92490[#92490]
  220. Search::
  221. * Access term dictionary more efficiently {es-pull}92269[#92269]
  222. * Add `term` query support to `rank_features` mapped field {es-pull}93247[#93247]
  223. * Add new `query_vector_builder` option to knn search clause {es-pull}93331[#93331]
  224. * Add profiling plugin {es-pull}91640[#91640]
  225. * Enable profiling plugin by default {es-pull}92787[#92787]
  226. * Get stackframes and executables more concurrently {es-pull}93559[#93559]
  227. * Improve the false positive rate of the bloom filter by setting 7 hash functions {es-pull}93283[#93283]
  228. * Increase the number of threads of GET threadpool {es-pull}92309[#92309]
  229. * Instrument Weight#count in ProfileWeight {es-pull}85656[#85656] (issue: {es-issue}85203[#85203])
  230. * Reduce memory usage of match all bitset {es-pull}92777[#92777]
  231. * Runtime fields to optionally ignore script errors {es-pull}92380[#92380]
  232. * Speed up retrieval of data for flamegraphs {es-pull}93448[#93448]
  233. * Support retrieving inlined stack frames {es-pull}92863[#92863]
  234. * [Profiling] Reduce GC pressure {es-pull}93590[#93590]
  235. Security::
  236. * Configurable retention period for invalidated or expired API keys {es-pull}92219[#92219]
  237. * Record timestamp on API key invalidation {es-pull}91873[#91873]
  238. Snapshot/Restore::
  239. * Make `RecoveryPlannerService` optional {es-pull}92489[#92489]
  240. TSDB::
  241. * Enable bloom filter for `_id` field in tsdb indices {es-pull}92115[#92115]
  242. * Improve downsampling performance by removing map lookups {es-pull}92494[#92494] (issue: {es-issue}90226[#90226])
  243. * Minor TSDB parsing speedup {es-pull}92276[#92276]
  244. * Skip duplicate checks on segments that don't contain the document's timestamp {es-pull}92456[#92456]
  245. * Support `fields` in synthetic source in last cases {es-pull}91595[#91595]
  246. Task Management::
  247. * `TransportGetTaskAction:` Wait for the task asynchronously {es-pull}93375[#93375]
  248. * `TransportListTaskAction:` wait for tasks to finish asynchronously {es-pull}90977[#90977] (issue: {es-issue}89564[#89564])
  249. Transform::
  250. * Add from parameter to Transform Start API {es-pull}91116[#91116] (issue: {es-issue}88646[#88646])
  251. * Support "offset" parameter in `DateHistogramGroupSource` {es-pull}93203[#93203]
  252. * Trigger state persistence based on time {es-pull}93221[#93221]
  253. Vector Search::
  254. * Allow `null` to be provided for `dense_vector` field values {es-pull}93388[#93388]
  255. * Allow more than one KNN search clause {es-pull}92118[#92118] (issue: {es-issue}91187[#91187])
  256. Watcher::
  257. * Add ability for Watcher's webhook actions to send additional header {es-pull}93426[#93426]
  258. [[feature-8.7.0]]
  259. [float]
  260. === New features
  261. Distributed::
  262. * Secure settings that can fall back to yml in Stateless {es-pull}91925[#91925]
  263. Geo::
  264. * Geohex aggregation on `geo_shape` field {es-pull}91956[#91956] (issue: {es-issue}90163[#90163])
  265. * Support geo_grid ingest processor {es-pull}93370[#93370] (issue: {es-issue}92473[#92473])
  266. Health::
  267. * The Health API is now generally available {es-pull}92879[#92879]
  268. * [HealthAPI] Add size parameter that controls the number of affected resources returned {es-pull}92399[#92399] (issue: {es-issue}91930[#91930])
  269. * [HealthAPI] Add support for the FEATURE_STATE affected resource {es-pull}92296[#92296] (issue: {es-issue}91353[#91353])
  270. Infra/Plugins::
  271. * [Fleet] Add files and files data index templates and ILM policies {es-pull}91413[#91413]
  272. Ingest Node::
  273. * Redact Ingest Processor {es-pull}92951[#92951]
  274. Machine Learning::
  275. * Make `frequent_item_sets` aggregation GA {es-pull}93421[#93421]
  276. * Make native inference generally available {es-pull}92213[#92213]
  277. TSDB::
  278. * Add a TSDB rate aggregation {es-pull}90447[#90447]
  279. * Downsampling GA {es-pull}92913[#92913]
  280. * Release time_series and rate (on counter fields) aggegations as tech preview {es-pull}93546[#93546]
  281. * Time series (TSDS) GA {es-pull}91519[#91519]
  282. Transform::
  283. * Transform _schedule_now API {es-pull}92948[#92948] (issue: {es-issue}44722[#44722])
  284. [[upgrade-8.7.0]]
  285. [float]
  286. === Upgrades
  287. Infra/Core::
  288. * Align all usages of Jackson to be 2.14.2 {es-pull}93438[#93438]
  289. Ingest Node::
  290. * Upgrading tika to 2.6.0 {es-pull}92104[#92104]
  291. Network::
  292. * Upgrade to Netty 4.1.85 {es-pull}91846[#91846]
  293. * Upgrade to Netty 4.1.86 {es-pull}92587[#92587]
  294. Query Languages::
  295. * Upgrade antlr to 4.11.1 for ql, eql and sql {es-pull}93238[#93238]
  296. Search::
  297. * Upgrade to Lucene 9.5.0 {es-pull}93385[#93385]
  298. * Upgrade to lucene-9.5.0-snapshot-d19c3e2e0ed {es-pull}92957[#92957]
  299. Snapshot/Restore::
  300. * Align all usages of protobuf to be 3.21.9 {es-pull}92123[#92123]
  301. * Bump reactor netty version {es-pull}92457[#92457]
  302. * Consolidate google-oauth-client to latest version {es-pull}91722[#91722]