Browse Source

Core: remove index.fail_on_merge_failure

Always fail the engine if an unexpected exception is hit during merge.

Closes #10088
Michael McCandless 10 years ago
parent
commit
0683a66277

+ 0 - 3
docs/reference/indices/update-settings.asciidoc

@@ -64,9 +64,6 @@ settings API:
 `index.index_concurrency`::
 `index.index_concurrency`::
     experimental[] Defaults to `8`.
     experimental[] Defaults to `8`.
 
 
-`index.fail_on_merge_failure`::
-    experimental[] Default to `true`.
-
 `index.translog.flush_threshold_ops`::
 `index.translog.flush_threshold_ops`::
     When to flush based on operations.
     When to flush based on operations.
 
 

+ 0 - 22
src/main/java/org/elasticsearch/index/engine/EngineConfig.java

@@ -50,7 +50,6 @@ import java.util.concurrent.TimeUnit;
  */
  */
 public final class EngineConfig {
 public final class EngineConfig {
     private final ShardId shardId;
     private final ShardId shardId;
-    private volatile boolean failOnMergeFailure = true;
     private volatile boolean failEngineOnCorruption = true;
     private volatile boolean failEngineOnCorruption = true;
     private volatile ByteSizeValue indexingBufferSize;
     private volatile ByteSizeValue indexingBufferSize;
     private final int indexConcurrency;
     private final int indexConcurrency;
@@ -99,12 +98,6 @@ public final class EngineConfig {
      */
      */
     public static final String INDEX_GC_DELETES_SETTING = "index.gc_deletes";
     public static final String INDEX_GC_DELETES_SETTING = "index.gc_deletes";
 
 
-    /**
-     * Index setting to enable / disable engine failures on merge exceptions. Default is <code>true</code> / <tt>enabled</tt>.
-     * This setting is realtime updateable.
-     */
-    public static final String INDEX_FAIL_ON_MERGE_FAILURE_SETTING = "index.fail_on_merge_failure";
-
     /**
     /**
      * Index setting to enable / disable engine failures on detected index corruptions. Default is <code>true</code> / <tt>enabled</tt>.
      * Index setting to enable / disable engine failures on detected index corruptions. Default is <code>true</code> / <tt>enabled</tt>.
      * This setting is realtime updateable.
      * This setting is realtime updateable.
@@ -156,7 +149,6 @@ public final class EngineConfig {
         codecName = indexSettings.get(EngineConfig.INDEX_CODEC_SETTING, EngineConfig.DEFAULT_CODEC_NAME);
         codecName = indexSettings.get(EngineConfig.INDEX_CODEC_SETTING, EngineConfig.DEFAULT_CODEC_NAME);
         indexingBufferSize = indexSettings.getAsBytesSize(INDEX_BUFFER_SIZE_SETTING, DEFAUTL_INDEX_BUFFER_SIZE);
         indexingBufferSize = indexSettings.getAsBytesSize(INDEX_BUFFER_SIZE_SETTING, DEFAUTL_INDEX_BUFFER_SIZE);
         failEngineOnCorruption = indexSettings.getAsBoolean(INDEX_FAIL_ON_CORRUPTION_SETTING, true);
         failEngineOnCorruption = indexSettings.getAsBoolean(INDEX_FAIL_ON_CORRUPTION_SETTING, true);
-        failOnMergeFailure = indexSettings.getAsBoolean(INDEX_FAIL_ON_MERGE_FAILURE_SETTING, true);
         gcDeletesInMillis = indexSettings.getAsTime(INDEX_GC_DELETES_SETTING, EngineConfig.DEFAULT_GC_DELETES).millis();
         gcDeletesInMillis = indexSettings.getAsTime(INDEX_GC_DELETES_SETTING, EngineConfig.DEFAULT_GC_DELETES).millis();
     }
     }
 
 
@@ -176,13 +168,6 @@ public final class EngineConfig {
         this.enableGcDeletes = enableGcDeletes;
         this.enableGcDeletes = enableGcDeletes;
     }
     }
 
 
-    /**
-     * Returns <code>true</code> iff the engine should be failed if a merge error is hit. Defaults to <code>true</code>
-     */
-    public boolean isFailOnMergeFailure() {
-        return failOnMergeFailure;
-    }
-
     /**
     /**
      * Returns <code>true</code> if the engine should be failed in the case of a corrupted index. Defaults to <code>true</code>
      * Returns <code>true</code> if the engine should be failed in the case of a corrupted index. Defaults to <code>true</code>
      */
      */
@@ -377,11 +362,4 @@ public final class EngineConfig {
     public void setFailEngineOnCorruption(boolean failEngineOnCorruption) {
     public void setFailEngineOnCorruption(boolean failEngineOnCorruption) {
         this.failEngineOnCorruption = failEngineOnCorruption;
         this.failEngineOnCorruption = failEngineOnCorruption;
     }
     }
-
-    /**
-     * Sets if the engine should be failed if a merge error is hit. Defaults to <code>true</code>
-     */
-    public void setFailOnMergeFailure(boolean failOnMergeFailure) {
-        this.failOnMergeFailure = failOnMergeFailure;
-    }
 }
 }

+ 1 - 1
src/main/java/org/elasticsearch/index/engine/InternalEngine.java

@@ -1098,7 +1098,7 @@ public class InternalEngine extends Engine {
                 } else {
                 } else {
                     logger.warn("corrupt file detected source: [merge] but [{}] is set to [{}]", e, EngineConfig.INDEX_FAIL_ON_CORRUPTION_SETTING, engineConfig.isFailEngineOnCorruption());
                     logger.warn("corrupt file detected source: [merge] but [{}] is set to [{}]", e, EngineConfig.INDEX_FAIL_ON_CORRUPTION_SETTING, engineConfig.isFailEngineOnCorruption());
                 }
                 }
-            } else if (engineConfig.isFailOnMergeFailure()) {
+            } else {
                 failEngine("merge exception", e);
                 failEngine("merge exception", e);
             }
             }
         }
         }

+ 0 - 1
src/main/java/org/elasticsearch/index/settings/IndexDynamicSettingsModule.java

@@ -85,7 +85,6 @@ public class IndexDynamicSettingsModule extends AbstractModule {
         indexDynamicSettings.addDynamicSetting(LogDocMergePolicyProvider.INDEX_COMPOUND_FORMAT);
         indexDynamicSettings.addDynamicSetting(LogDocMergePolicyProvider.INDEX_COMPOUND_FORMAT);
         indexDynamicSettings.addDynamicSetting(EngineConfig.INDEX_COMPOUND_ON_FLUSH, Validator.BOOLEAN);
         indexDynamicSettings.addDynamicSetting(EngineConfig.INDEX_COMPOUND_ON_FLUSH, Validator.BOOLEAN);
         indexDynamicSettings.addDynamicSetting(EngineConfig.INDEX_GC_DELETES_SETTING, Validator.TIME);
         indexDynamicSettings.addDynamicSetting(EngineConfig.INDEX_GC_DELETES_SETTING, Validator.TIME);
-        indexDynamicSettings.addDynamicSetting(EngineConfig.INDEX_FAIL_ON_MERGE_FAILURE_SETTING, Validator.BOOLEAN);
         indexDynamicSettings.addDynamicSetting(EngineConfig.INDEX_FAIL_ON_CORRUPTION_SETTING, Validator.BOOLEAN);
         indexDynamicSettings.addDynamicSetting(EngineConfig.INDEX_FAIL_ON_CORRUPTION_SETTING, Validator.BOOLEAN);
         indexDynamicSettings.addDynamicSetting(IndexShard.INDEX_FLUSH_ON_CLOSE, Validator.BOOLEAN);
         indexDynamicSettings.addDynamicSetting(IndexShard.INDEX_FLUSH_ON_CLOSE, Validator.BOOLEAN);
         indexDynamicSettings.addDynamicSetting(ShardSlowLogIndexingService.INDEX_INDEXING_SLOWLOG_THRESHOLD_INDEX_WARN, Validator.TIME);
         indexDynamicSettings.addDynamicSetting(ShardSlowLogIndexingService.INDEX_INDEXING_SLOWLOG_THRESHOLD_INDEX_WARN, Validator.TIME);

+ 0 - 6
src/main/java/org/elasticsearch/index/shard/IndexShard.java

@@ -1036,12 +1036,6 @@ public class IndexShard extends AbstractIndexShardComponent {
                     config.setFailEngineOnCorruption(failEngineOnCorruption);
                     config.setFailEngineOnCorruption(failEngineOnCorruption);
                     change = true;
                     change = true;
                 }
                 }
-                final boolean failOnMergeFailure = settings.getAsBoolean(EngineConfig.INDEX_FAIL_ON_MERGE_FAILURE_SETTING, config.isFailOnMergeFailure());
-                if (failOnMergeFailure != config.isFailOnMergeFailure()) {
-                    logger.info("updating {} from [{}] to [{}]", EngineConfig.INDEX_FAIL_ON_MERGE_FAILURE_SETTING, config.isFailOnMergeFailure(), failOnMergeFailure);
-                    config.setFailOnMergeFailure(failOnMergeFailure);
-                    change = true;
-                }
             }
             }
             if (change) {
             if (change) {
                 refresh("apply settings");
                 refresh("apply settings");

+ 0 - 4
src/test/java/org/elasticsearch/index/engine/InternalEngineSettingsTest.java

@@ -45,14 +45,12 @@ public class InternalEngineSettingsTest extends ElasticsearchSingleNodeTest {
         for (int i = 0; i < iters; i++) {
         for (int i = 0; i < iters; i++) {
             boolean compoundOnFlush = randomBoolean();
             boolean compoundOnFlush = randomBoolean();
             boolean failOnCorruption = randomBoolean();
             boolean failOnCorruption = randomBoolean();
-            boolean failOnMerge = randomBoolean();
             long gcDeletes = Math.max(0, randomLong());
             long gcDeletes = Math.max(0, randomLong());
 
 
             Settings build = ImmutableSettings.builder()
             Settings build = ImmutableSettings.builder()
                     .put(EngineConfig.INDEX_FAIL_ON_CORRUPTION_SETTING, failOnCorruption)
                     .put(EngineConfig.INDEX_FAIL_ON_CORRUPTION_SETTING, failOnCorruption)
                     .put(EngineConfig.INDEX_COMPOUND_ON_FLUSH, compoundOnFlush)
                     .put(EngineConfig.INDEX_COMPOUND_ON_FLUSH, compoundOnFlush)
                     .put(EngineConfig.INDEX_GC_DELETES_SETTING, gcDeletes)
                     .put(EngineConfig.INDEX_GC_DELETES_SETTING, gcDeletes)
-                    .put(EngineConfig.INDEX_FAIL_ON_MERGE_FAILURE_SETTING, failOnMerge)
                     .build();
                     .build();
 
 
             client().admin().indices().prepareUpdateSettings("foo").setSettings(build).get();
             client().admin().indices().prepareUpdateSettings("foo").setSettings(build).get();
@@ -64,8 +62,6 @@ public class InternalEngineSettingsTest extends ElasticsearchSingleNodeTest {
             assertEquals(engine.config().getGcDeletesInMillis(), gcDeletes);
             assertEquals(engine.config().getGcDeletesInMillis(), gcDeletes);
             assertEquals(engine.getGcDeletesInMillis(), gcDeletes);
             assertEquals(engine.getGcDeletesInMillis(), gcDeletes);
             assertEquals(engine.config().isFailEngineOnCorruption(), failOnCorruption);
             assertEquals(engine.config().isFailEngineOnCorruption(), failOnCorruption);
-            assertEquals(engine.config().isFailOnMergeFailure(), failOnMerge); // only on the holder
-
         }
         }
 
 
         Settings settings = ImmutableSettings.builder()
         Settings settings = ImmutableSettings.builder()

+ 0 - 1
src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java

@@ -1505,7 +1505,6 @@ public class InternalEngineTests extends ElasticsearchLuceneTestCase {
         assertTrue(settings.containsSetting(EngineConfig.INDEX_FAIL_ON_CORRUPTION_SETTING));
         assertTrue(settings.containsSetting(EngineConfig.INDEX_FAIL_ON_CORRUPTION_SETTING));
         assertTrue(settings.containsSetting(EngineConfig.INDEX_COMPOUND_ON_FLUSH));
         assertTrue(settings.containsSetting(EngineConfig.INDEX_COMPOUND_ON_FLUSH));
         assertTrue(settings.containsSetting(EngineConfig.INDEX_GC_DELETES_SETTING));
         assertTrue(settings.containsSetting(EngineConfig.INDEX_GC_DELETES_SETTING));
-        assertTrue(settings.containsSetting(EngineConfig.INDEX_FAIL_ON_MERGE_FAILURE_SETTING));
     }
     }
 
 
     @Test
     @Test