settings.asciidoc 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  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. ==== Script mode settings
  40. Previously script mode settings (e.g., "script.inline: true",
  41. "script.engine.groovy.inline.aggs: false", etc.) accepted the values
  42. `on`, `true`, `1`, and `yes` for enabling a scripting mode, and the
  43. values `off`, `false`, `0`, and `no` for disabling a scripting mode.
  44. The variants `on`, `1`, and `yes` for enabling and `off`, `0`,
  45. and `no` for disabling are no longer supported.
  46. ==== Security manager settings
  47. The option to disable the security manager `security.manager.enabled` has been
  48. removed. In order to grant special permissions to elasticsearch users must
  49. edit the local Java Security Policy.
  50. ==== Network settings
  51. The `_non_loopback_` value for settings like `network.host` would arbitrarily
  52. pick the first interface not marked as loopback. Instead, specify by address
  53. scope (e.g. `_local_,_site_` for all loopback and private network addresses)
  54. or by explicit interface names, hostnames, or addresses.
  55. ==== Forbid changing of thread pool types
  56. Previously, <<modules-threadpool,thread pool types>> could be dynamically
  57. adjusted. The thread pool type effectively controls the backing queue for the
  58. thread pool and modifying this is an expert setting with minimal practical
  59. benefits and high risk of being misused. The ability to change the thread pool
  60. type for any thread pool has been removed. It is still possible to adjust
  61. relevant thread pool parameters for each of the thread pools (e.g., depending
  62. on the thread pool type, `keep_alive`, `queue_size`, etc.).
  63. ==== Threadpool settings
  64. The `suggest` threadpool has been removed, now suggest requests use the
  65. `search` threadpool.
  66. ==== Analysis settings
  67. The `index.analysis.analyzer.default_index` analyzer is not supported anymore.
  68. If you wish to change the analyzer to use for indexing, change the
  69. `index.analysis.analyzer.default` analyzer instead.
  70. ==== Ping settings
  71. Previously, there were three settings for the ping timeout:
  72. `discovery.zen.initial_ping_timeout`, `discovery.zen.ping.timeout` and
  73. `discovery.zen.ping_timeout`. The former two have been removed and the only
  74. setting key for the ping timeout is now `discovery.zen.ping_timeout`. The
  75. default value for ping timeouts remains at three seconds.
  76. `discovery.zen.master_election.filter_client` and `discovery.zen.master_election.filter_data` have
  77. been removed in favor of the new `discovery.zen.master_election.ignore_non_master_pings`. This setting control how ping responses
  78. are interpreted during master election and should be used with care and only in extreme cases. See documentation for details.
  79. ==== Recovery settings
  80. Recovery settings deprecated in 1.x have been removed:
  81. * `index.shard.recovery.translog_size` is superseded by `indices.recovery.translog_size`
  82. * `index.shard.recovery.translog_ops` is superseded by `indices.recovery.translog_ops`
  83. * `index.shard.recovery.file_chunk_size` is superseded by `indices.recovery.file_chunk_size`
  84. * `index.shard.recovery.concurrent_streams` is superseded by `indices.recovery.concurrent_streams`
  85. * `index.shard.recovery.concurrent_small_file_streams` is superseded by `indices.recovery.concurrent_small_file_streams`
  86. * `indices.recovery.max_size_per_sec` is superseded by `indices.recovery.max_bytes_per_sec`
  87. If you are using any of these settings please take the time to review their
  88. purpose. All of the settings above are considered _expert settings_ and should
  89. only be used if absolutely necessary. If you have set any of the above setting
  90. as persistent cluster settings please use the settings update API and set
  91. their superseded keys accordingly.
  92. The following settings have been removed without replacement
  93. * `indices.recovery.concurrent_small_file_streams` - recoveries are now single threaded. The number of concurrent outgoing recoveries are throttled via allocation deciders
  94. * `indices.recovery.concurrent_file_streams` - recoveries are now single threaded. The number of concurrent outgoing recoveries are throttled via allocation deciders
  95. ==== Translog settings
  96. The `index.translog.flush_threshold_ops` setting is not supported anymore. In
  97. order to control flushes based on the transaction log growth use
  98. `index.translog.flush_threshold_size` instead.
  99. Changing the translog type with `index.translog.fs.type` is not supported
  100. anymore, the `buffered` implementation is now the only available option and
  101. uses a fixed `8kb` buffer.
  102. The translog by default is fsynced after every `index`, `create`, `update`,
  103. `delete`, or `bulk` request. The ability to fsync on every operation is not
  104. necessary anymore. In fact, it can be a performance bottleneck and it's trappy
  105. since it enabled by a special value set on `index.translog.sync_interval`.
  106. Now, `index.translog.sync_interval` doesn't accept a value less than `100ms`
  107. which prevents fsyncing too often if async durability is enabled. The special
  108. value `0` is no longer supported.
  109. `index.translog.interval` has been removed.
  110. ==== Request Cache Settings
  111. The deprecated settings `index.cache.query.enable` and
  112. `indices.cache.query.size` have been removed and are replaced with
  113. `index.requests.cache.enable` and `indices.requests.cache.size` respectively.
  114. `indices.requests.cache.clean_interval` has been replaced with
  115. `indices.cache.clean_interval` and is no longer supported.
  116. ==== Field Data Cache Settings
  117. The `indices.fielddata.cache.clean_interval` setting has been replaced with
  118. `indices.cache.clean_interval`.
  119. ==== Allocation settings
  120. The `cluster.routing.allocation.concurrent_recoveries` setting has been
  121. replaced with `cluster.routing.allocation.node_concurrent_recoveries`.
  122. ==== Similarity settings
  123. The 'default' similarity has been renamed to 'classic'.
  124. ==== Indexing settings
  125. The `indices.memory.min_shard_index_buffer_size` and
  126. `indices.memory.max_shard_index_buffer_size` have been removed as
  127. Elasticsearch now allows any one shard to use amount of heap as long as the
  128. total indexing buffer heap used across all shards is below the node's
  129. `indices.memory.index_buffer_size` (defaults to 10% of the JVM heap).
  130. ==== Removed es.max-open-files
  131. Setting the system property es.max-open-files to true to get
  132. Elasticsearch to print the number of maximum open files for the
  133. Elasticsearch process has been removed. This same information can be
  134. obtained from the <<cluster-nodes-info>> API, and a warning is logged
  135. on startup if it is set too low.
  136. ==== Removed es.netty.gathering
  137. Disabling Netty from using NIO gathering could be done via the escape
  138. hatch of setting the system property "es.netty.gathering" to "false".
  139. Time has proven enabling gathering by default is a non-issue and this
  140. non-documented setting has been removed.
  141. ==== Removed es.useLinkedTransferQueue
  142. The system property `es.useLinkedTransferQueue` could be used to
  143. control the queue implementation used in the cluster service and the
  144. handling of ping responses during discovery. This was an undocumented
  145. setting and has been removed.
  146. ==== Cache concurrency level settings removed
  147. Two cache concurrency level settings
  148. `indices.requests.cache.concurrency_level` and
  149. `indices.fielddata.cache.concurrency_level` because they no longer apply to
  150. the cache implementation used for the request cache and the field data cache.
  151. ==== Using system properties to configure Elasticsearch
  152. Elasticsearch can be configured by setting system properties on the
  153. command line via `-Des.name.of.property=value.of.property`. This will be
  154. removed in a future version of Elasticsearch. Instead, use
  155. `-E es.name.of.setting=value.of.setting`. Note that in all cases the
  156. name of the setting must be prefixed with `es.`.
  157. ==== Removed using double-dashes to configure Elasticsearch
  158. Elasticsearch could previously be configured on the command line by
  159. setting settings via `--name.of.setting value.of.setting`. This feature
  160. has been removed. Instead, use
  161. `-Ees.name.of.setting=value.of.setting`. Note that in all cases the
  162. name of the setting must be prefixed with `es.`.
  163. ==== Discovery Settings
  164. The `discovery.zen.minimum_master_node` must be set for nodes that have
  165. `network.host`, `network.bind_host`, `network.publish_host`,
  166. `transport.host`, `transport.bind_host`, or `transport.publish_host`
  167. configuration options set. We see those nodes as in "production" mode
  168. and thus require the setting.
  169. ==== Realtime get setting
  170. The `action.get.realtime` setting has been removed. This setting was
  171. a fallback realtime setting for the get and mget APIs when realtime
  172. wasn't specified. Now if the parameter isn't specified we always
  173. default to true.
  174. ==== Indexed script settings
  175. Due to the fact that indexed script has been replaced by stored
  176. scripts the following settings have been replaced to:
  177. * `script.indexed` has been replaced by `script.stored`
  178. * `script.engine.*.indexed.aggs` has been replaced by `script.engine.*.stored.aggs` (where `*` represents the script language, like `groovy`, `mustache`, `plainless` etc.)
  179. * `script.engine.*.stored.mapping` has been replaced by `script.engine.*.stored.mapping` (where `*` represents the script language, like `groovy`, `mustache`, `plainless` etc.)
  180. * `script.engine.*.stored.search` has been replaced by `script.engine.*.stored.search` (where `*` represents the script language, like `groovy`, `mustache`, `plainless` etc.)
  181. * `script.engine.*.stored.update` has been replaced by `script.engine.*.stored.update` (where `*` represents the script language, like `groovy`, `mustache`, `plainless` etc.)
  182. * `script.engine.*.stored.plugin` has been replaced by `script.engine.*.stored.plugin` (where `*` represents the script language, like `groovy`, `mustache`, `plainless` etc.)