convert index.warmer.enabled
This commit is contained in:
parent
b7b104a585
commit
60be834902
|
@ -171,7 +171,6 @@ public class ClusterModule extends AbstractModule {
|
||||||
registerIndexDynamicSetting(MergePolicyConfig.INDEX_MERGE_POLICY_RECLAIM_DELETES_WEIGHT, Validator.NON_NEGATIVE_DOUBLE);
|
registerIndexDynamicSetting(MergePolicyConfig.INDEX_MERGE_POLICY_RECLAIM_DELETES_WEIGHT, Validator.NON_NEGATIVE_DOUBLE);
|
||||||
registerIndexDynamicSetting(MergePolicyConfig.INDEX_COMPOUND_FORMAT, Validator.EMPTY);
|
registerIndexDynamicSetting(MergePolicyConfig.INDEX_COMPOUND_FORMAT, Validator.EMPTY);
|
||||||
registerIndexDynamicSetting(IndexSettings.INDEX_TRANSLOG_FLUSH_THRESHOLD_SIZE, Validator.BYTES_SIZE);
|
registerIndexDynamicSetting(IndexSettings.INDEX_TRANSLOG_FLUSH_THRESHOLD_SIZE, Validator.BYTES_SIZE);
|
||||||
registerIndexDynamicSetting(IndicesWarmer.INDEX_WARMER_ENABLED, Validator.EMPTY);
|
|
||||||
registerIndexDynamicSetting(IndicesRequestCache.INDEX_CACHE_REQUEST_ENABLED, Validator.BOOLEAN);
|
registerIndexDynamicSetting(IndicesRequestCache.INDEX_CACHE_REQUEST_ENABLED, Validator.BOOLEAN);
|
||||||
registerIndexDynamicSetting(UnassignedInfo.INDEX_DELAYED_NODE_LEFT_TIMEOUT_SETTING, Validator.TIME);
|
registerIndexDynamicSetting(UnassignedInfo.INDEX_DELAYED_NODE_LEFT_TIMEOUT_SETTING, Validator.TIME);
|
||||||
registerIndexDynamicSetting(DefaultSearchContext.MAX_RESULT_WINDOW, Validator.POSITIVE_INTEGER);
|
registerIndexDynamicSetting(DefaultSearchContext.MAX_RESULT_WINDOW, Validator.POSITIVE_INTEGER);
|
||||||
|
|
|
@ -60,6 +60,8 @@ public final class IndexSettings {
|
||||||
public static final String ALLOW_UNMAPPED = "index.query.parse.allow_unmapped_fields";
|
public static final String ALLOW_UNMAPPED = "index.query.parse.allow_unmapped_fields";
|
||||||
public static final String INDEX_TRANSLOG_SYNC_INTERVAL = "index.translog.sync_interval";
|
public static final String INDEX_TRANSLOG_SYNC_INTERVAL = "index.translog.sync_interval";
|
||||||
public static final Setting<Translog.Durability> INDEX_TRANSLOG_DURABILITY_SETTING = new Setting<>("index.translog.durability", Translog.Durability.REQUEST.name(), (value) -> Translog.Durability.valueOf(value.toUpperCase(Locale.ROOT)), true, Setting.Scope.INDEX);
|
public static final Setting<Translog.Durability> INDEX_TRANSLOG_DURABILITY_SETTING = new Setting<>("index.translog.durability", Translog.Durability.REQUEST.name(), (value) -> Translog.Durability.valueOf(value.toUpperCase(Locale.ROOT)), true, Setting.Scope.INDEX);
|
||||||
|
public static final Setting<Boolean> INDEX_WARMER_ENABLED_SETTING = Setting.boolSetting("index.warmer.enabled", true, true, Setting.Scope.INDEX);
|
||||||
|
|
||||||
public static final String INDEX_REFRESH_INTERVAL = "index.refresh_interval";
|
public static final String INDEX_REFRESH_INTERVAL = "index.refresh_interval";
|
||||||
public static final TimeValue DEFAULT_REFRESH_INTERVAL = new TimeValue(1, TimeUnit.SECONDS);
|
public static final TimeValue DEFAULT_REFRESH_INTERVAL = new TimeValue(1, TimeUnit.SECONDS);
|
||||||
public static final String INDEX_TRANSLOG_FLUSH_THRESHOLD_SIZE = "index.translog.flush_threshold_size";
|
public static final String INDEX_TRANSLOG_FLUSH_THRESHOLD_SIZE = "index.translog.flush_threshold_size";
|
||||||
|
@ -97,6 +99,7 @@ public final class IndexSettings {
|
||||||
private final MergePolicyConfig mergePolicyConfig;
|
private final MergePolicyConfig mergePolicyConfig;
|
||||||
private final ScopedSettings scopedSettings;
|
private final ScopedSettings scopedSettings;
|
||||||
private long gcDeletesInMillis = DEFAULT_GC_DELETES.millis();
|
private long gcDeletesInMillis = DEFAULT_GC_DELETES.millis();
|
||||||
|
private volatile boolean warmerEnabled;
|
||||||
|
|
||||||
public static Set<Setting<?>> BUILT_IN_CLUSTER_SETTINGS = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(
|
public static Set<Setting<?>> BUILT_IN_CLUSTER_SETTINGS = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(
|
||||||
IndexStore.INDEX_STORE_THROTTLE_TYPE_SETTING,
|
IndexStore.INDEX_STORE_THROTTLE_TYPE_SETTING,
|
||||||
|
@ -104,9 +107,11 @@ public final class IndexSettings {
|
||||||
MergeSchedulerConfig.AUTO_THROTTLE_SETTING,
|
MergeSchedulerConfig.AUTO_THROTTLE_SETTING,
|
||||||
MergeSchedulerConfig.MAX_MERGE_COUNT_SETTING,
|
MergeSchedulerConfig.MAX_MERGE_COUNT_SETTING,
|
||||||
MergeSchedulerConfig.MAX_THREAD_COUNT_SETTING,
|
MergeSchedulerConfig.MAX_THREAD_COUNT_SETTING,
|
||||||
IndexSettings.INDEX_TRANSLOG_DURABILITY_SETTING
|
IndexSettings.INDEX_TRANSLOG_DURABILITY_SETTING,
|
||||||
|
IndexSettings.INDEX_WARMER_ENABLED_SETTING
|
||||||
)));
|
)));
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the default search field for this index.
|
* Returns the default search field for this index.
|
||||||
*/
|
*/
|
||||||
|
@ -188,14 +193,12 @@ public final class IndexSettings {
|
||||||
flushThresholdSize = settings.getAsBytesSize(INDEX_TRANSLOG_FLUSH_THRESHOLD_SIZE, new ByteSizeValue(512, ByteSizeUnit.MB));
|
flushThresholdSize = settings.getAsBytesSize(INDEX_TRANSLOG_FLUSH_THRESHOLD_SIZE, new ByteSizeValue(512, ByteSizeUnit.MB));
|
||||||
mergeSchedulerConfig = new MergeSchedulerConfig(this);
|
mergeSchedulerConfig = new MergeSchedulerConfig(this);
|
||||||
gcDeletesInMillis = settings.getAsTime(IndexSettings.INDEX_GC_DELETES_SETTING, DEFAULT_GC_DELETES).getMillis();
|
gcDeletesInMillis = settings.getAsTime(IndexSettings.INDEX_GC_DELETES_SETTING, DEFAULT_GC_DELETES).getMillis();
|
||||||
|
warmerEnabled = scopedSettings.get(INDEX_WARMER_ENABLED_SETTING);
|
||||||
|
scopedSettings.addSettingsUpdateConsumer(INDEX_WARMER_ENABLED_SETTING, this::setEnableWarmer);
|
||||||
this.mergePolicyConfig = new MergePolicyConfig(logger, settings);
|
this.mergePolicyConfig = new MergePolicyConfig(logger, settings);
|
||||||
assert indexNameMatcher.test(indexMetaData.getIndex());
|
assert indexNameMatcher.test(indexMetaData.getIndex());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setTranslogDurability(Translog.Durability durability) {
|
|
||||||
this.durability = durability;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the settings for this index. These settings contain the node and index level settings where
|
* Returns the settings for this index. These settings contain the node and index level settings where
|
||||||
* settings that are specified on both index and node level are overwritten by the index settings.
|
* settings that are specified on both index and node level are overwritten by the index settings.
|
||||||
|
@ -345,6 +348,21 @@ public final class IndexSettings {
|
||||||
return durability;
|
return durability;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setTranslogDurability(Translog.Durability durability) {
|
||||||
|
this.durability = durability;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns true if index warmers are enabled, otherwise <code>false</code>
|
||||||
|
*/
|
||||||
|
public boolean isWarmerEnabled() {
|
||||||
|
return warmerEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setEnableWarmer(boolean enableWarmer) {
|
||||||
|
this.warmerEnabled = enableWarmer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void updateSettings(Settings settings) {
|
private void updateSettings(Settings settings) {
|
||||||
TimeValue refreshInterval = settings.getAsTime(IndexSettings.INDEX_REFRESH_INTERVAL, this.refreshInterval);
|
TimeValue refreshInterval = settings.getAsTime(IndexSettings.INDEX_REFRESH_INTERVAL, this.refreshInterval);
|
||||||
|
|
|
@ -39,8 +39,6 @@ import java.util.concurrent.TimeUnit;
|
||||||
*/
|
*/
|
||||||
public final class IndicesWarmer extends AbstractComponent {
|
public final class IndicesWarmer extends AbstractComponent {
|
||||||
|
|
||||||
public static final String INDEX_WARMER_ENABLED = "index.warmer.enabled";
|
|
||||||
|
|
||||||
private final ThreadPool threadPool;
|
private final ThreadPool threadPool;
|
||||||
|
|
||||||
private final CopyOnWriteArrayList<Listener> listeners = new CopyOnWriteArrayList<>();
|
private final CopyOnWriteArrayList<Listener> listeners = new CopyOnWriteArrayList<>();
|
||||||
|
@ -62,8 +60,7 @@ public final class IndicesWarmer extends AbstractComponent {
|
||||||
if (shard.state() == IndexShardState.CLOSED) {
|
if (shard.state() == IndexShardState.CLOSED) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final Settings indexSettings = settings.getSettings();
|
if (settings.isWarmerEnabled() == false) {
|
||||||
if (!indexSettings.getAsBoolean(INDEX_WARMER_ENABLED, settings.getNodeSettings().getAsBoolean(INDEX_WARMER_ENABLED, true))) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (logger.isTraceEnabled()) {
|
if (logger.isTraceEnabled()) {
|
||||||
|
|
|
@ -167,4 +167,24 @@ public class IndexSettingsTests extends ESTestCase {
|
||||||
assertEquals(Translog.Durability.REQUEST, settings.getTranslogDurability()); // test default
|
assertEquals(Translog.Durability.REQUEST, settings.getTranslogDurability()); // test default
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testIsWarmerEnabled() {
|
||||||
|
IndexMetaData metaData = newIndexMeta("index", Settings.settingsBuilder()
|
||||||
|
.put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT)
|
||||||
|
.put(IndexSettings.INDEX_WARMER_ENABLED_SETTING.getKey(), false)
|
||||||
|
.build());
|
||||||
|
IndexSettings settings = new IndexSettings(metaData, Settings.EMPTY);
|
||||||
|
assertFalse(settings.isWarmerEnabled());
|
||||||
|
settings.updateIndexMetaData(newIndexMeta("index", Settings.builder().put(IndexSettings.INDEX_WARMER_ENABLED_SETTING.getKey(), "true").build()));
|
||||||
|
assertTrue(settings.isWarmerEnabled());
|
||||||
|
|
||||||
|
assertEquals(Translog.Durability.REQUEST, settings.getTranslogDurability());
|
||||||
|
|
||||||
|
metaData = newIndexMeta("index", Settings.settingsBuilder()
|
||||||
|
.put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT)
|
||||||
|
.build());
|
||||||
|
settings = new IndexSettings(metaData, Settings.EMPTY);
|
||||||
|
assertTrue(settings.isWarmerEnabled());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue