ClusterSettings.java 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586
  1. /*
  2. * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
  3. * or more contributor license agreements. Licensed under the Elastic License
  4. * 2.0 and the Server Side Public License, v 1; you may not use this file except
  5. * in compliance with, at your election, the Elastic License 2.0 or the Server
  6. * Side Public License, v 1.
  7. */
  8. package org.elasticsearch.common.settings;
  9. import org.apache.logging.log4j.LogManager;
  10. import org.elasticsearch.action.admin.cluster.configuration.TransportAddVotingConfigExclusionsAction;
  11. import org.elasticsearch.action.admin.indices.close.TransportCloseIndexAction;
  12. import org.elasticsearch.action.bulk.WriteAckDelay;
  13. import org.elasticsearch.action.ingest.SimulatePipelineTransportAction;
  14. import org.elasticsearch.action.search.TransportSearchAction;
  15. import org.elasticsearch.action.support.AutoCreateIndex;
  16. import org.elasticsearch.action.support.DestructiveOperations;
  17. import org.elasticsearch.action.support.replication.TransportReplicationAction;
  18. import org.elasticsearch.bootstrap.BootstrapSettings;
  19. import org.elasticsearch.client.internal.Client;
  20. import org.elasticsearch.cluster.ClusterModule;
  21. import org.elasticsearch.cluster.ClusterName;
  22. import org.elasticsearch.cluster.InternalClusterInfoService;
  23. import org.elasticsearch.cluster.NodeConnectionsService;
  24. import org.elasticsearch.cluster.action.index.MappingUpdatedAction;
  25. import org.elasticsearch.cluster.coordination.ClusterBootstrapService;
  26. import org.elasticsearch.cluster.coordination.ClusterFormationFailureHelper;
  27. import org.elasticsearch.cluster.coordination.CoordinationDiagnosticsService;
  28. import org.elasticsearch.cluster.coordination.Coordinator;
  29. import org.elasticsearch.cluster.coordination.ElectionSchedulerFactory;
  30. import org.elasticsearch.cluster.coordination.FollowersChecker;
  31. import org.elasticsearch.cluster.coordination.JoinValidationService;
  32. import org.elasticsearch.cluster.coordination.LagDetector;
  33. import org.elasticsearch.cluster.coordination.LeaderChecker;
  34. import org.elasticsearch.cluster.coordination.MasterHistory;
  35. import org.elasticsearch.cluster.coordination.NoMasterBlockService;
  36. import org.elasticsearch.cluster.coordination.Reconfigurator;
  37. import org.elasticsearch.cluster.metadata.DataLifecycle;
  38. import org.elasticsearch.cluster.metadata.IndexGraveyard;
  39. import org.elasticsearch.cluster.metadata.Metadata;
  40. import org.elasticsearch.cluster.routing.OperationRouting;
  41. import org.elasticsearch.cluster.routing.allocation.DataTier;
  42. import org.elasticsearch.cluster.routing.allocation.DiskThresholdSettings;
  43. import org.elasticsearch.cluster.routing.allocation.allocator.BalancedShardsAllocator;
  44. import org.elasticsearch.cluster.routing.allocation.allocator.DesiredBalanceComputer;
  45. import org.elasticsearch.cluster.routing.allocation.allocator.DesiredBalanceReconciler;
  46. import org.elasticsearch.cluster.routing.allocation.decider.AwarenessAllocationDecider;
  47. import org.elasticsearch.cluster.routing.allocation.decider.ClusterRebalanceAllocationDecider;
  48. import org.elasticsearch.cluster.routing.allocation.decider.ConcurrentRebalanceAllocationDecider;
  49. import org.elasticsearch.cluster.routing.allocation.decider.DiskThresholdDecider;
  50. import org.elasticsearch.cluster.routing.allocation.decider.EnableAllocationDecider;
  51. import org.elasticsearch.cluster.routing.allocation.decider.FilterAllocationDecider;
  52. import org.elasticsearch.cluster.routing.allocation.decider.SameShardAllocationDecider;
  53. import org.elasticsearch.cluster.routing.allocation.decider.ShardsLimitAllocationDecider;
  54. import org.elasticsearch.cluster.routing.allocation.decider.ThrottlingAllocationDecider;
  55. import org.elasticsearch.cluster.service.ClusterApplierService;
  56. import org.elasticsearch.cluster.service.ClusterService;
  57. import org.elasticsearch.cluster.service.MasterService;
  58. import org.elasticsearch.common.logging.Loggers;
  59. import org.elasticsearch.common.network.NetworkModule;
  60. import org.elasticsearch.common.network.NetworkService;
  61. import org.elasticsearch.common.settings.Setting.Property;
  62. import org.elasticsearch.common.util.PageCacheRecycler;
  63. import org.elasticsearch.common.util.concurrent.EsExecutors;
  64. import org.elasticsearch.common.util.concurrent.ThreadContext;
  65. import org.elasticsearch.discovery.DiscoveryModule;
  66. import org.elasticsearch.discovery.HandshakingTransportAddressConnector;
  67. import org.elasticsearch.discovery.PeerFinder;
  68. import org.elasticsearch.discovery.SeedHostsResolver;
  69. import org.elasticsearch.discovery.SettingsBasedSeedHostsProvider;
  70. import org.elasticsearch.env.Environment;
  71. import org.elasticsearch.env.NodeEnvironment;
  72. import org.elasticsearch.gateway.GatewayService;
  73. import org.elasticsearch.gateway.PersistedClusterStateService;
  74. import org.elasticsearch.health.node.LocalHealthMonitor;
  75. import org.elasticsearch.health.node.action.TransportHealthNodeAction;
  76. import org.elasticsearch.health.node.selection.HealthNodeTaskExecutor;
  77. import org.elasticsearch.http.HttpTransportSettings;
  78. import org.elasticsearch.index.IndexModule;
  79. import org.elasticsearch.index.IndexSettings;
  80. import org.elasticsearch.index.IndexingPressure;
  81. import org.elasticsearch.indices.IndexingMemoryController;
  82. import org.elasticsearch.indices.IndicesQueryCache;
  83. import org.elasticsearch.indices.IndicesRequestCache;
  84. import org.elasticsearch.indices.IndicesService;
  85. import org.elasticsearch.indices.ShardLimitValidator;
  86. import org.elasticsearch.indices.analysis.HunspellService;
  87. import org.elasticsearch.indices.breaker.BreakerSettings;
  88. import org.elasticsearch.indices.breaker.HierarchyCircuitBreakerService;
  89. import org.elasticsearch.indices.cluster.IndicesClusterStateService;
  90. import org.elasticsearch.indices.fielddata.cache.IndicesFieldDataCache;
  91. import org.elasticsearch.indices.recovery.RecoverySettings;
  92. import org.elasticsearch.indices.store.IndicesStore;
  93. import org.elasticsearch.ingest.IngestSettings;
  94. import org.elasticsearch.monitor.fs.FsHealthService;
  95. import org.elasticsearch.monitor.fs.FsService;
  96. import org.elasticsearch.monitor.jvm.JvmGcMonitorService;
  97. import org.elasticsearch.monitor.jvm.JvmService;
  98. import org.elasticsearch.monitor.os.OsService;
  99. import org.elasticsearch.monitor.process.ProcessService;
  100. import org.elasticsearch.node.Node;
  101. import org.elasticsearch.node.NodeRoleSettings;
  102. import org.elasticsearch.persistent.PersistentTasksClusterService;
  103. import org.elasticsearch.persistent.decider.EnableAssignmentDecider;
  104. import org.elasticsearch.plugins.PluginsService;
  105. import org.elasticsearch.readiness.ReadinessService;
  106. import org.elasticsearch.repositories.fs.FsRepository;
  107. import org.elasticsearch.rest.BaseRestHandler;
  108. import org.elasticsearch.script.ScriptService;
  109. import org.elasticsearch.search.SearchModule;
  110. import org.elasticsearch.search.SearchService;
  111. import org.elasticsearch.search.aggregations.MultiBucketConsumerService;
  112. import org.elasticsearch.search.aggregations.metrics.TDigestExecutionHint;
  113. import org.elasticsearch.search.fetch.subphase.highlight.FastVectorHighlighter;
  114. import org.elasticsearch.snapshots.InternalSnapshotsInfoService;
  115. import org.elasticsearch.snapshots.RestoreService;
  116. import org.elasticsearch.snapshots.SnapshotsService;
  117. import org.elasticsearch.threadpool.ThreadPool;
  118. import org.elasticsearch.transport.ProxyConnectionStrategy;
  119. import org.elasticsearch.transport.RemoteClusterPortSettings;
  120. import org.elasticsearch.transport.RemoteClusterService;
  121. import org.elasticsearch.transport.RemoteConnectionStrategy;
  122. import org.elasticsearch.transport.SniffConnectionStrategy;
  123. import org.elasticsearch.transport.TcpTransport;
  124. import org.elasticsearch.transport.TransportSettings;
  125. import org.elasticsearch.watcher.ResourceWatcherService;
  126. import java.util.Collections;
  127. import java.util.List;
  128. import java.util.Objects;
  129. import java.util.Set;
  130. import java.util.function.Predicate;
  131. import java.util.stream.Collectors;
  132. import java.util.stream.Stream;
  133. /**
  134. * Encapsulates all valid cluster level settings.
  135. */
  136. public final class ClusterSettings extends AbstractScopedSettings {
  137. public static ClusterSettings createBuiltInClusterSettings() {
  138. return createBuiltInClusterSettings(Settings.EMPTY);
  139. }
  140. public static ClusterSettings createBuiltInClusterSettings(Settings nodeSettings) {
  141. return new ClusterSettings(nodeSettings, ClusterSettings.BUILT_IN_CLUSTER_SETTINGS);
  142. }
  143. public ClusterSettings(final Settings nodeSettings, final Set<Setting<?>> settingsSet) {
  144. this(nodeSettings, settingsSet, Collections.emptySet());
  145. }
  146. public ClusterSettings(final Settings nodeSettings, final Set<Setting<?>> settingsSet, final Set<SettingUpgrader<?>> settingUpgraders) {
  147. super(nodeSettings, settingsSet, settingUpgraders, Property.NodeScope);
  148. addSettingsUpdater(new LoggingSettingUpdater(nodeSettings));
  149. }
  150. private static final class LoggingSettingUpdater implements SettingUpdater<Settings> {
  151. final Predicate<String> loggerPredicate = Loggers.LOG_LEVEL_SETTING::match;
  152. private final Settings settings;
  153. LoggingSettingUpdater(Settings settings) {
  154. this.settings = settings;
  155. }
  156. @Override
  157. public boolean hasChanged(Settings current, Settings previous) {
  158. return current.filter(loggerPredicate).equals(previous.filter(loggerPredicate)) == false;
  159. }
  160. @Override
  161. public Settings getValue(Settings current, Settings previous) {
  162. Settings.Builder builder = Settings.builder();
  163. builder.put(current.filter(loggerPredicate));
  164. for (String key : previous.keySet()) {
  165. if (loggerPredicate.test(key) && builder.keys().contains(key) == false) {
  166. if (Loggers.LOG_LEVEL_SETTING.getConcreteSetting(key).exists(settings) == false) {
  167. builder.putNull(key);
  168. } else {
  169. builder.put(key, Loggers.LOG_LEVEL_SETTING.getConcreteSetting(key).get(settings).toString());
  170. }
  171. }
  172. }
  173. return builder.build();
  174. }
  175. @Override
  176. public void apply(Settings value, Settings current, Settings previous) {
  177. for (String key : value.keySet()) {
  178. assert loggerPredicate.test(key);
  179. String component = key.substring("logger.".length());
  180. if ("level".equals(component)) {
  181. continue;
  182. }
  183. if ("_root".equals(component)) {
  184. final String rootLevel = value.get(key);
  185. if (rootLevel == null) {
  186. Loggers.setLevel(LogManager.getRootLogger(), Loggers.LOG_DEFAULT_LEVEL_SETTING.get(settings));
  187. } else {
  188. Loggers.setLevel(LogManager.getRootLogger(), rootLevel);
  189. }
  190. } else {
  191. Loggers.setLevel(LogManager.getLogger(component), value.get(key));
  192. }
  193. }
  194. }
  195. }
  196. public static Set<Setting<?>> BUILT_IN_CLUSTER_SETTINGS = Stream.of(
  197. AwarenessAllocationDecider.CLUSTER_ROUTING_ALLOCATION_AWARENESS_ATTRIBUTE_SETTING,
  198. AwarenessAllocationDecider.CLUSTER_ROUTING_ALLOCATION_AWARENESS_FORCE_GROUP_SETTING,
  199. BalancedShardsAllocator.INDEX_BALANCE_FACTOR_SETTING,
  200. BalancedShardsAllocator.SHARD_BALANCE_FACTOR_SETTING,
  201. BalancedShardsAllocator.WRITE_LOAD_BALANCE_FACTOR_SETTING,
  202. BalancedShardsAllocator.DISK_USAGE_BALANCE_FACTOR_SETTING,
  203. BalancedShardsAllocator.THRESHOLD_SETTING,
  204. DesiredBalanceComputer.PROGRESS_LOG_INTERVAL_SETTING,
  205. DesiredBalanceReconciler.UNDESIRED_ALLOCATIONS_LOG_INTERVAL_SETTING,
  206. DesiredBalanceReconciler.UNDESIRED_ALLOCATIONS_LOG_THRESHOLD_SETTING,
  207. BreakerSettings.CIRCUIT_BREAKER_LIMIT_SETTING,
  208. BreakerSettings.CIRCUIT_BREAKER_OVERHEAD_SETTING,
  209. BreakerSettings.CIRCUIT_BREAKER_TYPE,
  210. ClusterRebalanceAllocationDecider.CLUSTER_ROUTING_ALLOCATION_ALLOW_REBALANCE_SETTING,
  211. ConcurrentRebalanceAllocationDecider.CLUSTER_ROUTING_ALLOCATION_CLUSTER_CONCURRENT_REBALANCE_SETTING,
  212. EnableAllocationDecider.CLUSTER_ROUTING_ALLOCATION_ENABLE_SETTING,
  213. EnableAllocationDecider.CLUSTER_ROUTING_REBALANCE_ENABLE_SETTING,
  214. FilterAllocationDecider.CLUSTER_ROUTING_INCLUDE_GROUP_SETTING,
  215. FilterAllocationDecider.CLUSTER_ROUTING_EXCLUDE_GROUP_SETTING,
  216. FilterAllocationDecider.CLUSTER_ROUTING_REQUIRE_GROUP_SETTING,
  217. FsRepository.REPOSITORIES_CHUNK_SIZE_SETTING,
  218. FsRepository.REPOSITORIES_LOCATION_SETTING,
  219. IndicesQueryCache.INDICES_CACHE_QUERY_SIZE_SETTING,
  220. IndicesQueryCache.INDICES_CACHE_QUERY_COUNT_SETTING,
  221. IndicesQueryCache.INDICES_QUERIES_CACHE_ALL_SEGMENTS_SETTING,
  222. IndicesService.INDICES_ID_FIELD_DATA_ENABLED_SETTING,
  223. IndicesService.WRITE_DANGLING_INDICES_INFO_SETTING,
  224. MappingUpdatedAction.INDICES_MAPPING_DYNAMIC_TIMEOUT_SETTING,
  225. MappingUpdatedAction.INDICES_MAX_IN_FLIGHT_UPDATES_SETTING,
  226. Metadata.SETTING_READ_ONLY_SETTING,
  227. Metadata.SETTING_READ_ONLY_ALLOW_DELETE_SETTING,
  228. ShardLimitValidator.SETTING_CLUSTER_MAX_SHARDS_PER_NODE,
  229. RecoverySettings.INDICES_RECOVERY_MAX_BYTES_PER_SEC_SETTING,
  230. RecoverySettings.INDICES_RECOVERY_RETRY_DELAY_STATE_SYNC_SETTING,
  231. RecoverySettings.INDICES_RECOVERY_RETRY_DELAY_NETWORK_SETTING,
  232. RecoverySettings.INDICES_RECOVERY_ACTIVITY_TIMEOUT_SETTING,
  233. RecoverySettings.INDICES_RECOVERY_INTERNAL_ACTION_TIMEOUT_SETTING,
  234. RecoverySettings.INDICES_RECOVERY_INTERNAL_LONG_ACTION_TIMEOUT_SETTING,
  235. RecoverySettings.INDICES_RECOVERY_INTERNAL_ACTION_RETRY_TIMEOUT_SETTING,
  236. RecoverySettings.INDICES_RECOVERY_MAX_CONCURRENT_FILE_CHUNKS_SETTING,
  237. RecoverySettings.INDICES_RECOVERY_MAX_CONCURRENT_OPERATIONS_SETTING,
  238. RecoverySettings.INDICES_RECOVERY_USE_SNAPSHOTS_SETTING,
  239. RecoverySettings.INDICES_RECOVERY_MAX_CONCURRENT_SNAPSHOT_FILE_DOWNLOADS,
  240. RecoverySettings.INDICES_RECOVERY_MAX_CONCURRENT_SNAPSHOT_FILE_DOWNLOADS_PER_NODE,
  241. RecoverySettings.NODE_BANDWIDTH_RECOVERY_FACTOR_READ_SETTING,
  242. RecoverySettings.NODE_BANDWIDTH_RECOVERY_FACTOR_WRITE_SETTING,
  243. RecoverySettings.NODE_BANDWIDTH_RECOVERY_OPERATOR_FACTOR_SETTING,
  244. RecoverySettings.NODE_BANDWIDTH_RECOVERY_OPERATOR_FACTOR_READ_SETTING,
  245. RecoverySettings.NODE_BANDWIDTH_RECOVERY_OPERATOR_FACTOR_WRITE_SETTING,
  246. RecoverySettings.NODE_BANDWIDTH_RECOVERY_OPERATOR_FACTOR_MAX_OVERCOMMIT_SETTING,
  247. RecoverySettings.NODE_BANDWIDTH_RECOVERY_DISK_WRITE_SETTING,
  248. RecoverySettings.NODE_BANDWIDTH_RECOVERY_DISK_READ_SETTING,
  249. RecoverySettings.NODE_BANDWIDTH_RECOVERY_NETWORK_SETTING,
  250. ThrottlingAllocationDecider.CLUSTER_ROUTING_ALLOCATION_NODE_INITIAL_PRIMARIES_RECOVERIES_SETTING,
  251. ThrottlingAllocationDecider.CLUSTER_ROUTING_ALLOCATION_NODE_CONCURRENT_INCOMING_RECOVERIES_SETTING,
  252. ThrottlingAllocationDecider.CLUSTER_ROUTING_ALLOCATION_NODE_CONCURRENT_OUTGOING_RECOVERIES_SETTING,
  253. ThrottlingAllocationDecider.CLUSTER_ROUTING_ALLOCATION_NODE_CONCURRENT_RECOVERIES_SETTING,
  254. DiskThresholdDecider.ENABLE_FOR_SINGLE_DATA_NODE,
  255. DiskThresholdSettings.CLUSTER_ROUTING_ALLOCATION_LOW_DISK_WATERMARK_SETTING,
  256. DiskThresholdSettings.CLUSTER_ROUTING_ALLOCATION_LOW_DISK_MAX_HEADROOM_SETTING,
  257. DiskThresholdSettings.CLUSTER_ROUTING_ALLOCATION_HIGH_DISK_WATERMARK_SETTING,
  258. DiskThresholdSettings.CLUSTER_ROUTING_ALLOCATION_HIGH_DISK_MAX_HEADROOM_SETTING,
  259. DiskThresholdSettings.CLUSTER_ROUTING_ALLOCATION_DISK_FLOOD_STAGE_WATERMARK_SETTING,
  260. DiskThresholdSettings.CLUSTER_ROUTING_ALLOCATION_DISK_FLOOD_STAGE_MAX_HEADROOM_SETTING,
  261. DiskThresholdSettings.CLUSTER_ROUTING_ALLOCATION_DISK_FLOOD_STAGE_FROZEN_WATERMARK_SETTING,
  262. DiskThresholdSettings.CLUSTER_ROUTING_ALLOCATION_DISK_FLOOD_STAGE_FROZEN_MAX_HEADROOM_SETTING,
  263. DiskThresholdSettings.CLUSTER_ROUTING_ALLOCATION_DISK_THRESHOLD_ENABLED_SETTING,
  264. DiskThresholdSettings.CLUSTER_ROUTING_ALLOCATION_REROUTE_INTERVAL_SETTING,
  265. SameShardAllocationDecider.CLUSTER_ROUTING_ALLOCATION_SAME_HOST_SETTING,
  266. InternalClusterInfoService.INTERNAL_CLUSTER_INFO_UPDATE_INTERVAL_SETTING,
  267. InternalClusterInfoService.INTERNAL_CLUSTER_INFO_TIMEOUT_SETTING,
  268. InternalSnapshotsInfoService.INTERNAL_SNAPSHOT_INFO_MAX_CONCURRENT_FETCHES_SETTING,
  269. DestructiveOperations.REQUIRES_NAME_SETTING,
  270. NoMasterBlockService.NO_MASTER_BLOCK_SETTING,
  271. GatewayService.EXPECTED_DATA_NODES_SETTING,
  272. GatewayService.RECOVER_AFTER_DATA_NODES_SETTING,
  273. GatewayService.RECOVER_AFTER_TIME_SETTING,
  274. PersistedClusterStateService.SLOW_WRITE_LOGGING_THRESHOLD,
  275. PersistedClusterStateService.DOCUMENT_PAGE_SIZE,
  276. NetworkModule.HTTP_DEFAULT_TYPE_SETTING,
  277. NetworkModule.TRANSPORT_DEFAULT_TYPE_SETTING,
  278. NetworkModule.HTTP_TYPE_SETTING,
  279. NetworkModule.TRANSPORT_TYPE_SETTING,
  280. HttpTransportSettings.SETTING_CORS_ALLOW_CREDENTIALS,
  281. HttpTransportSettings.SETTING_CORS_ENABLED,
  282. HttpTransportSettings.SETTING_CORS_MAX_AGE,
  283. HttpTransportSettings.SETTING_CORS_ALLOW_ORIGIN,
  284. HttpTransportSettings.SETTING_HTTP_HOST,
  285. HttpTransportSettings.SETTING_HTTP_PUBLISH_HOST,
  286. HttpTransportSettings.SETTING_HTTP_BIND_HOST,
  287. HttpTransportSettings.SETTING_HTTP_PORT,
  288. HttpTransportSettings.SETTING_HTTP_PUBLISH_PORT,
  289. HttpTransportSettings.SETTING_PIPELINING_MAX_EVENTS,
  290. HttpTransportSettings.SETTING_HTTP_COMPRESSION,
  291. HttpTransportSettings.SETTING_HTTP_COMPRESSION_LEVEL,
  292. HttpTransportSettings.SETTING_CORS_ALLOW_METHODS,
  293. HttpTransportSettings.SETTING_CORS_ALLOW_HEADERS,
  294. HttpTransportSettings.SETTING_HTTP_DETAILED_ERRORS_ENABLED,
  295. HttpTransportSettings.SETTING_HTTP_MAX_CONTENT_LENGTH,
  296. HttpTransportSettings.SETTING_HTTP_MAX_CHUNK_SIZE,
  297. HttpTransportSettings.SETTING_HTTP_MAX_HEADER_SIZE,
  298. HttpTransportSettings.SETTING_HTTP_MAX_WARNING_HEADER_COUNT,
  299. HttpTransportSettings.SETTING_HTTP_MAX_WARNING_HEADER_SIZE,
  300. HttpTransportSettings.SETTING_HTTP_MAX_INITIAL_LINE_LENGTH,
  301. HttpTransportSettings.SETTING_HTTP_SERVER_SHUTDOWN_GRACE_PERIOD,
  302. HttpTransportSettings.SETTING_HTTP_READ_TIMEOUT,
  303. HttpTransportSettings.SETTING_HTTP_RESET_COOKIES,
  304. HttpTransportSettings.SETTING_HTTP_TCP_NO_DELAY,
  305. HttpTransportSettings.SETTING_HTTP_TCP_KEEP_ALIVE,
  306. HttpTransportSettings.SETTING_HTTP_TCP_KEEP_IDLE,
  307. HttpTransportSettings.SETTING_HTTP_TCP_KEEP_INTERVAL,
  308. HttpTransportSettings.SETTING_HTTP_TCP_KEEP_COUNT,
  309. HttpTransportSettings.SETTING_HTTP_TCP_REUSE_ADDRESS,
  310. HttpTransportSettings.SETTING_HTTP_TCP_SEND_BUFFER_SIZE,
  311. HttpTransportSettings.SETTING_HTTP_TCP_RECEIVE_BUFFER_SIZE,
  312. HttpTransportSettings.SETTING_HTTP_TRACE_LOG_INCLUDE,
  313. HttpTransportSettings.SETTING_HTTP_TRACE_LOG_EXCLUDE,
  314. HttpTransportSettings.SETTING_HTTP_CLIENT_STATS_ENABLED,
  315. HttpTransportSettings.SETTING_HTTP_CLIENT_STATS_MAX_CLOSED_CHANNEL_AGE,
  316. HttpTransportSettings.SETTING_HTTP_CLIENT_STATS_MAX_CLOSED_CHANNEL_COUNT,
  317. HierarchyCircuitBreakerService.USE_REAL_MEMORY_USAGE_SETTING,
  318. HierarchyCircuitBreakerService.TOTAL_CIRCUIT_BREAKER_LIMIT_SETTING,
  319. HierarchyCircuitBreakerService.FIELDDATA_CIRCUIT_BREAKER_LIMIT_SETTING,
  320. HierarchyCircuitBreakerService.FIELDDATA_CIRCUIT_BREAKER_OVERHEAD_SETTING,
  321. HierarchyCircuitBreakerService.IN_FLIGHT_REQUESTS_CIRCUIT_BREAKER_LIMIT_SETTING,
  322. HierarchyCircuitBreakerService.IN_FLIGHT_REQUESTS_CIRCUIT_BREAKER_OVERHEAD_SETTING,
  323. HierarchyCircuitBreakerService.REQUEST_CIRCUIT_BREAKER_LIMIT_SETTING,
  324. HierarchyCircuitBreakerService.REQUEST_CIRCUIT_BREAKER_OVERHEAD_SETTING,
  325. IndexModule.NODE_STORE_ALLOW_MMAP,
  326. IndexSettings.NODE_DEFAULT_REFRESH_INTERVAL_SETTING,
  327. ClusterApplierService.CLUSTER_SERVICE_SLOW_TASK_LOGGING_THRESHOLD_SETTING,
  328. ClusterService.USER_DEFINED_METADATA,
  329. MasterService.MASTER_SERVICE_SLOW_TASK_LOGGING_THRESHOLD_SETTING,
  330. MasterService.MASTER_SERVICE_STARVATION_LOGGING_THRESHOLD_SETTING,
  331. SearchService.DEFAULT_SEARCH_TIMEOUT_SETTING,
  332. SearchService.DEFAULT_ALLOW_PARTIAL_SEARCH_RESULTS,
  333. TransportSearchAction.SHARD_COUNT_LIMIT_SETTING,
  334. TransportSearchAction.DEFAULT_PRE_FILTER_SHARD_SIZE,
  335. RemoteClusterService.REMOTE_CLUSTER_SKIP_UNAVAILABLE,
  336. SniffConnectionStrategy.REMOTE_CONNECTIONS_PER_CLUSTER,
  337. RemoteClusterService.REMOTE_INITIAL_CONNECTION_TIMEOUT_SETTING,
  338. RemoteClusterService.REMOTE_NODE_ATTRIBUTE,
  339. RemoteClusterService.REMOTE_CLUSTER_PING_SCHEDULE,
  340. RemoteClusterService.REMOTE_CLUSTER_COMPRESS,
  341. RemoteClusterService.REMOTE_CLUSTER_COMPRESSION_SCHEME,
  342. RemoteConnectionStrategy.REMOTE_CONNECTION_MODE,
  343. ProxyConnectionStrategy.PROXY_ADDRESS,
  344. ProxyConnectionStrategy.REMOTE_SOCKET_CONNECTIONS,
  345. ProxyConnectionStrategy.SERVER_NAME,
  346. SniffConnectionStrategy.REMOTE_CLUSTERS_PROXY,
  347. SniffConnectionStrategy.REMOTE_CLUSTER_SEEDS,
  348. SniffConnectionStrategy.REMOTE_NODE_CONNECTIONS,
  349. TransportCloseIndexAction.CLUSTER_INDICES_CLOSE_ENABLE_SETTING,
  350. ShardsLimitAllocationDecider.CLUSTER_TOTAL_SHARDS_PER_NODE_SETTING,
  351. NodeConnectionsService.CLUSTER_NODE_RECONNECT_INTERVAL_SETTING,
  352. HierarchyCircuitBreakerService.FIELDDATA_CIRCUIT_BREAKER_TYPE_SETTING,
  353. HierarchyCircuitBreakerService.REQUEST_CIRCUIT_BREAKER_TYPE_SETTING,
  354. TransportReplicationAction.REPLICATION_INITIAL_RETRY_BACKOFF_BOUND,
  355. TransportReplicationAction.REPLICATION_RETRY_TIMEOUT,
  356. TransportSettings.HOST,
  357. TransportSettings.PUBLISH_HOST,
  358. TransportSettings.PUBLISH_HOST_PROFILE,
  359. TransportSettings.BIND_HOST,
  360. TransportSettings.BIND_HOST_PROFILE,
  361. TransportSettings.PORT,
  362. TransportSettings.PORT_PROFILE,
  363. TransportSettings.PUBLISH_PORT,
  364. TransportSettings.PUBLISH_PORT_PROFILE,
  365. TransportSettings.TRANSPORT_COMPRESS,
  366. TransportSettings.TRANSPORT_COMPRESSION_SCHEME,
  367. TransportSettings.PING_SCHEDULE,
  368. TransportSettings.CONNECT_TIMEOUT,
  369. TransportSettings.DEFAULT_FEATURES_SETTING,
  370. TransportSettings.TCP_NO_DELAY,
  371. TransportSettings.TCP_NO_DELAY_PROFILE,
  372. TransportSettings.TCP_KEEP_ALIVE,
  373. TransportSettings.TCP_KEEP_ALIVE_PROFILE,
  374. TransportSettings.TCP_KEEP_IDLE,
  375. TransportSettings.TCP_KEEP_IDLE_PROFILE,
  376. TransportSettings.TCP_KEEP_INTERVAL,
  377. TransportSettings.TCP_KEEP_INTERVAL_PROFILE,
  378. TransportSettings.TCP_KEEP_COUNT,
  379. TransportSettings.TCP_KEEP_COUNT_PROFILE,
  380. TransportSettings.TCP_REUSE_ADDRESS,
  381. TransportSettings.TCP_REUSE_ADDRESS_PROFILE,
  382. TransportSettings.TCP_SEND_BUFFER_SIZE,
  383. TransportSettings.TCP_SEND_BUFFER_SIZE_PROFILE,
  384. TransportSettings.TCP_RECEIVE_BUFFER_SIZE,
  385. TransportSettings.TCP_RECEIVE_BUFFER_SIZE_PROFILE,
  386. TransportSettings.CONNECTIONS_PER_NODE_RECOVERY,
  387. TransportSettings.CONNECTIONS_PER_NODE_BULK,
  388. TransportSettings.CONNECTIONS_PER_NODE_REG,
  389. TransportSettings.CONNECTIONS_PER_NODE_STATE,
  390. TransportSettings.CONNECTIONS_PER_NODE_PING,
  391. TransportSettings.TRACE_LOG_EXCLUDE_SETTING,
  392. TransportSettings.TRACE_LOG_INCLUDE_SETTING,
  393. TransportSettings.SLOW_OPERATION_THRESHOLD_SETTING,
  394. TransportSettings.RST_ON_CLOSE,
  395. NetworkService.NETWORK_SERVER,
  396. NetworkService.GLOBAL_NETWORK_HOST_SETTING,
  397. NetworkService.GLOBAL_NETWORK_BIND_HOST_SETTING,
  398. NetworkService.GLOBAL_NETWORK_PUBLISH_HOST_SETTING,
  399. NetworkService.TCP_NO_DELAY,
  400. NetworkService.TCP_KEEP_ALIVE,
  401. NetworkService.TCP_KEEP_IDLE,
  402. NetworkService.TCP_KEEP_INTERVAL,
  403. NetworkService.TCP_KEEP_COUNT,
  404. NetworkService.TCP_REUSE_ADDRESS,
  405. NetworkService.TCP_SEND_BUFFER_SIZE,
  406. NetworkService.TCP_RECEIVE_BUFFER_SIZE,
  407. IndexSettings.QUERY_STRING_ANALYZE_WILDCARD,
  408. IndexSettings.QUERY_STRING_ALLOW_LEADING_WILDCARD,
  409. ScriptService.SCRIPT_CACHE_SIZE_SETTING,
  410. ScriptService.SCRIPT_CACHE_EXPIRE_SETTING,
  411. ScriptService.SCRIPT_DISABLE_MAX_COMPILATIONS_RATE_SETTING,
  412. ScriptService.SCRIPT_GENERAL_CACHE_EXPIRE_SETTING,
  413. ScriptService.SCRIPT_GENERAL_CACHE_SIZE_SETTING,
  414. ScriptService.SCRIPT_GENERAL_MAX_COMPILATIONS_RATE_SETTING,
  415. ScriptService.SCRIPT_MAX_COMPILATIONS_RATE_SETTING,
  416. ScriptService.SCRIPT_MAX_SIZE_IN_BYTES,
  417. ScriptService.TYPES_ALLOWED_SETTING,
  418. ScriptService.CONTEXTS_ALLOWED_SETTING,
  419. IndicesService.INDICES_CACHE_CLEAN_INTERVAL_SETTING,
  420. IndicesFieldDataCache.INDICES_FIELDDATA_CACHE_SIZE_KEY,
  421. IndicesRequestCache.INDICES_CACHE_QUERY_SIZE,
  422. IndicesRequestCache.INDICES_CACHE_QUERY_EXPIRE,
  423. HunspellService.HUNSPELL_LAZY_LOAD,
  424. HunspellService.HUNSPELL_IGNORE_CASE,
  425. HunspellService.HUNSPELL_DICTIONARY_OPTIONS,
  426. IndicesStore.INDICES_STORE_DELETE_SHARD_TIMEOUT,
  427. Environment.PATH_DATA_SETTING,
  428. Environment.PATH_HOME_SETTING,
  429. Environment.PATH_LOGS_SETTING,
  430. Environment.PATH_REPO_SETTING,
  431. Environment.PATH_SHARED_DATA_SETTING,
  432. NodeEnvironment.NODE_ID_SEED_SETTING,
  433. Node.INITIAL_STATE_TIMEOUT_SETTING,
  434. DiscoveryModule.DISCOVERY_TYPE_SETTING,
  435. DiscoveryModule.DISCOVERY_SEED_PROVIDERS_SETTING,
  436. DiscoveryModule.ELECTION_STRATEGY_SETTING,
  437. SettingsBasedSeedHostsProvider.DISCOVERY_SEED_HOSTS_SETTING,
  438. SeedHostsResolver.DISCOVERY_SEED_RESOLVER_MAX_CONCURRENT_RESOLVERS_SETTING,
  439. SeedHostsResolver.DISCOVERY_SEED_RESOLVER_TIMEOUT_SETTING,
  440. SearchService.DEFAULT_KEEPALIVE_SETTING,
  441. SearchService.KEEPALIVE_INTERVAL_SETTING,
  442. SearchService.MAX_KEEPALIVE_SETTING,
  443. SearchService.ALLOW_EXPENSIVE_QUERIES,
  444. SearchService.CCS_VERSION_CHECK_SETTING,
  445. MultiBucketConsumerService.MAX_BUCKET_SETTING,
  446. SearchService.LOW_LEVEL_CANCELLATION_SETTING,
  447. SearchService.MAX_OPEN_SCROLL_CONTEXT,
  448. SearchService.ENABLE_REWRITE_AGGS_TO_FILTER_BY_FILTER,
  449. SearchService.MAX_ASYNC_SEARCH_RESPONSE_SIZE_SETTING,
  450. Node.WRITE_PORTS_FILE_SETTING,
  451. Node.NODE_EXTERNAL_ID_SETTING,
  452. Node.NODE_NAME_SETTING,
  453. Node.NODE_ATTRIBUTES,
  454. NodeRoleSettings.NODE_ROLES_SETTING,
  455. AutoCreateIndex.AUTO_CREATE_INDEX_SETTING,
  456. BaseRestHandler.MULTI_ALLOW_EXPLICIT_INDEX,
  457. ClusterName.CLUSTER_NAME_SETTING,
  458. Client.CLIENT_TYPE_SETTING_S,
  459. ClusterModule.SHARDS_ALLOCATOR_TYPE_SETTING,
  460. EsExecutors.NODE_PROCESSORS_SETTING,
  461. ThreadContext.DEFAULT_HEADERS_SETTING,
  462. Loggers.LOG_DEFAULT_LEVEL_SETTING,
  463. Loggers.LOG_LEVEL_SETTING,
  464. NodeEnvironment.ENABLE_LUCENE_SEGMENT_INFOS_TRACE_SETTING,
  465. OsService.REFRESH_INTERVAL_SETTING,
  466. ProcessService.REFRESH_INTERVAL_SETTING,
  467. JvmService.REFRESH_INTERVAL_SETTING,
  468. FsService.REFRESH_INTERVAL_SETTING,
  469. JvmGcMonitorService.ENABLED_SETTING,
  470. JvmGcMonitorService.REFRESH_INTERVAL_SETTING,
  471. JvmGcMonitorService.GC_SETTING,
  472. JvmGcMonitorService.GC_OVERHEAD_WARN_SETTING,
  473. JvmGcMonitorService.GC_OVERHEAD_INFO_SETTING,
  474. JvmGcMonitorService.GC_OVERHEAD_DEBUG_SETTING,
  475. PageCacheRecycler.LIMIT_HEAP_SETTING,
  476. PageCacheRecycler.WEIGHT_BYTES_SETTING,
  477. PageCacheRecycler.WEIGHT_INT_SETTING,
  478. PageCacheRecycler.WEIGHT_LONG_SETTING,
  479. PageCacheRecycler.WEIGHT_OBJECTS_SETTING,
  480. PageCacheRecycler.TYPE_SETTING,
  481. PluginsService.MANDATORY_SETTING,
  482. BootstrapSettings.SECURITY_FILTER_BAD_DEFAULTS_SETTING,
  483. BootstrapSettings.MEMORY_LOCK_SETTING,
  484. BootstrapSettings.CTRLHANDLER_SETTING,
  485. KeyStoreWrapper.SEED_SETTING,
  486. IndexingMemoryController.INDEX_BUFFER_SIZE_SETTING,
  487. IndexingMemoryController.MIN_INDEX_BUFFER_SIZE_SETTING,
  488. IndexingMemoryController.MAX_INDEX_BUFFER_SIZE_SETTING,
  489. IndexingMemoryController.SHARD_INACTIVE_TIME_SETTING,
  490. IndexingMemoryController.SHARD_MEMORY_INTERVAL_TIME_SETTING,
  491. ResourceWatcherService.ENABLED,
  492. ResourceWatcherService.RELOAD_INTERVAL_HIGH,
  493. ResourceWatcherService.RELOAD_INTERVAL_MEDIUM,
  494. ResourceWatcherService.RELOAD_INTERVAL_LOW,
  495. SearchModule.INDICES_MAX_CLAUSE_COUNT_SETTING,
  496. SearchModule.INDICES_MAX_NESTED_DEPTH_SETTING,
  497. ThreadPool.ESTIMATED_TIME_INTERVAL_SETTING,
  498. ThreadPool.LATE_TIME_INTERVAL_WARN_THRESHOLD_SETTING,
  499. ThreadPool.SLOW_SCHEDULER_TASK_WARN_THRESHOLD_SETTING,
  500. FastVectorHighlighter.SETTING_TV_HIGHLIGHT_MULTI_VALUE,
  501. Node.BREAKER_TYPE_KEY,
  502. OperationRouting.USE_ADAPTIVE_REPLICA_SELECTION_SETTING,
  503. IndexGraveyard.SETTING_MAX_TOMBSTONES,
  504. PersistentTasksClusterService.CLUSTER_TASKS_ALLOCATION_RECHECK_INTERVAL_SETTING,
  505. EnableAssignmentDecider.CLUSTER_TASKS_ALLOCATION_ENABLE_SETTING,
  506. PeerFinder.DISCOVERY_FIND_PEERS_INTERVAL_SETTING,
  507. PeerFinder.DISCOVERY_REQUEST_PEERS_TIMEOUT_SETTING,
  508. ClusterFormationFailureHelper.DISCOVERY_CLUSTER_FORMATION_WARNING_TIMEOUT_SETTING,
  509. ElectionSchedulerFactory.ELECTION_INITIAL_TIMEOUT_SETTING,
  510. ElectionSchedulerFactory.ELECTION_BACK_OFF_TIME_SETTING,
  511. ElectionSchedulerFactory.ELECTION_MAX_TIMEOUT_SETTING,
  512. ElectionSchedulerFactory.ELECTION_DURATION_SETTING,
  513. Coordinator.PUBLISH_TIMEOUT_SETTING,
  514. Coordinator.PUBLISH_INFO_TIMEOUT_SETTING,
  515. Coordinator.SINGLE_NODE_CLUSTER_SEED_HOSTS_CHECK_INTERVAL_SETTING,
  516. JoinValidationService.JOIN_VALIDATION_CACHE_TIMEOUT_SETTING,
  517. FollowersChecker.FOLLOWER_CHECK_TIMEOUT_SETTING,
  518. FollowersChecker.FOLLOWER_CHECK_INTERVAL_SETTING,
  519. FollowersChecker.FOLLOWER_CHECK_RETRY_COUNT_SETTING,
  520. LeaderChecker.LEADER_CHECK_TIMEOUT_SETTING,
  521. LeaderChecker.LEADER_CHECK_INTERVAL_SETTING,
  522. LeaderChecker.LEADER_CHECK_RETRY_COUNT_SETTING,
  523. Reconfigurator.CLUSTER_AUTO_SHRINK_VOTING_CONFIGURATION,
  524. TransportAddVotingConfigExclusionsAction.MAXIMUM_VOTING_CONFIG_EXCLUSIONS_SETTING,
  525. ClusterBootstrapService.INITIAL_MASTER_NODES_SETTING,
  526. ClusterBootstrapService.UNCONFIGURED_BOOTSTRAP_TIMEOUT_SETTING,
  527. LagDetector.CLUSTER_FOLLOWER_LAG_TIMEOUT_SETTING,
  528. HandshakingTransportAddressConnector.PROBE_CONNECT_TIMEOUT_SETTING,
  529. HandshakingTransportAddressConnector.PROBE_HANDSHAKE_TIMEOUT_SETTING,
  530. SnapshotsService.MAX_CONCURRENT_SNAPSHOT_OPERATIONS_SETTING,
  531. RestoreService.REFRESH_REPO_UUID_ON_RESTORE_SETTING,
  532. FsHealthService.ENABLED_SETTING,
  533. FsHealthService.REFRESH_INTERVAL_SETTING,
  534. FsHealthService.SLOW_PATH_LOGGING_THRESHOLD_SETTING,
  535. IndexingPressure.MAX_INDEXING_BYTES,
  536. ShardLimitValidator.SETTING_CLUSTER_MAX_SHARDS_PER_NODE_FROZEN,
  537. DataTier.ENFORCE_DEFAULT_TIER_PREFERENCE_SETTING,
  538. CoordinationDiagnosticsService.IDENTITY_CHANGES_THRESHOLD_SETTING,
  539. CoordinationDiagnosticsService.NO_MASTER_TRANSITIONS_THRESHOLD_SETTING,
  540. CoordinationDiagnosticsService.NODE_HAS_MASTER_LOOKUP_TIMEFRAME_SETTING,
  541. MasterHistory.MAX_HISTORY_AGE_SETTING,
  542. ReadinessService.PORT,
  543. HealthNodeTaskExecutor.ENABLED_SETTING,
  544. LocalHealthMonitor.POLL_INTERVAL_SETTING,
  545. TransportHealthNodeAction.HEALTH_NODE_TRANSPORT_ACTION_TIMEOUT,
  546. SimulatePipelineTransportAction.INGEST_NODE_TRANSPORT_ACTION_TIMEOUT,
  547. WriteAckDelay.WRITE_ACK_DELAY_INTERVAL,
  548. WriteAckDelay.WRITE_ACK_DELAY_RANDOMNESS_BOUND,
  549. TcpTransport.isUntrustedRemoteClusterEnabled() ? RemoteClusterService.REMOTE_CLUSTER_CREDENTIALS : null,
  550. TcpTransport.isUntrustedRemoteClusterEnabled() ? RemoteClusterPortSettings.REMOTE_CLUSTER_SERVER_ENABLED : null,
  551. TcpTransport.isUntrustedRemoteClusterEnabled() ? RemoteClusterPortSettings.HOST : null,
  552. TcpTransport.isUntrustedRemoteClusterEnabled() ? RemoteClusterPortSettings.PUBLISH_HOST : null,
  553. TcpTransport.isUntrustedRemoteClusterEnabled() ? RemoteClusterPortSettings.BIND_HOST : null,
  554. TcpTransport.isUntrustedRemoteClusterEnabled() ? RemoteClusterPortSettings.PORT : null,
  555. TcpTransport.isUntrustedRemoteClusterEnabled() ? RemoteClusterPortSettings.PUBLISH_PORT : null,
  556. TcpTransport.isUntrustedRemoteClusterEnabled() ? RemoteClusterPortSettings.TCP_KEEP_ALIVE : null,
  557. TcpTransport.isUntrustedRemoteClusterEnabled() ? RemoteClusterPortSettings.TCP_KEEP_IDLE : null,
  558. TcpTransport.isUntrustedRemoteClusterEnabled() ? RemoteClusterPortSettings.TCP_KEEP_INTERVAL : null,
  559. TcpTransport.isUntrustedRemoteClusterEnabled() ? RemoteClusterPortSettings.TCP_KEEP_COUNT : null,
  560. TcpTransport.isUntrustedRemoteClusterEnabled() ? RemoteClusterPortSettings.TCP_NO_DELAY : null,
  561. TcpTransport.isUntrustedRemoteClusterEnabled() ? RemoteClusterPortSettings.TCP_REUSE_ADDRESS : null,
  562. TcpTransport.isUntrustedRemoteClusterEnabled() ? RemoteClusterPortSettings.TCP_SEND_BUFFER_SIZE : null,
  563. DataLifecycle.isEnabled() ? DataLifecycle.CLUSTER_LIFECYCLE_DEFAULT_ROLLOVER_SETTING : null,
  564. IndicesClusterStateService.SHARD_LOCK_RETRY_INTERVAL_SETTING,
  565. IndicesClusterStateService.SHARD_LOCK_RETRY_TIMEOUT_SETTING,
  566. IngestSettings.GROK_WATCHDOG_INTERVAL,
  567. IngestSettings.GROK_WATCHDOG_MAX_EXECUTION_TIME,
  568. TDigestExecutionHint.SETTING
  569. ).filter(Objects::nonNull).collect(Collectors.toSet());
  570. static List<SettingUpgrader<?>> BUILT_IN_SETTING_UPGRADERS = Collections.emptyList();
  571. }