settings.asciidoc 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. [[breaking_50_settings_changes]]
  2. === Settings changes
  3. From Elasticsearch 5.0 on all settings are validated before they are applied.
  4. Node level and default index level settings are validated on node startup,
  5. dynamic cluster and index setting are validated before they are updated/added
  6. to the cluster state.
  7. Every setting must be a *known* setting. All settings must have been
  8. registered with the node or transport client they are used with. This implies
  9. that plugins that define custom settings must register all of their settings
  10. during plugin loading using the `SettingsModule#registerSettings(Setting)`
  11. method.
  12. ==== Index Level Settings
  13. In previous versions Elasticsearch allowed to specify index level setting
  14. as _defaults_ on the node level, inside the `elasticsearch.yaml` file or even via
  15. command-line parameters. From Elasticsearch 5.0 on only selected settings like
  16. for instance `index.codec` can be set on the node level. All other settings must be
  17. set on each individual index. To set default values on every index, index templates
  18. should be used instead.
  19. ==== Node settings
  20. The `name` setting has been removed and is replaced by `node.name`. Usage of
  21. `-Dname=some_node_name` is not supported anymore.
  22. ==== Node attribute settings
  23. Node level attributes used for allocation filtering, forced awareness or other node identification / grouping
  24. must be prefixed with `node.attr`. In previous versions it was possible to specify node attributes with the `node.`
  25. prefix. All node attributes except of `node.master`, `node.data` and `node.ingest` must be moved to the new `node.attr.`
  26. namespace.
  27. ==== Node types settings
  28. The `node.client` setting has been removed. A node with such a setting set will not
  29. start up. Instead, each node role needs to be set separately using the existing
  30. `node.master`, `node.data` and `node.ingest` supported static settings.
  31. ==== Gateway settings
  32. The `gateway.format` setting for configuring global and index state serialization
  33. format has been removed. By default, `smile` is used as the format.
  34. ==== Transport Settings
  35. All settings with a `netty` infix have been replaced by their already existing
  36. `transport` synonyms. For instance `transport.netty.bind_host` is no longer
  37. supported and should be replaced by the superseding setting
  38. `transport.bind_host`.
  39. ==== Security manager settings
  40. The option to disable the security manager `security.manager.enabled` has been
  41. removed. In order to grant special permissions to elasticsearch users must
  42. edit the local Java Security Policy.
  43. ==== Network settings
  44. The `_non_loopback_` value for settings like `network.host` would arbitrarily
  45. pick the first interface not marked as loopback. Instead, specify by address
  46. scope (e.g. `_local_,_site_` for all loopback and private network addresses)
  47. or by explicit interface names, hostnames, or addresses.
  48. ==== Forbid changing of thread pool types
  49. Previously, <<modules-threadpool,thread pool types>> could be dynamically
  50. adjusted. The thread pool type effectively controls the backing queue for the
  51. thread pool and modifying this is an expert setting with minimal practical
  52. benefits and high risk of being misused. The ability to change the thread pool
  53. type for any thread pool has been removed. It is still possible to adjust
  54. relevant thread pool parameters for each of the thread pools (e.g., depending
  55. on the thread pool type, `keep_alive`, `queue_size`, etc.).
  56. ==== Threadpool settings
  57. The `suggest` threadpool has been removed, now suggest requests use the
  58. `search` threadpool.
  59. ==== Analysis settings
  60. The `index.analysis.analyzer.default_index` analyzer is not supported anymore.
  61. If you wish to change the analyzer to use for indexing, change the
  62. `index.analysis.analyzer.default` analyzer instead.
  63. ==== Ping settings
  64. Previously, there were three settings for the ping timeout:
  65. `discovery.zen.initial_ping_timeout`, `discovery.zen.ping.timeout` and
  66. `discovery.zen.ping_timeout`. The former two have been removed and the only
  67. setting key for the ping timeout is now `discovery.zen.ping_timeout`. The
  68. default value for ping timeouts remains at three seconds.
  69. `discovery.zen.master_election.filter_client` and `discovery.zen.master_election.filter_data` have
  70. been removed in favor of the new `discovery.zen.master_election.ignore_non_master_pings`. This setting control how ping responses
  71. are interpreted during master election and should be used with care and only in extreme cases. See documentation for details.
  72. ==== Recovery settings
  73. Recovery settings deprecated in 1.x have been removed:
  74. * `index.shard.recovery.translog_size` is superseded by `indices.recovery.translog_size`
  75. * `index.shard.recovery.translog_ops` is superseded by `indices.recovery.translog_ops`
  76. * `index.shard.recovery.file_chunk_size` is superseded by `indices.recovery.file_chunk_size`
  77. * `index.shard.recovery.concurrent_streams` is superseded by `indices.recovery.concurrent_streams`
  78. * `index.shard.recovery.concurrent_small_file_streams` is superseded by `indices.recovery.concurrent_small_file_streams`
  79. * `indices.recovery.max_size_per_sec` is superseded by `indices.recovery.max_bytes_per_sec`
  80. If you are using any of these settings please take the time to review their
  81. purpose. All of the settings above are considered _expert settings_ and should
  82. only be used if absolutely necessary. If you have set any of the above setting
  83. as persistent cluster settings please use the settings update API and set
  84. their superseded keys accordingly.
  85. The following settings have been removed without replacement
  86. * `indices.recovery.concurrent_small_file_streams` - recoveries are now single threaded. The number of concurrent outgoing recoveries are throttled via allocation deciders
  87. * `indices.recovery.concurrent_file_streams` - recoveries are now single threaded. The number of concurrent outgoing recoveries are throttled via allocation deciders
  88. ==== Translog settings
  89. The `index.translog.flush_threshold_ops` setting is not supported anymore. In
  90. order to control flushes based on the transaction log growth use
  91. `index.translog.flush_threshold_size` instead.
  92. Changing the translog type with `index.translog.fs.type` is not supported
  93. anymore, the `buffered` implementation is now the only available option and
  94. uses a fixed `8kb` buffer.
  95. The translog by default is fsynced after every `index`, `create`, `update`,
  96. `delete`, or `bulk` request. The ability to fsync on every operation is not
  97. necessary anymore. In fact, it can be a performance bottleneck and it's trappy
  98. since it enabled by a special value set on `index.translog.sync_interval`.
  99. Now, `index.translog.sync_interval` doesn't accept a value less than `100ms`
  100. which prevents fsyncing too often if async durability is enabled. The special
  101. value `0` is no longer supported.
  102. `index.translog.interval` has been removed.
  103. ==== Request Cache Settings
  104. The deprecated settings `index.cache.query.enable` and
  105. `indices.cache.query.size` have been removed and are replaced with
  106. `index.requests.cache.enable` and `indices.requests.cache.size` respectively.
  107. `indices.requests.cache.clean_interval` has been replaced with
  108. `indices.cache.clean_interval` and is no longer supported.
  109. ==== Field Data Cache Settings
  110. The `indices.fielddata.cache.clean_interval` setting has been replaced with
  111. `indices.cache.clean_interval`.
  112. ==== Allocation settings
  113. The `cluster.routing.allocation.concurrent_recoveries` setting has been
  114. replaced with `cluster.routing.allocation.node_concurrent_recoveries`.
  115. ==== Similarity settings
  116. The 'default' similarity has been renamed to 'classic'.
  117. ==== Indexing settings
  118. The `indices.memory.min_shard_index_buffer_size` and
  119. `indices.memory.max_shard_index_buffer_size` have been removed as
  120. Elasticsearch now allows any one shard to use amount of heap as long as the
  121. total indexing buffer heap used across all shards is below the node's
  122. `indices.memory.index_buffer_size` (defaults to 10% of the JVM heap).
  123. ==== Removed es.max-open-files
  124. Setting the system property es.max-open-files to true to get
  125. Elasticsearch to print the number of maximum open files for the
  126. Elasticsearch process has been removed. This same information can be
  127. obtained from the <<cluster-nodes-info>> API, and a warning is logged
  128. on startup if it is set too low.
  129. ==== Removed es.netty.gathering
  130. Disabling Netty from using NIO gathering could be done via the escape
  131. hatch of setting the system property "es.netty.gathering" to "false".
  132. Time has proven enabling gathering by default is a non-issue and this
  133. non-documented setting has been removed.
  134. ==== Removed es.useLinkedTransferQueue
  135. The system property `es.useLinkedTransferQueue` could be used to
  136. control the queue implementation used in the cluster service and the
  137. handling of ping responses during discovery. This was an undocumented
  138. setting and has been removed.
  139. ==== Cache concurrency level settings removed
  140. Two cache concurrency level settings
  141. `indices.requests.cache.concurrency_level` and
  142. `indices.fielddata.cache.concurrency_level` because they no longer apply to
  143. the cache implementation used for the request cache and the field data cache.
  144. ==== Using system properties to configure Elasticsearch
  145. Elasticsearch can no longer be configured by setting system properties.
  146. Instead, use `-Ename.of.setting=value.of.setting`.
  147. ==== Removed using double-dashes to configure Elasticsearch
  148. Elasticsearch could previously be configured on the command line by
  149. setting settings via `--name.of.setting value.of.setting`. This feature
  150. has been removed. Instead, use `-Ename.of.setting=value.of.setting`.
  151. ==== Discovery Settings
  152. The `discovery.zen.minimum_master_node` must be set for nodes that have
  153. `network.host`, `network.bind_host`, `network.publish_host`,
  154. `transport.host`, `transport.bind_host`, or `transport.publish_host`
  155. configuration options set. We see those nodes as in "production" mode
  156. and thus require the setting.
  157. ==== Realtime get setting
  158. The `action.get.realtime` setting has been removed. This setting was
  159. a fallback realtime setting for the get and mget APIs when realtime
  160. wasn't specified. Now if the parameter isn't specified we always
  161. default to true.
  162. === Script settings
  163. ==== Indexed script settings
  164. Due to the fact that indexed script has been replaced by stored
  165. scripts the following settings have been replaced to:
  166. * `script.indexed` has been replaced by `script.stored`
  167. * `script.engine.*.indexed.aggs` has been replaced by `script.engine.*.stored.aggs` (where `*` represents the script language, like `groovy`, `mustache`, `plainless` etc.)
  168. * `script.engine.*.indexed.mapping` has been replaced by `script.engine.*.stored.mapping` (where `*` represents the script language, like `groovy`, `mustache`, `plainless` etc.)
  169. * `script.engine.*.indexed.search` has been replaced by `script.engine.*.stored.search` (where `*` represents the script language, like `groovy`, `mustache`, `plainless` etc.)
  170. * `script.engine.*.indexed.update` has been replaced by `script.engine.*.stored.update` (where `*` represents the script language, like `groovy`, `mustache`, `plainless` etc.)
  171. * `script.engine.*.indexed.plugin` has been replaced by `script.engine.*.stored.plugin` (where `*` represents the script language, like `groovy`, `mustache`, `plainless` etc.)
  172. ==== Script mode settings
  173. Previously script mode settings (e.g., "script.inline: true",
  174. "script.engine.groovy.inline.aggs: false", etc.) accepted a wide range of
  175. "truthy" or "falsy" values. This is now much stricter and supports only the
  176. `true` and `false` options.
  177. ==== Script sandbox settings removed
  178. Prior to 5.0 a third option could be specified for the `script.inline` and
  179. `script.stored` settings ("sandbox"). This has been removed, You can now only
  180. set `script.line: true` or `script.stored: true`.
  181. ==== Search settings
  182. The setting `index.query.bool.max_clause_count` has been removed. In order to
  183. set the maximum number of boolean clauses `indices.query.bool.max_clause_count`
  184. should be used instead.
  185. ==== Memory lock settings
  186. The setting `bootstrap.mlockall` has been renamed to
  187. `bootstrap.memory_lock`.