123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254 |
- [[breaking_50_settings_changes]]
- === Settings changes
- From Elasticsearch 5.0 on all settings are validated before they are applied.
- Node level and default index level settings are validated on node startup,
- dynamic cluster and index setting are validated before they are updated/added
- to the cluster state.
- Every setting must be a *known* setting. All settings must have been
- registered with the node or transport client they are used with. This implies
- that plugins that define custom settings must register all of their settings
- during plugin loading using the `SettingsModule#registerSettings(Setting)`
- method.
- ==== Index Level Settings
- In previous versions Elasticsearch allowed to specify index level setting
- as _defaults_ on the node level, inside the `elasticsearch.yaml` file or even via
- command-line parameters. From Elasticsearch 5.0 on only selected settings like
- for instance `index.codec` can be set on the node level. All other settings must be
- set on each individual index. To set default values on every index, index templates
- should be used instead.
- ==== Node settings
- The `name` setting has been removed and is replaced by `node.name`. Usage of
- `-Dname=some_node_name` is not supported anymore.
- ==== Node attribute settings
- Node level attributes used for allocation filtering, forced awareness or other node identification / grouping
- must be prefixed with `node.attr`. In previous versions it was possible to specify node attributes with the `node.`
- prefix. All node attributes except of `node.master`, `node.data` and `node.ingest` must be moved to the new `node.attr.`
- namespace.
- ==== Node types settings
- The `node.client` setting has been removed. A node with such a setting set will not
- start up. Instead, each node role needs to be set separately using the existing
- `node.master`, `node.data` and `node.ingest` supported static settings.
- ==== Gateway settings
- The `gateway.format` setting for configuring global and index state serialization
- format has been removed. By default, `smile` is used as the format.
- ==== Transport Settings
- All settings with a `netty` infix have been replaced by their already existing
- `transport` synonyms. For instance `transport.netty.bind_host` is no longer
- supported and should be replaced by the superseding setting
- `transport.bind_host`.
- ==== Script mode settings
- Previously script mode settings (e.g., "script.inline: true",
- "script.engine.groovy.inline.aggs: false", etc.) accepted the values
- `on`, `true`, `1`, and `yes` for enabling a scripting mode, and the
- values `off`, `false`, `0`, and `no` for disabling a scripting mode.
- The variants `on`, `1`, and `yes` for enabling and `off`, `0`,
- and `no` for disabling are no longer supported.
- ==== Security manager settings
- The option to disable the security manager `security.manager.enabled` has been
- removed. In order to grant special permissions to elasticsearch users must
- edit the local Java Security Policy.
- ==== Network settings
- The `_non_loopback_` value for settings like `network.host` would arbitrarily
- pick the first interface not marked as loopback. Instead, specify by address
- scope (e.g. `_local_,_site_` for all loopback and private network addresses)
- or by explicit interface names, hostnames, or addresses.
- ==== Forbid changing of thread pool types
- Previously, <<modules-threadpool,thread pool types>> could be dynamically
- adjusted. The thread pool type effectively controls the backing queue for the
- thread pool and modifying this is an expert setting with minimal practical
- benefits and high risk of being misused. The ability to change the thread pool
- type for any thread pool has been removed. It is still possible to adjust
- relevant thread pool parameters for each of the thread pools (e.g., depending
- on the thread pool type, `keep_alive`, `queue_size`, etc.).
- ==== Threadpool settings
- The `suggest` threadpool has been removed, now suggest requests use the
- `search` threadpool.
- ==== Analysis settings
- The `index.analysis.analyzer.default_index` analyzer is not supported anymore.
- If you wish to change the analyzer to use for indexing, change the
- `index.analysis.analyzer.default` analyzer instead.
- ==== Ping settings
- Previously, there were three settings for the ping timeout:
- `discovery.zen.initial_ping_timeout`, `discovery.zen.ping.timeout` and
- `discovery.zen.ping_timeout`. The former two have been removed and the only
- setting key for the ping timeout is now `discovery.zen.ping_timeout`. The
- default value for ping timeouts remains at three seconds.
- `discovery.zen.master_election.filter_client` and `discovery.zen.master_election.filter_data` have
- been removed in favor of the new `discovery.zen.master_election.ignore_non_master_pings`. This setting control how ping responses
- are interpreted during master election and should be used with care and only in extreme cases. See documentation for details.
- ==== Recovery settings
- Recovery settings deprecated in 1.x have been removed:
- * `index.shard.recovery.translog_size` is superseded by `indices.recovery.translog_size`
- * `index.shard.recovery.translog_ops` is superseded by `indices.recovery.translog_ops`
- * `index.shard.recovery.file_chunk_size` is superseded by `indices.recovery.file_chunk_size`
- * `index.shard.recovery.concurrent_streams` is superseded by `indices.recovery.concurrent_streams`
- * `index.shard.recovery.concurrent_small_file_streams` is superseded by `indices.recovery.concurrent_small_file_streams`
- * `indices.recovery.max_size_per_sec` is superseded by `indices.recovery.max_bytes_per_sec`
- If you are using any of these settings please take the time to review their
- purpose. All of the settings above are considered _expert settings_ and should
- only be used if absolutely necessary. If you have set any of the above setting
- as persistent cluster settings please use the settings update API and set
- their superseded keys accordingly.
- The following settings have been removed without replacement
- * `indices.recovery.concurrent_small_file_streams` - recoveries are now single threaded. The number of concurrent outgoing recoveries are throttled via allocation deciders
- * `indices.recovery.concurrent_file_streams` - recoveries are now single threaded. The number of concurrent outgoing recoveries are throttled via allocation deciders
- ==== Translog settings
- The `index.translog.flush_threshold_ops` setting is not supported anymore. In
- order to control flushes based on the transaction log growth use
- `index.translog.flush_threshold_size` instead.
- Changing the translog type with `index.translog.fs.type` is not supported
- anymore, the `buffered` implementation is now the only available option and
- uses a fixed `8kb` buffer.
- The translog by default is fsynced after every `index`, `create`, `update`,
- `delete`, or `bulk` request. The ability to fsync on every operation is not
- necessary anymore. In fact, it can be a performance bottleneck and it's trappy
- since it enabled by a special value set on `index.translog.sync_interval`.
- Now, `index.translog.sync_interval` doesn't accept a value less than `100ms`
- which prevents fsyncing too often if async durability is enabled. The special
- value `0` is no longer supported.
- `index.translog.interval` has been removed.
- ==== Request Cache Settings
- The deprecated settings `index.cache.query.enable` and
- `indices.cache.query.size` have been removed and are replaced with
- `index.requests.cache.enable` and `indices.requests.cache.size` respectively.
- `indices.requests.cache.clean_interval` has been replaced with
- `indices.cache.clean_interval` and is no longer supported.
- ==== Field Data Cache Settings
- The `indices.fielddata.cache.clean_interval` setting has been replaced with
- `indices.cache.clean_interval`.
- ==== Allocation settings
- The `cluster.routing.allocation.concurrent_recoveries` setting has been
- replaced with `cluster.routing.allocation.node_concurrent_recoveries`.
- ==== Similarity settings
- The 'default' similarity has been renamed to 'classic'.
- ==== Indexing settings
- The `indices.memory.min_shard_index_buffer_size` and
- `indices.memory.max_shard_index_buffer_size` have been removed as
- Elasticsearch now allows any one shard to use amount of heap as long as the
- total indexing buffer heap used across all shards is below the node's
- `indices.memory.index_buffer_size` (defaults to 10% of the JVM heap).
- ==== Removed es.max-open-files
- Setting the system property es.max-open-files to true to get
- Elasticsearch to print the number of maximum open files for the
- Elasticsearch process has been removed. This same information can be
- obtained from the <<cluster-nodes-info>> API, and a warning is logged
- on startup if it is set too low.
- ==== Removed es.netty.gathering
- Disabling Netty from using NIO gathering could be done via the escape
- hatch of setting the system property "es.netty.gathering" to "false".
- Time has proven enabling gathering by default is a non-issue and this
- non-documented setting has been removed.
- ==== Removed es.useLinkedTransferQueue
- The system property `es.useLinkedTransferQueue` could be used to
- control the queue implementation used in the cluster service and the
- handling of ping responses during discovery. This was an undocumented
- setting and has been removed.
- ==== Cache concurrency level settings removed
- Two cache concurrency level settings
- `indices.requests.cache.concurrency_level` and
- `indices.fielddata.cache.concurrency_level` because they no longer apply to
- the cache implementation used for the request cache and the field data cache.
- ==== Using system properties to configure Elasticsearch
- Elasticsearch can be configured by setting system properties on the
- command line via `-Des.name.of.property=value.of.property`. This will be
- removed in a future version of Elasticsearch. Instead, use
- `-E es.name.of.setting=value.of.setting`. Note that in all cases the
- name of the setting must be prefixed with `es.`.
- ==== Removed using double-dashes to configure Elasticsearch
- Elasticsearch could previously be configured on the command line by
- setting settings via `--name.of.setting value.of.setting`. This feature
- has been removed. Instead, use
- `-Ees.name.of.setting=value.of.setting`. Note that in all cases the
- name of the setting must be prefixed with `es.`.
- ==== Discovery Settings
- The `discovery.zen.minimum_master_node` must be set for nodes that have
- `network.host`, `network.bind_host`, `network.publish_host`,
- `transport.host`, `transport.bind_host`, or `transport.publish_host`
- configuration options set. We see those nodes as in "production" mode
- and thus require the setting.
- ==== Realtime get setting
- The `action.get.realtime` setting has been removed. This setting was
- a fallback realtime setting for the get and mget APIs when realtime
- wasn't specified. Now if the parameter isn't specified we always
- default to true.
- ==== Indexed script settings
- Due to the fact that indexed script has been replaced by stored
- scripts the following settings have been replaced to:
- * `script.indexed` has been replaced by `script.stored`
- * `script.engine.*.indexed.aggs` has been replaced by `script.engine.*.stored.aggs` (where `*` represents the script language, like `groovy`, `mustache`, `plainless` etc.)
- * `script.engine.*.stored.mapping` has been replaced by `script.engine.*.stored.mapping` (where `*` represents the script language, like `groovy`, `mustache`, `plainless` etc.)
- * `script.engine.*.stored.search` has been replaced by `script.engine.*.stored.search` (where `*` represents the script language, like `groovy`, `mustache`, `plainless` etc.)
- * `script.engine.*.stored.update` has been replaced by `script.engine.*.stored.update` (where `*` represents the script language, like `groovy`, `mustache`, `plainless` etc.)
- * `script.engine.*.stored.plugin` has been replaced by `script.engine.*.stored.plugin` (where `*` represents the script language, like `groovy`, `mustache`, `plainless` etc.)
|