Breaking changes in 6.7edit
This section discusses the changes that you need to be aware of when migrating your application to Elasticsearch 6.7.
See also Release Highlights and Release Notes.
Indexing changesedit
Deprecated usage of internal
versioning for optimistic concurrency controledit
internal
version may not uniquely identify a document’s version if an indexed document
wasn’t fully replicated when a primary fails. As such it is unsafe to use for
optimistic concurrency control, is deprecated and the option will no longer be available
in Elasticsearch 7.0.0. Please use the if_seq_no
and if_primary_term
parameters instead.
See Optimistic concurrency control for more details.
Plugin changesedit
ingest-geoip
and ingest-user-agent
are no longer distributed as pluginsedit
The ingest-geoip
and ingest-user-agent
plugins have been converted to
modules and are now included with all Elasticsearch distributions. Starting with
Elasticsearch 6.7.0, attempting to install or remove these plugins will result
in a no-op. In Elasticsearch 7.0.0, attempting to install or remove these plugins
will result in an error. Additionally, there are two minor breaking changes here:
- elasticsearch-plugin list
will no longer output ingest-geoip
nor
ingest-user-agent
- plugin.mandatory
is no longer compatible with ingest-geoip
nor
ingest-user-agent
Elasticsearch 6.7.0 checks that there are no leftover geoip database files in
the plugin configuration directory because the new module does not use them.
Therefore, remove the ingest-geoip
plugin prior to upgrading to 6.7.0 with
the --purge
option to also delete the old database files:
./bin/elasticsearch-plugin remove --purge ingest-geoip
Otherwise you will see the following error message upon startup (assuming
/etc/elasticsearch/ingest-geoip
as the plugin configuration directory):
expected database [GeoLite2-ASN.mmdb] to not exist in [/etc/elasticsearch/ingest-geoip]
Settings changesedit
Disabling memory-mappingedit
The setting node.store.allow_mmapfs
has been deprecated. Use
node.store.allow_mmap
instead.
API changesedit
Removing compressed size of cluster stateedit
Since 6.0.0, the /_cluster/state
REST endpoint and cluster state API on the
transport client would compute and return the compressed size of the cluster
state as if it were serialized for inter-node communication. This metric would
be returned in the compressed_size
or compressed_size_in_bytes
fields in the
REST endpoint, or ClusterStateResponse#getTotalCompressedSize
via the
transport client. Computing this field is expensive, and has dubious reporting
value as it does not reflect the actual size of the cluster state on disk. The
expense of computing this field is such that in some situations it can disrupt
all activity on a node including indexing activity. Therefore we have elected to
by default stop computing this field in a minor release. We are providing a
backwards compatibility flag via the system property
-Des.cluster_state.size=true
which will return to the previous 6.0.0—6.6.2
behavior. Computing this metric and displaying this field will be completely
removed in 7.0.0, and using this backwards compatibility flag will fail.
Security changesedit
Removed support for pre v6.2 tokensedit
The token service no longer accepts tokens that were generated on an Elasticsearch version earlier than 6.2.0
No applications in the Elastic Stack made use of Elasticsearch tokens prior to 6.2.0, so this
change does not affect access to Kibana or any official Elasticsearch clients.
If you have an application that uses Elasticsearch tokens, and a token from 6.1 or earlier
is presented for authentication, Elasticsearch will reject the token with a 401
status code.