Skip to content

Instantly share code, notes, and snippets.

@ofavre
Last active December 14, 2015 20:29
Show Gist options
  • Save ofavre/5144095 to your computer and use it in GitHub Desktop.
Save ofavre/5144095 to your computer and use it in GitHub Desktop.
Study of Dynamic Settings in ElasticSearch 0.90.0.Beta1

Dynamic Settings in ElasticSearch 0.90.0.Beta1

Sources of dynamic settings

  • org.elasticsearch.index.settings.IndexDynamicSettingsModule
  • org.elasticsearch.cluster.settings.ClusterDynamicSettingsModule
  • org.elasticsearch.node.settings.NodeSettingsService.Listener

Cluster settings

  • cluster.routing.allocation.awareness.attributes
  • cluster.routing.allocation.awareness.force.*
  • cluster.routing.allocation.balance.index
  • cluster.routing.allocation.balance.shard
  • cluster.routing.allocation.balance.primary
  • cluster.routing.allocation.balance.threshold
  • cluster.routing.allocation.cluster_concurrent_rebalance
  • cluster.routing.allocation.disable_new_allocation
  • cluster.routing.allocation.disable_allocation
  • cluster.routing.allocation.disable_replica_allocation
  • discovery.zen.minimum_master_nodes
  • cluster.routing.allocation.require.*
  • cluster.routing.allocation.include.*
  • cluster.routing.allocation.exclude.*
  • indices.cache.filter.size
  • indices.cache.filter.expire
  • indices.store.throttle.type
  • indices.store.throttle.max_bytes_per_sec
  • indices.ttl.interval
  • cluster.blocks.read_only
  • indices.recovery.file_chunk_size
  • indices.recovery.translog_ops
  • indices.recovery.translog_size
  • indices.recovery.compress
  • indices.recovery.concurrent_streams
  • indices.recovery.max_size_per_sec
  • threadpool.*
  • cluster.routing.allocation.node_initial_primaries_recoveries
  • cluster.routing.allocation.node_concurrent_recoveries

Index settings

  • index.store.throttle.max_bytes_per_sec
  • index.store.throttle.type
  • index.routing.allocation.require.*
  • index.routing.allocation.include.*
  • index.routing.allocation.exclude.*
  • index.translog.fs.type
  • index.translog.fs.buffer_size
  • index.translog.fs.transient_buffer_size
  • index.number_of_replicas
  • index.auto_expand_replicas
  • index.blocks.read_only
  • index.blocks.read
  • index.blocks.write
  • index.blocks.metadata
  • index.gateway.snapshot_interval
  • index.ttl.disable_purge
  • index.refresh_interval
  • index.recovery.initial_shards
  • index.merge.policy.min_merge_size
  • index.merge.policy.max_merge_size
  • index.merge.policy.max_merge_docs
  • index.merge.policy.merge_factor
  • index.compound_format
  • index.merge.policy.min_merge_docs
  • index.merge.policy.max_merge_docs
  • index.merge.policy.merge_factor
  • index.compound_format
  • index.term_index_interval
  • index.term_index_divisor
  • index.index_concurrency
  • index.gc_deletes
  • index.codec
  • index.indexing.slowlog.threshold.index.warn
  • index.indexing.slowlog.threshold.index.info
  • index.indexing.slowlog.threshold.index.debug
  • index.indexing.slowlog.threshold.index.trace
  • index.indexing.slowlog.reformat
  • index.indexing.slowlog.level
  • index.search.slowlog.threshold.query.warn
  • index.search.slowlog.threshold.query.info
  • index.search.slowlog.threshold.query.debug
  • index.search.slowlog.threshold.query.trace
  • index.search.slowlog.threshold.fetch.warn
  • index.search.slowlog.threshold.fetch.info
  • index.search.slowlog.threshold.fetch.debug
  • index.search.slowlog.threshold.fetch.trace
  • index.search.slowlog.reformat
  • index.search.slowlog.level
  • index.routing.allocation.total_shards_per_node
  • index.merge.policy.expunge_deletes_allowed
  • index.merge.policy.floor_segment
  • index.merge.policy.max_merge_at_once
  • index.merge.policy.max_merge_at_once_explicit
  • index.merge.policy.max_merged_segment
  • index.merge.policy.segments_per_tier
  • index.merge.policy.reclaim_deletes_weight
  • index.compound_format
  • index.translog.flush_threshold_ops
  • index.translog.flush_threshold_size
  • index.translog.flush_threshold_period
  • index.translog.disable_flush

Node settings

  • cluster.routing.allocation.balance.threshold
  • cluster.routing.allocation.balance.index
  • cluster.routing.allocation.balance.shard
  • cluster.routing.allocation.balance.primary
  • cluster.routing.allocation.awareness.attributes
  • cluster.routing.allocation.awareness.force.*
  • cluster.routing.allocation.cluster_concurrent_rebalance
  • cluster.routing.allocation.disable_new_allocation
  • cluster.routing.allocation.disable_allocation
  • cluster.routing.allocation.disable_replica_allocation
  • cluster.routing.allocation.require.*
  • cluster.routing.allocation.include.*
  • cluster.routing.allocation.exclude.*
  • cluster.routing.allocation.node_initial_primaries_recoveries
  • cluster.routing.allocation.node_concurrent_recoveries
  • discovery.zen.minimum_master_nodes
  • indices.cache.filter.size
  • indices.cache.filter.expire
  • indices.recovery.file_chunk_size
  • indices.recovery.translog_ops
  • indices.recovery.translog_size
  • indices.recovery.compress
  • indices.recovery.concurrent_streams
  • indices.recovery.max_size_per_sec
  • indices.store.throttle.type
  • indices.store.throttle.max_bytes_per_sec
  • indices.ttl.interval
  • threadpool.*

Other

Some classes read a setting from index metadata before use:

// src/main/java/org/elasticsearch/indices/ttl/IndicesTTLService#getShardsToPurge()
MetaData metaData = clusterService.state().metaData();
IndexMetaData indexMetaData = metaData.index(indexService.index().name());
boolean disablePurge = indexMetaData.settings().getAsBoolean(INDEX_TTL_DISABLE_PURGE, false);

Settings that could be dynamic

  • node.CUSTOM_ATTRIBUTE
  • cluster.name
  • node.name
  • node.master
  • transport.tcp.compress
  • http.max_content_length
  • discovery.zen.ping.timeout
  • discovery.zen.ping.multicast.enabled
  • discovery.zen.ping.unicast.hosts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment