Migrating to 8.15
editMigrating to 8.15
editThis section discusses the changes that you need to be aware of when migrating your application to Elasticsearch 8.15.
See also What’s new in 8.16 and Release notes.
Coming in 8.15.0.
Breaking changes
editThe following changes in Elasticsearch 8.15 might affect your applications and prevent them from operating normally. Before upgrading to 8.15, review these changes and take the described steps to mitigate the impact.
Cluster and node setting changes
editRollup changes
editDisallow new rollup jobs in clusters with no rollup usage
Details
The put rollup API will fail with an error when a rollup job is created in a cluster with no rollup usage
Impact
Clusters with no rollup usage (either no rollup job or index) can not create new rollup jobs
REST API changes
editInterpret ?timeout=-1
as infinite ack timeout
Details
Today Elasticsearch accepts the parameter ?timeout=-1
in many APIs, but interprets
this to mean the same as ?timeout=0
. From 8.15 onwards ?timeout=-1
will
mean to wait indefinitely, aligning the behaviour of this parameter with
other similar parameters such as ?master_timeout
.
Impact
Use ?timeout=0
to force relevant operations to time out immediately
instead of ?timeout=-1
Replace model_id
with inference_id
in GET inference API
Details
From 8.15 onwards the Get inference API response will return an
inference_id
field instead of a model_id
.
Impact
If your application uses the model_id
in a GET inference API response,
switch it to use inference_id
instead.
Deprecations
editThe following functionality has been deprecated in Elasticsearch 8.15 and will be removed in a future version. While this won’t have an immediate impact on your applications, we strongly encourage you to take the described steps to update your code after upgrading to 8.15.
To find out if you are using any deprecated functionality, enable deprecation logging.
Cluster and node setting deprecations
editDeprecate absolute size values for indices.breaker.total.limit
setting
Details
Previously, the value of indices.breaker.total.limit
could be specified as an absolute size in bytes. This setting controls the overal amount of memory the server is allowed to use before taking remedial actions. Setting this to a specific number of bytes led to strange behaviour when the node maximum heap size changed because the circut breaker limit would remain unchanged. This would either leave the value too low, causing part of the heap to remain unused; or it would leave the value too high, causing the circuit breaker to be ineffective at preventing OOM errors. The only reasonable behaviour for this setting is that it scales with the size of the heap, and so absolute byte limits are now deprecated.
Impact
Users must change their configuration to specify a percentage instead of an absolute number of bytes for indices.breaker.total.limit
, or else accept the default, which is already specified as a percentage.
REST API deprecations
editDeprecate text_expansion
and weighted_tokens
queries
Details
The text_expansion
and weighted_tokens
queries have been replaced by sparse_vector
.
Impact
Please update your existing text_expansion
and weighted_tokens
queries to use sparse_vector.
Deprecate using slm privileges to access ilm
Details
The read_slm
privilege can get the ILM status, and the manage_slm
privilege can start and stop ILM. Access to these APIs should be granted using the read_ilm
and manage_ilm
privileges instead. Access to ILM APIs will be removed from SLM privileges in a future major release, and is now deprecated.
Impact
Users that need access to the ILM status API should now use the read_ilm
privilege. Users that need to start and stop ILM, should use the manage_ilm
privilege.