convert index.ttl.disable_purge
This commit is contained in:
parent
2e1bc1ea44
commit
69e95deb47
|
@ -138,7 +138,6 @@ public class ClusterModule extends AbstractModule {
|
||||||
registerIndexDynamicSetting(IndexMetaData.SETTING_BLOCKS_METADATA, Validator.EMPTY);
|
registerIndexDynamicSetting(IndexMetaData.SETTING_BLOCKS_METADATA, Validator.EMPTY);
|
||||||
registerIndexDynamicSetting(IndexMetaData.SETTING_SHARED_FS_ALLOW_RECOVERY_ON_ANY_NODE, Validator.EMPTY);
|
registerIndexDynamicSetting(IndexMetaData.SETTING_SHARED_FS_ALLOW_RECOVERY_ON_ANY_NODE, Validator.EMPTY);
|
||||||
registerIndexDynamicSetting(IndexMetaData.SETTING_PRIORITY, Validator.NON_NEGATIVE_INTEGER);
|
registerIndexDynamicSetting(IndexMetaData.SETTING_PRIORITY, Validator.NON_NEGATIVE_INTEGER);
|
||||||
registerIndexDynamicSetting(IndicesTTLService.INDEX_TTL_DISABLE_PURGE, Validator.EMPTY);
|
|
||||||
registerIndexDynamicSetting(PrimaryShardAllocator.INDEX_RECOVERY_INITIAL_SHARDS, Validator.EMPTY);
|
registerIndexDynamicSetting(PrimaryShardAllocator.INDEX_RECOVERY_INITIAL_SHARDS, Validator.EMPTY);
|
||||||
registerIndexDynamicSetting(IndexingSlowLog.INDEX_INDEXING_SLOWLOG_THRESHOLD_INDEX_WARN, Validator.TIME);
|
registerIndexDynamicSetting(IndexingSlowLog.INDEX_INDEXING_SLOWLOG_THRESHOLD_INDEX_WARN, Validator.TIME);
|
||||||
registerIndexDynamicSetting(IndexingSlowLog.INDEX_INDEXING_SLOWLOG_THRESHOLD_INDEX_INFO, Validator.TIME);
|
registerIndexDynamicSetting(IndexingSlowLog.INDEX_INDEXING_SLOWLOG_THRESHOLD_INDEX_INFO, Validator.TIME);
|
||||||
|
|
|
@ -65,6 +65,8 @@ public final class IndexSettings {
|
||||||
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 Setting<Boolean> INDEX_WARMER_ENABLED_SETTING = Setting.boolSetting("index.warmer.enabled", true, true, Setting.Scope.INDEX);
|
||||||
|
public static final Setting<Boolean> INDEX_TTL_DISABLE_PURGE_SETTING = Setting.boolSetting("index.ttl.disable_purge", false, true, Setting.Scope.INDEX);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Index setting describing the maximum value of from + size on a query.
|
* Index setting describing the maximum value of from + size on a query.
|
||||||
* The Default maximum value of from + size on a query is 10,000. This was chosen as
|
* The Default maximum value of from + size on a query is 10,000. This was chosen as
|
||||||
|
@ -114,8 +116,11 @@ public final class IndexSettings {
|
||||||
private long gcDeletesInMillis = DEFAULT_GC_DELETES.millis();
|
private long gcDeletesInMillis = DEFAULT_GC_DELETES.millis();
|
||||||
private volatile boolean warmerEnabled;
|
private volatile boolean warmerEnabled;
|
||||||
private volatile int maxResultWindow;
|
private volatile int maxResultWindow;
|
||||||
|
private volatile boolean TTLPurgeDisabled;
|
||||||
|
|
||||||
|
|
||||||
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(
|
||||||
|
INDEX_TTL_DISABLE_PURGE_SETTING,
|
||||||
IndexStore.INDEX_STORE_THROTTLE_TYPE_SETTING,
|
IndexStore.INDEX_STORE_THROTTLE_TYPE_SETTING,
|
||||||
IndexStore.INDEX_STORE_THROTTLE_MAX_BYTES_PER_SEC_SETTING,
|
IndexStore.INDEX_STORE_THROTTLE_MAX_BYTES_PER_SEC_SETTING,
|
||||||
MergeSchedulerConfig.AUTO_THROTTLE_SETTING,
|
MergeSchedulerConfig.AUTO_THROTTLE_SETTING,
|
||||||
|
@ -133,8 +138,6 @@ public final class IndexSettings {
|
||||||
EnableAllocationDecider.INDEX_ROUTING_ALLOCATION_ENABLE_SETTING
|
EnableAllocationDecider.INDEX_ROUTING_ALLOCATION_ENABLE_SETTING
|
||||||
)));
|
)));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the default search field for this index.
|
* Returns the default search field for this index.
|
||||||
*/
|
*/
|
||||||
|
@ -222,6 +225,8 @@ public final class IndexSettings {
|
||||||
scopedSettings.addSettingsUpdateConsumer(INDEX_WARMER_ENABLED_SETTING, this::setEnableWarmer);
|
scopedSettings.addSettingsUpdateConsumer(INDEX_WARMER_ENABLED_SETTING, this::setEnableWarmer);
|
||||||
maxResultWindow = scopedSettings.get(MAX_RESULT_WINDOW_SETTING);
|
maxResultWindow = scopedSettings.get(MAX_RESULT_WINDOW_SETTING);
|
||||||
scopedSettings.addSettingsUpdateConsumer(MAX_RESULT_WINDOW_SETTING, this::setMaxResultWindow);
|
scopedSettings.addSettingsUpdateConsumer(MAX_RESULT_WINDOW_SETTING, this::setMaxResultWindow);
|
||||||
|
TTLPurgeDisabled = scopedSettings.get(INDEX_TTL_DISABLE_PURGE_SETTING);
|
||||||
|
scopedSettings.addSettingsUpdateConsumer(INDEX_TTL_DISABLE_PURGE_SETTING, this::setTTLPurgeDisabled);
|
||||||
this.mergePolicyConfig = new MergePolicyConfig(logger, settings);
|
this.mergePolicyConfig = new MergePolicyConfig(logger, settings);
|
||||||
assert indexNameMatcher.test(indexMetaData.getIndex());
|
assert indexNameMatcher.test(indexMetaData.getIndex());
|
||||||
|
|
||||||
|
@ -459,6 +464,17 @@ public final class IndexSettings {
|
||||||
return mergePolicyConfig.getMergePolicy();
|
return mergePolicyConfig.getMergePolicy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns <code>true</code> if the TTL purge is disabled for this index. Default is <code>false</code>
|
||||||
|
*/
|
||||||
|
public boolean isTTLPurgeDisabled() {
|
||||||
|
return TTLPurgeDisabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setTTLPurgeDisabled(boolean ttlPurgeDisabled) {
|
||||||
|
this.TTLPurgeDisabled = ttlPurgeDisabled;
|
||||||
|
}
|
||||||
|
|
||||||
boolean containsSetting(Setting<?> setting) {
|
boolean containsSetting(Setting<?> setting) {
|
||||||
return scopedSettings.get(setting.getKey()) != null;
|
return scopedSettings.get(setting.getKey()) != null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,7 +68,6 @@ import java.util.concurrent.locks.ReentrantLock;
|
||||||
public class IndicesTTLService extends AbstractLifecycleComponent<IndicesTTLService> {
|
public class IndicesTTLService extends AbstractLifecycleComponent<IndicesTTLService> {
|
||||||
|
|
||||||
public static final Setting<TimeValue> INDICES_TTL_INTERVAL_SETTING = Setting.positiveTimeSetting("indices.ttl.interval", TimeValue.timeValueSeconds(60), true, Setting.Scope.CLUSTER);
|
public static final Setting<TimeValue> INDICES_TTL_INTERVAL_SETTING = Setting.positiveTimeSetting("indices.ttl.interval", TimeValue.timeValueSeconds(60), true, Setting.Scope.CLUSTER);
|
||||||
public static final String INDEX_TTL_DISABLE_PURGE = "index.ttl.disable_purge";
|
|
||||||
|
|
||||||
private final ClusterService clusterService;
|
private final ClusterService clusterService;
|
||||||
private final IndicesService indicesService;
|
private final IndicesService indicesService;
|
||||||
|
@ -164,8 +163,7 @@ public class IndicesTTLService extends AbstractLifecycleComponent<IndicesTTLServ
|
||||||
if (indexMetaData == null) {
|
if (indexMetaData == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
boolean disablePurge = indexMetaData.getSettings().getAsBoolean(INDEX_TTL_DISABLE_PURGE, false);
|
if (indexService.getIndexSettings().isTTLPurgeDisabled()) {
|
||||||
if (disablePurge) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -245,4 +245,25 @@ public class IndexSettingsTests extends ESTestCase {
|
||||||
// expected
|
// expected
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testIsTTLPurgeDisabled() {
|
||||||
|
IndexMetaData metaData = newIndexMeta("index", Settings.settingsBuilder()
|
||||||
|
.put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT)
|
||||||
|
.put(IndexSettings.INDEX_TTL_DISABLE_PURGE_SETTING.getKey(), false)
|
||||||
|
.build());
|
||||||
|
IndexSettings settings = new IndexSettings(metaData, Settings.EMPTY);
|
||||||
|
assertFalse(settings.isTTLPurgeDisabled());
|
||||||
|
settings.updateIndexMetaData(newIndexMeta("index", Settings.builder().put(IndexSettings.INDEX_TTL_DISABLE_PURGE_SETTING.getKey(), "true").build()));
|
||||||
|
assertTrue(settings.isTTLPurgeDisabled());
|
||||||
|
|
||||||
|
settings.updateIndexMetaData(newIndexMeta("index", Settings.EMPTY));
|
||||||
|
assertFalse("reset to default", settings.isTTLPurgeDisabled());
|
||||||
|
|
||||||
|
metaData = newIndexMeta("index", Settings.settingsBuilder()
|
||||||
|
.put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT)
|
||||||
|
.build());
|
||||||
|
settings = new IndexSettings(metaData, Settings.EMPTY);
|
||||||
|
assertFalse(settings.isTTLPurgeDisabled());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue