Remove `index.compound_on_flush` setting and default to `true`
We added this undocumented realtime setting as backup plan long ago but to date we haven't had a situation where it was a problem. It's reducing the number of filehandles in the NRT case dramatically and should always be enabled.
This commit is contained in:
parent
8c898048bc
commit
8135a4ac9f
|
@ -152,7 +152,6 @@ public class ClusterModule extends AbstractModule {
|
|||
registerIndexDynamicSetting(IndicesTTLService.INDEX_TTL_DISABLE_PURGE, Validator.EMPTY);
|
||||
registerIndexDynamicSetting(IndexShard.INDEX_REFRESH_INTERVAL, Validator.TIME);
|
||||
registerIndexDynamicSetting(PrimaryShardAllocator.INDEX_RECOVERY_INITIAL_SHARDS, Validator.EMPTY);
|
||||
registerIndexDynamicSetting(EngineConfig.INDEX_COMPOUND_ON_FLUSH, Validator.BOOLEAN);
|
||||
registerIndexDynamicSetting(EngineConfig.INDEX_GC_DELETES_SETTING, Validator.TIME);
|
||||
registerIndexDynamicSetting(IndexShard.INDEX_FLUSH_ON_CLOSE, Validator.BOOLEAN);
|
||||
registerIndexDynamicSetting(EngineConfig.INDEX_VERSION_MAP_SIZE, Validator.BYTES_SIZE_OR_PERCENTAGE);
|
||||
|
|
|
@ -53,7 +53,6 @@ public final class EngineConfig {
|
|||
private volatile ByteSizeValue indexingBufferSize;
|
||||
private volatile ByteSizeValue versionMapSize;
|
||||
private volatile String versionMapSizeSetting;
|
||||
private volatile boolean compoundOnFlush = true;
|
||||
private long gcDeletesInMillis = DEFAULT_GC_DELETES.millis();
|
||||
private volatile boolean enableGcDeletes = true;
|
||||
private final TimeValue flushMergesAfter;
|
||||
|
@ -73,11 +72,6 @@ public final class EngineConfig {
|
|||
private final QueryCache queryCache;
|
||||
private final QueryCachingPolicy queryCachingPolicy;
|
||||
|
||||
/**
|
||||
* Index setting for compound file on flush. This setting is realtime updateable.
|
||||
*/
|
||||
public static final String INDEX_COMPOUND_ON_FLUSH = "index.compound_on_flush";
|
||||
|
||||
/**
|
||||
* Index setting to enable / disable deletes garbage collection.
|
||||
* This setting is realtime updateable
|
||||
|
@ -132,7 +126,6 @@ public final class EngineConfig {
|
|||
this.similarity = similarity;
|
||||
this.codecService = codecService;
|
||||
this.eventListener = eventListener;
|
||||
this.compoundOnFlush = settings.getAsBoolean(EngineConfig.INDEX_COMPOUND_ON_FLUSH, compoundOnFlush);
|
||||
codecName = settings.get(EngineConfig.INDEX_CODEC_SETTING, EngineConfig.DEFAULT_CODEC_NAME);
|
||||
// We start up inactive and rely on IndexingMemoryController to give us our fair share once we start indexing:
|
||||
indexingBufferSize = IndexingMemoryController.INACTIVE_SHARD_INDEXING_BUFFER;
|
||||
|
@ -208,13 +201,6 @@ public final class EngineConfig {
|
|||
return indexingBufferSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns <code>true</code> iff flushed segments should be written as compound file system. Defaults to <code>true</code>
|
||||
*/
|
||||
public boolean isCompoundOnFlush() {
|
||||
return compoundOnFlush;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the GC deletes cycle in milliseconds.
|
||||
*/
|
||||
|
@ -346,13 +332,6 @@ public final class EngineConfig {
|
|||
this.gcDeletesInMillis = gcDeletesInMillis;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets if flushed segments should be written as compound file system. Defaults to <code>true</code>
|
||||
*/
|
||||
public void setCompoundOnFlush(boolean compoundOnFlush) {
|
||||
this.compoundOnFlush = compoundOnFlush;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the {@link org.elasticsearch.index.shard.TranslogRecoveryPerformer} for this engine. This class is used
|
||||
* to apply transaction log operations to the engine. It encapsulates all the logic to transfer the translog entry into
|
||||
|
|
|
@ -313,7 +313,6 @@ public class InternalEngine extends Engine {
|
|||
try {
|
||||
final LiveIndexWriterConfig iwc = indexWriter.getConfig();
|
||||
iwc.setRAMBufferSizeMB(engineConfig.getIndexingBufferSize().mbFrac());
|
||||
iwc.setUseCompoundFile(engineConfig.isCompoundOnFlush());
|
||||
} catch (AlreadyClosedException ex) {
|
||||
// ignore
|
||||
}
|
||||
|
@ -939,7 +938,7 @@ public class InternalEngine extends Engine {
|
|||
* here but with 1s poll this is only executed twice at most
|
||||
* in combination with the default writelock timeout*/
|
||||
iwc.setWriteLockTimeout(5000);
|
||||
iwc.setUseCompoundFile(this.engineConfig.isCompoundOnFlush());
|
||||
iwc.setUseCompoundFile(true); // always use compound on flush - reduces # of file-handles on refresh
|
||||
// Warm-up hook for newly-merged segments. Warming up segments here is better since it will be performed at the end
|
||||
// of the merge operation and won't slow down _refresh
|
||||
iwc.setMergedSegmentWarmer(new IndexReaderWarmer() {
|
||||
|
|
|
@ -1179,12 +1179,6 @@ public class IndexShard extends AbstractIndexShardComponent {
|
|||
change = true;
|
||||
}
|
||||
|
||||
final boolean compoundOnFlush = settings.getAsBoolean(EngineConfig.INDEX_COMPOUND_ON_FLUSH, config.isCompoundOnFlush());
|
||||
if (compoundOnFlush != config.isCompoundOnFlush()) {
|
||||
logger.info("updating {} from [{}] to [{}]", EngineConfig.INDEX_COMPOUND_ON_FLUSH, config.isCompoundOnFlush(), compoundOnFlush);
|
||||
config.setCompoundOnFlush(compoundOnFlush);
|
||||
change = true;
|
||||
}
|
||||
final String versionMapSize = settings.get(EngineConfig.INDEX_VERSION_MAP_SIZE, config.getVersionMapSizeSetting());
|
||||
if (config.getVersionMapSizeSetting().equals(versionMapSize) == false) {
|
||||
config.setVersionMapSizeSetting(versionMapSize);
|
||||
|
|
|
@ -1,88 +0,0 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.elasticsearch.index.engine;
|
||||
|
||||
import org.elasticsearch.action.admin.indices.segments.IndexSegments;
|
||||
import org.elasticsearch.action.admin.indices.segments.IndexShardSegments;
|
||||
import org.elasticsearch.action.admin.indices.segments.IndicesSegmentResponse;
|
||||
import org.elasticsearch.action.admin.indices.segments.ShardSegments;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.hamcrest.Matchers;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public class InternalEngineIT extends ESIntegTestCase {
|
||||
public void testSetIndexCompoundOnFlush() {
|
||||
client().admin().indices().prepareCreate("test").setSettings(Settings.builder().put("number_of_replicas", 0).put("number_of_shards", 1)).get();
|
||||
ensureGreen();
|
||||
client().prepareIndex("test", "foo").setSource("field", "foo").get();
|
||||
refresh();
|
||||
assertTotalCompoundSegments(1, 1, "test");
|
||||
client().admin().indices().prepareUpdateSettings("test")
|
||||
.setSettings(Settings.builder().put(EngineConfig.INDEX_COMPOUND_ON_FLUSH, false)).get();
|
||||
client().prepareIndex("test", "foo").setSource("field", "foo").get();
|
||||
refresh();
|
||||
assertTotalCompoundSegments(1, 2, "test");
|
||||
|
||||
client().admin().indices().prepareUpdateSettings("test")
|
||||
.setSettings(Settings.builder().put(EngineConfig.INDEX_COMPOUND_ON_FLUSH, true)).get();
|
||||
client().prepareIndex("test", "foo").setSource("field", "foo").get();
|
||||
refresh();
|
||||
assertTotalCompoundSegments(2, 3, "test");
|
||||
}
|
||||
|
||||
private void assertTotalCompoundSegments(int i, int t, String index) {
|
||||
IndicesSegmentResponse indicesSegmentResponse = client().admin().indices().prepareSegments(index).get();
|
||||
assertNotNull("indices segments response should contain indices", indicesSegmentResponse.getIndices());
|
||||
IndexSegments indexSegments = indicesSegmentResponse.getIndices().get(index);
|
||||
assertNotNull(indexSegments);
|
||||
assertNotNull(indexSegments.getShards());
|
||||
Collection<IndexShardSegments> values = indexSegments.getShards().values();
|
||||
int compounds = 0;
|
||||
int total = 0;
|
||||
for (IndexShardSegments indexShardSegments : values) {
|
||||
for (ShardSegments s : indexShardSegments) {
|
||||
for (Segment segment : s) {
|
||||
if (segment.isSearch() && segment.getNumDocs() > 0) {
|
||||
if (segment.isCompound()) {
|
||||
compounds++;
|
||||
}
|
||||
total++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
assertThat(compounds, Matchers.equalTo(i));
|
||||
assertThat(total, Matchers.equalTo(t));
|
||||
}
|
||||
|
||||
private Set<Segment> segments(IndexSegments segments) {
|
||||
Set<Segment> segmentSet = new HashSet<>();
|
||||
for (IndexShardSegments s : segments) {
|
||||
for (ShardSegments shardSegments : s) {
|
||||
segmentSet.addAll(shardSegments.getSegments());
|
||||
}
|
||||
}
|
||||
return segmentSet;
|
||||
}
|
||||
}
|
|
@ -36,10 +36,6 @@ public class InternalEngineSettingsTests extends ESSingleNodeTestCase {
|
|||
// INDEX_COMPOUND_ON_FLUSH
|
||||
InternalEngine engine = ((InternalEngine) EngineAccess.engine(service.getShardOrNull(0)));
|
||||
assertThat(engine.getCurrentIndexWriterConfig().getUseCompoundFile(), is(true));
|
||||
client().admin().indices().prepareUpdateSettings("foo").setSettings(Settings.builder().put(EngineConfig.INDEX_COMPOUND_ON_FLUSH, false).build()).get();
|
||||
assertThat(engine.getCurrentIndexWriterConfig().getUseCompoundFile(), is(false));
|
||||
client().admin().indices().prepareUpdateSettings("foo").setSettings(Settings.builder().put(EngineConfig.INDEX_COMPOUND_ON_FLUSH, true).build()).get();
|
||||
assertThat(engine.getCurrentIndexWriterConfig().getUseCompoundFile(), is(true));
|
||||
|
||||
|
||||
// VERSION MAP SIZE
|
||||
|
@ -61,7 +57,6 @@ public class InternalEngineSettingsTests extends ESSingleNodeTestCase {
|
|||
String versionMapString = versionMapAsPercent ? versionMapPercent + "%" : versionMapSizeInMB + "mb";
|
||||
|
||||
Settings build = Settings.builder()
|
||||
.put(EngineConfig.INDEX_COMPOUND_ON_FLUSH, compoundOnFlush)
|
||||
.put(EngineConfig.INDEX_GC_DELETES_SETTING, gcDeletes, TimeUnit.MILLISECONDS)
|
||||
.put(EngineConfig.INDEX_VERSION_MAP_SIZE, versionMapString)
|
||||
.build();
|
||||
|
@ -69,8 +64,7 @@ public class InternalEngineSettingsTests extends ESSingleNodeTestCase {
|
|||
|
||||
client().admin().indices().prepareUpdateSettings("foo").setSettings(build).get();
|
||||
LiveIndexWriterConfig currentIndexWriterConfig = engine.getCurrentIndexWriterConfig();
|
||||
assertEquals(engine.config().isCompoundOnFlush(), compoundOnFlush);
|
||||
assertEquals(currentIndexWriterConfig.getUseCompoundFile(), compoundOnFlush);
|
||||
assertEquals(currentIndexWriterConfig.getUseCompoundFile(), true);
|
||||
|
||||
|
||||
assertEquals(engine.config().getGcDeletesInMillis(), gcDeletes);
|
||||
|
|
|
@ -169,7 +169,6 @@ public class InternalEngineTests extends ESTestCase {
|
|||
codecName = "default";
|
||||
}
|
||||
defaultSettings = IndexSettingsModule.newIndexSettings("test", Settings.builder()
|
||||
.put(EngineConfig.INDEX_COMPOUND_ON_FLUSH, randomBoolean())
|
||||
.put(EngineConfig.INDEX_GC_DELETES_SETTING, "1h") // make sure this doesn't kick in on us
|
||||
.put(EngineConfig.INDEX_CODEC_SETTING, codecName)
|
||||
.put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT)
|
||||
|
@ -300,7 +299,6 @@ public class InternalEngineTests extends ESTestCase {
|
|||
assertThat(segments.isEmpty(), equalTo(true));
|
||||
assertThat(engine.segmentsStats().getCount(), equalTo(0l));
|
||||
assertThat(engine.segmentsStats().getMemoryInBytes(), equalTo(0l));
|
||||
final boolean defaultCompound = defaultSettings.getSettings().getAsBoolean(EngineConfig.INDEX_COMPOUND_ON_FLUSH, true);
|
||||
|
||||
// create a doc and refresh
|
||||
ParsedDocument doc = testParsedDocument("1", "1", "test", null, -1, -1, testDocumentWithTextField(), B_1, null);
|
||||
|
@ -323,7 +321,7 @@ public class InternalEngineTests extends ESTestCase {
|
|||
assertThat(segments.get(0).isSearch(), equalTo(true));
|
||||
assertThat(segments.get(0).getNumDocs(), equalTo(2));
|
||||
assertThat(segments.get(0).getDeletedDocs(), equalTo(0));
|
||||
assertThat(segments.get(0).isCompound(), equalTo(defaultCompound));
|
||||
assertThat(segments.get(0).isCompound(), equalTo(true));
|
||||
assertThat(segments.get(0).ramTree, nullValue());
|
||||
|
||||
engine.flush();
|
||||
|
@ -335,10 +333,7 @@ public class InternalEngineTests extends ESTestCase {
|
|||
assertThat(segments.get(0).isSearch(), equalTo(true));
|
||||
assertThat(segments.get(0).getNumDocs(), equalTo(2));
|
||||
assertThat(segments.get(0).getDeletedDocs(), equalTo(0));
|
||||
assertThat(segments.get(0).isCompound(), equalTo(defaultCompound));
|
||||
|
||||
engine.config().setCompoundOnFlush(false);
|
||||
engine.onSettingsChanged();
|
||||
assertThat(segments.get(0).isCompound(), equalTo(true));
|
||||
|
||||
ParsedDocument doc3 = testParsedDocument("3", "3", "test", null, -1, -1, testDocumentWithTextField(), B_3, null);
|
||||
engine.index(new Engine.Index(newUid("3"), doc3));
|
||||
|
@ -357,14 +352,14 @@ public class InternalEngineTests extends ESTestCase {
|
|||
assertThat(segments.get(0).isSearch(), equalTo(true));
|
||||
assertThat(segments.get(0).getNumDocs(), equalTo(2));
|
||||
assertThat(segments.get(0).getDeletedDocs(), equalTo(0));
|
||||
assertThat(segments.get(0).isCompound(), equalTo(defaultCompound));
|
||||
assertThat(segments.get(0).isCompound(), equalTo(true));
|
||||
|
||||
|
||||
assertThat(segments.get(1).isCommitted(), equalTo(false));
|
||||
assertThat(segments.get(1).isSearch(), equalTo(true));
|
||||
assertThat(segments.get(1).getNumDocs(), equalTo(1));
|
||||
assertThat(segments.get(1).getDeletedDocs(), equalTo(0));
|
||||
assertThat(segments.get(1).isCompound(), equalTo(false));
|
||||
assertThat(segments.get(1).isCompound(), equalTo(true));
|
||||
|
||||
|
||||
engine.delete(new Engine.Delete("test", "1", newUid("1")));
|
||||
|
@ -378,15 +373,14 @@ public class InternalEngineTests extends ESTestCase {
|
|||
assertThat(segments.get(0).isSearch(), equalTo(true));
|
||||
assertThat(segments.get(0).getNumDocs(), equalTo(1));
|
||||
assertThat(segments.get(0).getDeletedDocs(), equalTo(1));
|
||||
assertThat(segments.get(0).isCompound(), equalTo(defaultCompound));
|
||||
assertThat(segments.get(0).isCompound(), equalTo(true));
|
||||
|
||||
assertThat(segments.get(1).isCommitted(), equalTo(false));
|
||||
assertThat(segments.get(1).isSearch(), equalTo(true));
|
||||
assertThat(segments.get(1).getNumDocs(), equalTo(1));
|
||||
assertThat(segments.get(1).getDeletedDocs(), equalTo(0));
|
||||
assertThat(segments.get(1).isCompound(), equalTo(false));
|
||||
assertThat(segments.get(1).isCompound(), equalTo(true));
|
||||
|
||||
engine.config().setCompoundOnFlush(true);
|
||||
engine.onSettingsChanged();
|
||||
ParsedDocument doc4 = testParsedDocument("4", "4", "test", null, -1, -1, testDocumentWithTextField(), B_3, null);
|
||||
engine.index(new Engine.Index(newUid("4"), doc4));
|
||||
|
@ -400,13 +394,13 @@ public class InternalEngineTests extends ESTestCase {
|
|||
assertThat(segments.get(0).isSearch(), equalTo(true));
|
||||
assertThat(segments.get(0).getNumDocs(), equalTo(1));
|
||||
assertThat(segments.get(0).getDeletedDocs(), equalTo(1));
|
||||
assertThat(segments.get(0).isCompound(), equalTo(defaultCompound));
|
||||
assertThat(segments.get(0).isCompound(), equalTo(true));
|
||||
|
||||
assertThat(segments.get(1).isCommitted(), equalTo(false));
|
||||
assertThat(segments.get(1).isSearch(), equalTo(true));
|
||||
assertThat(segments.get(1).getNumDocs(), equalTo(1));
|
||||
assertThat(segments.get(1).getDeletedDocs(), equalTo(0));
|
||||
assertThat(segments.get(1).isCompound(), equalTo(false));
|
||||
assertThat(segments.get(1).isCompound(), equalTo(true));
|
||||
|
||||
assertThat(segments.get(2).isCommitted(), equalTo(false));
|
||||
assertThat(segments.get(2).isSearch(), equalTo(true));
|
||||
|
|
|
@ -118,7 +118,6 @@ public class ShadowEngineTests extends ESTestCase {
|
|||
codecName = "default";
|
||||
}
|
||||
defaultSettings = IndexSettingsModule.newIndexSettings("test", Settings.builder()
|
||||
.put(EngineConfig.INDEX_COMPOUND_ON_FLUSH, randomBoolean())
|
||||
.put(EngineConfig.INDEX_GC_DELETES_SETTING, "1h") // make sure this doesn't kick in on us
|
||||
.put(EngineConfig.INDEX_CODEC_SETTING, codecName)
|
||||
.put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT)
|
||||
|
@ -280,7 +279,6 @@ public class ShadowEngineTests extends ESTestCase {
|
|||
assertThat(segments.isEmpty(), equalTo(true));
|
||||
assertThat(primaryEngine.segmentsStats().getCount(), equalTo(0l));
|
||||
assertThat(primaryEngine.segmentsStats().getMemoryInBytes(), equalTo(0l));
|
||||
final boolean defaultCompound = defaultSettings.getSettings().getAsBoolean(EngineConfig.INDEX_COMPOUND_ON_FLUSH, true);
|
||||
|
||||
// create a doc and refresh
|
||||
ParsedDocument doc = testParsedDocument("1", "1", "test", null, -1, -1, testDocumentWithTextField(), B_1, null);
|
||||
|
@ -303,7 +301,7 @@ public class ShadowEngineTests extends ESTestCase {
|
|||
assertThat(segments.get(0).isSearch(), equalTo(true));
|
||||
assertThat(segments.get(0).getNumDocs(), equalTo(2));
|
||||
assertThat(segments.get(0).getDeletedDocs(), equalTo(0));
|
||||
assertThat(segments.get(0).isCompound(), equalTo(defaultCompound));
|
||||
assertTrue(segments.get(0).isCompound());
|
||||
assertThat(segments.get(0).ramTree, nullValue());
|
||||
|
||||
// Check that the replica sees nothing
|
||||
|
@ -331,7 +329,7 @@ public class ShadowEngineTests extends ESTestCase {
|
|||
assertThat(segments.get(0).isSearch(), equalTo(true));
|
||||
assertThat(segments.get(0).getNumDocs(), equalTo(2));
|
||||
assertThat(segments.get(0).getDeletedDocs(), equalTo(0));
|
||||
assertThat(segments.get(0).isCompound(), equalTo(defaultCompound));
|
||||
assertThat(segments.get(0).isCompound(), equalTo(true));
|
||||
|
||||
segments = replicaEngine.segments(false);
|
||||
assertThat(segments.size(), equalTo(1));
|
||||
|
@ -340,12 +338,9 @@ public class ShadowEngineTests extends ESTestCase {
|
|||
assertThat(segments.get(0).isSearch(), equalTo(true));
|
||||
assertThat(segments.get(0).getNumDocs(), equalTo(2));
|
||||
assertThat(segments.get(0).getDeletedDocs(), equalTo(0));
|
||||
assertThat(segments.get(0).isCompound(), equalTo(defaultCompound));
|
||||
assertThat(segments.get(0).isCompound(), equalTo(true));
|
||||
|
||||
|
||||
primaryEngine.config().setCompoundOnFlush(false);
|
||||
primaryEngine.onSettingsChanged();
|
||||
|
||||
ParsedDocument doc3 = testParsedDocument("3", "3", "test", null, -1, -1, testDocumentWithTextField(), B_3, null);
|
||||
primaryEngine.index(new Engine.Index(newUid("3"), doc3));
|
||||
primaryEngine.refresh("test");
|
||||
|
@ -363,12 +358,12 @@ public class ShadowEngineTests extends ESTestCase {
|
|||
assertThat(segments.get(0).isSearch(), equalTo(true));
|
||||
assertThat(segments.get(0).getNumDocs(), equalTo(2));
|
||||
assertThat(segments.get(0).getDeletedDocs(), equalTo(0));
|
||||
assertThat(segments.get(0).isCompound(), equalTo(defaultCompound));
|
||||
assertThat(segments.get(0).isCompound(), equalTo(true));
|
||||
assertThat(segments.get(1).isCommitted(), equalTo(false));
|
||||
assertThat(segments.get(1).isSearch(), equalTo(true));
|
||||
assertThat(segments.get(1).getNumDocs(), equalTo(1));
|
||||
assertThat(segments.get(1).getDeletedDocs(), equalTo(0));
|
||||
assertThat(segments.get(1).isCompound(), equalTo(false));
|
||||
assertThat(segments.get(1).isCompound(), equalTo(true));
|
||||
|
||||
// Make visible to shadow replica
|
||||
primaryEngine.flush();
|
||||
|
@ -387,12 +382,12 @@ public class ShadowEngineTests extends ESTestCase {
|
|||
assertThat(segments.get(0).isSearch(), equalTo(true));
|
||||
assertThat(segments.get(0).getNumDocs(), equalTo(2));
|
||||
assertThat(segments.get(0).getDeletedDocs(), equalTo(0));
|
||||
assertThat(segments.get(0).isCompound(), equalTo(defaultCompound));
|
||||
assertThat(segments.get(0).isCompound(), equalTo(true));
|
||||
assertThat(segments.get(1).isCommitted(), equalTo(true));
|
||||
assertThat(segments.get(1).isSearch(), equalTo(true));
|
||||
assertThat(segments.get(1).getNumDocs(), equalTo(1));
|
||||
assertThat(segments.get(1).getDeletedDocs(), equalTo(0));
|
||||
assertThat(segments.get(1).isCompound(), equalTo(false));
|
||||
assertThat(segments.get(1).isCompound(), equalTo(true));
|
||||
|
||||
primaryEngine.delete(new Engine.Delete("test", "1", newUid("1")));
|
||||
primaryEngine.refresh("test");
|
||||
|
@ -405,20 +400,17 @@ public class ShadowEngineTests extends ESTestCase {
|
|||
assertThat(segments.get(0).isSearch(), equalTo(true));
|
||||
assertThat(segments.get(0).getNumDocs(), equalTo(1));
|
||||
assertThat(segments.get(0).getDeletedDocs(), equalTo(1));
|
||||
assertThat(segments.get(0).isCompound(), equalTo(defaultCompound));
|
||||
assertThat(segments.get(0).isCompound(), equalTo(true));
|
||||
assertThat(segments.get(1).isCommitted(), equalTo(true));
|
||||
assertThat(segments.get(1).isSearch(), equalTo(true));
|
||||
assertThat(segments.get(1).getNumDocs(), equalTo(1));
|
||||
assertThat(segments.get(1).getDeletedDocs(), equalTo(0));
|
||||
assertThat(segments.get(1).isCompound(), equalTo(false));
|
||||
assertThat(segments.get(1).isCompound(), equalTo(true));
|
||||
|
||||
// Make visible to shadow replica
|
||||
primaryEngine.flush();
|
||||
replicaEngine.refresh("test");
|
||||
|
||||
primaryEngine.config().setCompoundOnFlush(true);
|
||||
primaryEngine.onSettingsChanged();
|
||||
|
||||
ParsedDocument doc4 = testParsedDocument("4", "4", "test", null, -1, -1, testDocumentWithTextField(), B_3, null);
|
||||
primaryEngine.index(new Engine.Index(newUid("4"), doc4));
|
||||
primaryEngine.refresh("test");
|
||||
|
@ -431,13 +423,13 @@ public class ShadowEngineTests extends ESTestCase {
|
|||
assertThat(segments.get(0).isSearch(), equalTo(true));
|
||||
assertThat(segments.get(0).getNumDocs(), equalTo(1));
|
||||
assertThat(segments.get(0).getDeletedDocs(), equalTo(1));
|
||||
assertThat(segments.get(0).isCompound(), equalTo(defaultCompound));
|
||||
assertThat(segments.get(0).isCompound(), equalTo(true));
|
||||
|
||||
assertThat(segments.get(1).isCommitted(), equalTo(true));
|
||||
assertThat(segments.get(1).isSearch(), equalTo(true));
|
||||
assertThat(segments.get(1).getNumDocs(), equalTo(1));
|
||||
assertThat(segments.get(1).getDeletedDocs(), equalTo(0));
|
||||
assertThat(segments.get(1).isCompound(), equalTo(false));
|
||||
assertThat(segments.get(1).isCompound(), equalTo(true));
|
||||
|
||||
assertThat(segments.get(2).isCommitted(), equalTo(false));
|
||||
assertThat(segments.get(2).isSearch(), equalTo(true));
|
||||
|
|
Loading…
Reference in New Issue