Package org.elasticsearch.index.shard
Class IndexShardTestCase
java.lang.Object
org.junit.Assert
org.apache.lucene.util.LuceneTestCase
org.elasticsearch.test.ESTestCase
org.elasticsearch.index.shard.IndexShardTestCase
- Direct Known Subclasses:
ESIndexLevelReplicationTestCase
public abstract class IndexShardTestCase extends ESTestCase
A base class for unit tests that need to create and shutdown
IndexShard
instances easily,
containing utilities for shard creation and recoveries. See {newShard(boolean)
} and
newStartedShard()
for a good starting points-
Nested Class Summary
Nested classes/interfaces inherited from class org.elasticsearch.test.ESTestCase
ESTestCase.GeohashGenerator, ESTestCase.TestAnalysis
Nested classes/interfaces inherited from class org.apache.lucene.util.LuceneTestCase
org.apache.lucene.util.LuceneTestCase.AwaitsFix, org.apache.lucene.util.LuceneTestCase.BadApple, org.apache.lucene.util.LuceneTestCase.Monster, org.apache.lucene.util.LuceneTestCase.Nightly, org.apache.lucene.util.LuceneTestCase.Slow, org.apache.lucene.util.LuceneTestCase.SuppressCodecs, org.apache.lucene.util.LuceneTestCase.SuppressFileSystems, org.apache.lucene.util.LuceneTestCase.SuppressFsync, org.apache.lucene.util.LuceneTestCase.SuppressReproduceLine, org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks, org.apache.lucene.util.LuceneTestCase.SuppressTempFileChecks, org.apache.lucene.util.LuceneTestCase.ThrowingRunnable, org.apache.lucene.util.LuceneTestCase.Weekly
-
Field Summary
Fields Modifier and Type Field Description protected static java.util.concurrent.atomic.AtomicLong
currentClusterStateVersion
static org.elasticsearch.index.shard.IndexEventListener
EMPTY_EVENT_LISTENER
protected long
primaryTerm
protected static org.elasticsearch.indices.recovery.PeerRecoveryTargetService.RecoveryListener
recoveryListener
protected org.elasticsearch.threadpool.ThreadPool
threadPool
Fields inherited from class org.elasticsearch.test.ESTestCase
checkIndexFailures, DEFAULT_TEST_WORKER_ID, failureAndSuccessEvents, FIPS_SYSPROP, JAVA_TIMEZONE_IDS, JAVA_ZONE_IDS, JODA_TIMEZONE_IDS, logger, TEST_WORKER_SYS_PROPERTY, TEST_WORKER_VM_ID
Fields inherited from class org.apache.lucene.util.LuceneTestCase
assertsAreEnabled, classRules, DEFAULT_LINE_DOCS_FILE, INFOSTREAM, JENKINS_LARGE_LINE_DOCS_FILE, LEAVE_TEMPORARY, MAYBE_CACHE_POLICY, RANDOM_MULTIPLIER, ruleChain, suiteFailureMarker, SYSPROP_AWAITSFIX, SYSPROP_BADAPPLES, SYSPROP_FAILFAST, SYSPROP_MAXFAILURES, SYSPROP_MONSTER, SYSPROP_NIGHTLY, SYSPROP_SLOW, SYSPROP_WEEKLY, TEST_ASSERTS_ENABLED, TEST_AWAITSFIX, TEST_BADAPPLES, TEST_CODEC, TEST_DIRECTORY, TEST_DOCVALUESFORMAT, TEST_LINE_DOCS_FILE, TEST_MONSTER, TEST_NIGHTLY, TEST_POSTINGSFORMAT, TEST_SLOW, TEST_THROTTLING, TEST_WEEKLY, VERBOSE
-
Constructor Summary
Constructors Constructor Description IndexShardTestCase()
-
Method Summary
Modifier and Type Method Description protected void
allowShardFailures()
by default, tests will fail if any shard created by this class fails.static void
assertConsistentHistoryBetweenTranslogAndLucene(org.elasticsearch.index.shard.IndexShard shard)
protected void
assertDocCount(org.elasticsearch.index.shard.IndexShard shard, int docDount)
protected void
assertDocs(org.elasticsearch.index.shard.IndexShard shard, java.lang.String... ids)
protected void
closeShard(org.elasticsearch.index.shard.IndexShard shard, boolean assertConsistencyBetweenTranslogAndLucene)
protected void
closeShards(java.lang.Iterable<org.elasticsearch.index.shard.IndexShard> shards)
protected void
closeShards(org.elasticsearch.index.shard.IndexShard... shards)
protected org.elasticsearch.index.store.Store
createStore(org.elasticsearch.index.IndexSettings indexSettings, org.elasticsearch.index.shard.ShardPath shardPath)
protected org.elasticsearch.index.store.Store
createStore(org.elasticsearch.index.shard.ShardId shardId, org.elasticsearch.index.IndexSettings indexSettings, org.apache.lucene.store.Directory directory)
static org.elasticsearch.index.engine.Engine.Warmer
createTestWarmer(org.elasticsearch.index.IndexSettings indexSettings)
protected org.elasticsearch.index.engine.Engine.DeleteResult
deleteDoc(org.elasticsearch.index.shard.IndexShard shard, java.lang.String type, java.lang.String id)
protected void
failOnShardFailures()
protected void
flushShard(org.elasticsearch.index.shard.IndexShard shard)
protected void
flushShard(org.elasticsearch.index.shard.IndexShard shard, boolean force)
static java.util.List<DocIdSeqNoAndSource>
getDocIdAndSeqNos(org.elasticsearch.index.shard.IndexShard shard)
static org.elasticsearch.index.engine.Engine
getEngine(org.elasticsearch.index.shard.IndexShard indexShard)
Helper method to access (package-protected) engine from testsprotected org.elasticsearch.cluster.node.DiscoveryNode
getFakeDiscoNode(java.lang.String id)
static org.elasticsearch.index.seqno.ReplicationTracker
getReplicationTracker(org.elasticsearch.index.shard.IndexShard indexShard)
static java.util.Set<java.lang.String>
getShardDocUIDs(org.elasticsearch.index.shard.IndexShard shard)
static org.elasticsearch.index.translog.Translog
getTranslog(org.elasticsearch.index.shard.IndexShard shard)
protected org.elasticsearch.index.engine.Engine.IndexResult
indexDoc(org.elasticsearch.index.shard.IndexShard shard, java.lang.String type, java.lang.String id)
protected org.elasticsearch.index.engine.Engine.IndexResult
indexDoc(org.elasticsearch.index.shard.IndexShard shard, java.lang.String type, java.lang.String id, java.lang.String source)
protected org.elasticsearch.index.engine.Engine.IndexResult
indexDoc(org.elasticsearch.index.shard.IndexShard shard, java.lang.String type, java.lang.String id, java.lang.String source, org.elasticsearch.common.xcontent.XContentType xContentType, java.lang.String routing)
protected org.elasticsearch.index.shard.IndexShard
newShard(boolean primary)
Creates a new initializing shard.protected org.elasticsearch.index.shard.IndexShard
newShard(boolean primary, org.elasticsearch.common.settings.Settings settings)
Creates a new initializing shard.protected org.elasticsearch.index.shard.IndexShard
newShard(boolean primary, org.elasticsearch.common.settings.Settings settings, org.elasticsearch.index.engine.EngineFactory engineFactory)
Creates a new initializing shard.protected org.elasticsearch.index.shard.IndexShard
newShard(org.elasticsearch.cluster.routing.ShardRouting routing, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, org.elasticsearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,org.apache.lucene.index.DirectoryReader,java.io.IOException> indexReaderWrapper, org.elasticsearch.index.engine.EngineFactory engineFactory, java.lang.Runnable globalCheckpointSyncer, org.elasticsearch.index.seqno.RetentionLeaseSyncer retentionLeaseSyncer, org.elasticsearch.index.shard.IndexingOperationListener... listeners)
creates a new initializing shard.protected org.elasticsearch.index.shard.IndexShard
newShard(org.elasticsearch.cluster.routing.ShardRouting routing, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, org.elasticsearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,org.apache.lucene.index.DirectoryReader,java.io.IOException> indexReaderWrapper, org.elasticsearch.index.engine.EngineFactory engineFactory, org.elasticsearch.index.shard.IndexingOperationListener... listeners)
creates a new initializing shard.protected org.elasticsearch.index.shard.IndexShard
newShard(org.elasticsearch.cluster.routing.ShardRouting shardRouting, org.elasticsearch.common.settings.Settings settings, org.elasticsearch.index.engine.EngineFactory engineFactory, org.elasticsearch.index.shard.IndexingOperationListener... listeners)
Creates a new initializing shard.protected org.elasticsearch.index.shard.IndexShard
newShard(org.elasticsearch.cluster.routing.ShardRouting shardRouting, org.elasticsearch.common.settings.Settings settings, org.elasticsearch.index.shard.IndexingOperationListener... listeners)
protected org.elasticsearch.index.shard.IndexShard
newShard(org.elasticsearch.cluster.routing.ShardRouting shardRouting, org.elasticsearch.index.shard.IndexingOperationListener... listeners)
protected org.elasticsearch.index.shard.IndexShard
newShard(org.elasticsearch.cluster.routing.ShardRouting routing, org.elasticsearch.index.shard.ShardPath shardPath, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, org.elasticsearch.common.CheckedFunction<org.elasticsearch.index.IndexSettings,org.elasticsearch.index.store.Store,java.io.IOException> storeProvider, org.elasticsearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,org.apache.lucene.index.DirectoryReader,java.io.IOException> indexReaderWrapper, org.elasticsearch.index.engine.EngineFactory engineFactory, java.lang.Runnable globalCheckpointSyncer, org.elasticsearch.index.seqno.RetentionLeaseSyncer retentionLeaseSyncer, org.elasticsearch.index.shard.IndexEventListener indexEventListener, org.elasticsearch.index.shard.IndexingOperationListener... listeners)
creates a new initializing shard.protected org.elasticsearch.index.shard.IndexShard
newShard(org.elasticsearch.index.shard.ShardId shardId, boolean primary, java.lang.String nodeId, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, org.elasticsearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,org.apache.lucene.index.DirectoryReader,java.io.IOException> readerWrapper)
creates a new initializing shard.protected org.elasticsearch.index.shard.IndexShard
newShard(org.elasticsearch.index.shard.ShardId shardId, boolean primary, java.lang.String nodeId, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, org.elasticsearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,org.apache.lucene.index.DirectoryReader,java.io.IOException> readerWrapper, java.lang.Runnable globalCheckpointSyncer)
creates a new initializing shard.protected org.elasticsearch.index.shard.IndexShard
newShard(org.elasticsearch.index.shard.ShardId shardId, boolean primary, org.elasticsearch.index.shard.IndexingOperationListener... listeners)
creates a new initializing shard.protected org.elasticsearch.index.shard.IndexShard
newStartedShard()
Creates a new empty shard and starts it.protected org.elasticsearch.index.shard.IndexShard
newStartedShard(boolean primary)
Creates a new empty shard and starts it.protected org.elasticsearch.index.shard.IndexShard
newStartedShard(boolean primary, org.elasticsearch.common.settings.Settings settings)
Creates a new empty shard and starts it.protected org.elasticsearch.index.shard.IndexShard
newStartedShard(boolean primary, org.elasticsearch.common.settings.Settings settings, org.elasticsearch.index.engine.EngineFactory engineFactory)
Creates a new empty shard with the specified settings and engine factory and starts it.protected org.elasticsearch.index.shard.IndexShard
newStartedShard(org.elasticsearch.common.CheckedFunction<java.lang.Boolean,org.elasticsearch.index.shard.IndexShard,java.io.IOException> shardFunction, boolean primary)
creates a new empty shard and starts it.protected org.elasticsearch.index.shard.IndexShard
newStartedShard(org.elasticsearch.common.settings.Settings settings)
Creates a new empty shard and starts itprotected void
promoteReplica(org.elasticsearch.index.shard.IndexShard replica, java.util.Set<java.lang.String> inSyncIds, org.elasticsearch.cluster.routing.IndexShardRoutingTable routingTable)
promotes a replica to primary, incrementing it's term and starting it if neededstatic boolean
recoverFromStore(org.elasticsearch.index.shard.IndexShard newShard)
protected void
recoverReplica(org.elasticsearch.index.shard.IndexShard replica, org.elasticsearch.index.shard.IndexShard primary, boolean startReplica)
recovers a replica from the given primaryprotected void
recoverReplica(org.elasticsearch.index.shard.IndexShard replica, org.elasticsearch.index.shard.IndexShard primary, java.util.function.BiFunction<org.elasticsearch.index.shard.IndexShard,org.elasticsearch.cluster.node.DiscoveryNode,org.elasticsearch.indices.recovery.RecoveryTarget> targetSupplier, boolean markAsRecovering, boolean markAsStarted)
recovers a replica from the given primaryprotected void
recoverShardFromSnapshot(org.elasticsearch.index.shard.IndexShard shard, org.elasticsearch.snapshots.Snapshot snapshot, org.elasticsearch.repositories.Repository repository)
Recover a shard from a snapshot using a given repositoryprotected void
recoverShardFromStore(org.elasticsearch.index.shard.IndexShard primary)
protected void
recoverUnstartedReplica(org.elasticsearch.index.shard.IndexShard replica, org.elasticsearch.index.shard.IndexShard primary, java.util.function.BiFunction<org.elasticsearch.index.shard.IndexShard,org.elasticsearch.cluster.node.DiscoveryNode,org.elasticsearch.indices.recovery.RecoveryTarget> targetSupplier, boolean markAsRecovering, java.util.Set<java.lang.String> inSyncIds, org.elasticsearch.cluster.routing.IndexShardRoutingTable routingTable)
Recovers a replica from the give primary, allow the user to supply a custom recovery target.protected void
recoveryEmptyReplica(org.elasticsearch.index.shard.IndexShard replica, boolean startReplica)
protected org.elasticsearch.index.shard.IndexShard
reinitShard(org.elasticsearch.index.shard.IndexShard current, org.elasticsearch.cluster.routing.ShardRouting routing, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, org.elasticsearch.index.engine.EngineFactory engineFactory, org.elasticsearch.index.shard.IndexingOperationListener... listeners)
Takes an existing shard, closes it and starts a new initialing shard at the same locationprotected org.elasticsearch.index.shard.IndexShard
reinitShard(org.elasticsearch.index.shard.IndexShard current, org.elasticsearch.cluster.routing.ShardRouting routing, org.elasticsearch.index.shard.IndexingOperationListener... listeners)
Takes an existing shard, closes it and starts a new initialing shard at the same locationprotected org.elasticsearch.index.shard.IndexShard
reinitShard(org.elasticsearch.index.shard.IndexShard current, org.elasticsearch.index.shard.IndexingOperationListener... listeners)
Takes an existing shard, closes it and starts a new initialing shard at the same locationvoid
setUp()
protected org.elasticsearch.threadpool.ThreadPool
setUpThreadPool()
protected java.lang.String
snapshotShard(org.elasticsearch.index.shard.IndexShard shard, org.elasticsearch.snapshots.Snapshot snapshot, org.elasticsearch.repositories.Repository repository)
Snapshot a shard using a given repository.protected void
startReplicaAfterRecovery(org.elasticsearch.index.shard.IndexShard replica, org.elasticsearch.index.shard.IndexShard primary, java.util.Set<java.lang.String> inSyncIds, org.elasticsearch.cluster.routing.IndexShardRoutingTable routingTable)
void
tearDown()
protected void
tearDownThreadPool()
org.elasticsearch.common.settings.Settings
threadPoolSettings()
protected void
updateMappings(org.elasticsearch.index.shard.IndexShard shard, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata)
static void
updateRoutingEntry(org.elasticsearch.index.shard.IndexShard shard, org.elasticsearch.cluster.routing.ShardRouting shardRouting)
Methods inherited from class org.elasticsearch.test.ESTestCase
after, afterIfFailed, afterIfSuccessful, allowedWarnings, assertArrayEquals, assertBusy, assertBusy, assertEquals, assertSettingDeprecationsAndWarnings, assertSettingDeprecationsAndWarnings, assertWarnings, assertWarnings, before, between, buildEnvSettings, buildNewFakeTransportAddress, checkStaticState, clearAdditionalRoles, copyInstance, copyNamedWriteable, copyNamedWriteable, copyWriteable, copyWriteable, createParser, createParser, createParser, createParser, createParser, createParser, createTestAnalysis, createTestAnalysis, createTestAnalysis, enableJodaDeprecationWarningsCheck, enableWarningsCheck, ensureAllSearchContextsReleased, ensureCheckIndexPassed, ensureSupportedLocale, frequently, generateRandomStringArray, generateRandomStringArray, getBasePort, getDataPath, getPortRange, getSuiteFailureMarker, getTestTransportPlugin, getTestTransportType, inFipsJvm, iterations, maybeSet, mockScript, newNodeEnvironment, newNodeEnvironment, randomAlphaOfLength, randomAlphaOfLengthBetween, randomArray, randomArray, randomBoolean, randomByte, randomByteArrayOfLength, randomDateTimeZone, randomDouble, randomDoubleBetween, randomFloat, randomFrom, randomFrom, randomFrom, randomFrom, randomFrom, randomGeohash, randomInt, randomInt, randomIntBetween, randomIp, randomList, randomList, randomLong, randomLongBetween, randomNonNegativeLong, randomPositiveTimeValue, randomRealisticUnicodeOfCodepointLength, randomRealisticUnicodeOfCodepointLengthBetween, randomRealisticUnicodeOfLength, randomRealisticUnicodeOfLengthBetween, randomShort, randomSubsetOf, randomSubsetOf, randomSubsetOf, randomTimeValue, randomTimeValue, randomTimeValue, randomTimeZone, randomUnicodeOfCodepointLength, randomUnicodeOfCodepointLengthBetween, randomUnicodeOfLength, randomUnicodeOfLengthBetween, randomUnique, randomValueOtherThan, randomValueOtherThanMany, randomZone, resetCheckIndexStatus, resetPortCounter, restoreContentType, restoreFileSystem, scaledRandomIntBetween, setContentType, setFileSystem, settings, shuffleMap, shuffleXContent, shuffleXContent, spinForAtLeastNMilliseconds, spinForAtLeastOneMillisecond, terminate, terminate, tmpPaths, toShuffledXContent, waitUntil, waitUntil, writableRegistry, xContentRegistry
Methods inherited from class org.apache.lucene.util.LuceneTestCase
addVirusChecker, assertDeletedDocsEquals, assertDocsAndPositionsEnumEquals, assertDocsEnumEquals, assertDocsSkippingEquals, assertDocValuesEquals, assertDocValuesEquals, assertFieldInfosEquals, assertNormsEquals, assertPointsEquals, assertPositionsSkippingEquals, assertReaderEquals, assertReaderStatisticsEquals, assertStoredFieldEquals, assertStoredFieldsEquals, assertTermsEnumEquals, assertTermsEquals, assertTermsEquals, assertTermsStatisticsEquals, assertTermStatsEquals, assertTermVectorsEquals, asSet, assumeFalse, assumeNoException, assumeTrue, assumeWorkingMMapOnWindows, atLeast, atLeast, callStackContains, callStackContains, callStackContainsAnyOf, closeAfterSuite, closeAfterTest, collate, createTempDir, createTempDir, createTempFile, createTempFile, dumpArray, dumpIterator, ensureSaneIWCOnNightly, expectThrows, expectThrows, expectThrows, expectThrowsAnyOf, expectThrowsAnyOf, getBaseTempDirForTestClass, getDataInputStream, getOnlyLeafReader, getTestClass, getTestName, hasWorkingMMapOnWindows, isTestThread, localeForLanguageTag, maybeChangeLiveIndexWriterConfig, maybeWrapReader, newAlcoholicMergePolicy, newAlcoholicMergePolicy, newDirectory, newDirectory, newDirectory, newDirectory, newDirectory, newField, newField, newFSDirectory, newFSDirectory, newIndexWriterConfig, newIndexWriterConfig, newIndexWriterConfig, newIOContext, newIOContext, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newMaybeVirusCheckingDirectory, newMaybeVirusCheckingFSDirectory, newMergePolicy, newMergePolicy, newMergePolicy, newMockDirectory, newMockDirectory, newMockDirectory, newMockFSDirectory, newMockFSDirectory, newSearcher, newSearcher, newSearcher, newStringField, newStringField, newStringField, newStringField, newTextField, newTextField, newTieredMergePolicy, newTieredMergePolicy, overrideDefaultQueryCache, overrideTestDefaultQueryCache, random, randomLocale, randomTimeZone, rarely, rarely, replaceMaxFailureRule, resetDefaultQueryCache, restoreCPUCoreCount, restoreIndexWriterMaxDocs, restoreSpins, runWithRestrictedPermissions, setIndexWriterMaxDocs, setupCPUCoreCount, setupSpins, slowFileExists, usually, usually, wrapReader
Methods inherited from class org.junit.Assert
assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertThat, assertThat, assertTrue, assertTrue, fail, fail
-
Field Details
-
EMPTY_EVENT_LISTENER
public static final org.elasticsearch.index.shard.IndexEventListener EMPTY_EVENT_LISTENER -
recoveryListener
protected static final org.elasticsearch.indices.recovery.PeerRecoveryTargetService.RecoveryListener recoveryListener -
threadPool
protected org.elasticsearch.threadpool.ThreadPool threadPool -
primaryTerm
protected long primaryTerm -
currentClusterStateVersion
protected static java.util.concurrent.atomic.AtomicLong currentClusterStateVersion
-
-
Constructor Details
-
IndexShardTestCase
public IndexShardTestCase()
-
-
Method Details
-
setUp
public void setUp() throws java.lang.Exception- Overrides:
setUp
in classorg.apache.lucene.util.LuceneTestCase
- Throws:
java.lang.Exception
-
setUpThreadPool
protected org.elasticsearch.threadpool.ThreadPool setUpThreadPool() -
tearDown
public void tearDown() throws java.lang.Exception- Overrides:
tearDown
in classorg.apache.lucene.util.LuceneTestCase
- Throws:
java.lang.Exception
-
tearDownThreadPool
protected void tearDownThreadPool() -
allowShardFailures
protected void allowShardFailures()by default, tests will fail if any shard created by this class fails. Tests that cause failures by design can call this method to ignore those failures -
failOnShardFailures
protected void failOnShardFailures() -
threadPoolSettings
public org.elasticsearch.common.settings.Settings threadPoolSettings() -
createStore
protected org.elasticsearch.index.store.Store createStore(org.elasticsearch.index.IndexSettings indexSettings, org.elasticsearch.index.shard.ShardPath shardPath) throws java.io.IOException- Throws:
java.io.IOException
-
createStore
protected org.elasticsearch.index.store.Store createStore(org.elasticsearch.index.shard.ShardId shardId, org.elasticsearch.index.IndexSettings indexSettings, org.apache.lucene.store.Directory directory) throws java.io.IOException- Throws:
java.io.IOException
-
newShard
protected org.elasticsearch.index.shard.IndexShard newShard(boolean primary) throws java.io.IOExceptionCreates a new initializing shard. The shard will have its own unique data path.- Parameters:
primary
- indicates whether to a primary shard (ready to recover from an empty store) or a replica (ready to recover from another shard)- Throws:
java.io.IOException
-
newShard
protected org.elasticsearch.index.shard.IndexShard newShard(boolean primary, org.elasticsearch.common.settings.Settings settings) throws java.io.IOExceptionCreates a new initializing shard. The shard will have its own unique data path.- Parameters:
primary
- indicates whether to a primary shard (ready to recover from an empty store) or a replica (ready to recover from another shard)- Throws:
java.io.IOException
-
newShard
protected org.elasticsearch.index.shard.IndexShard newShard(boolean primary, org.elasticsearch.common.settings.Settings settings, org.elasticsearch.index.engine.EngineFactory engineFactory) throws java.io.IOExceptionCreates a new initializing shard. The shard will have its own unique data path.- Parameters:
primary
- indicates whether to a primary shard (ready to recover from an empty store) or a replica (ready to recover from another shard)settings
- the settings to use for this shardengineFactory
- the engine factory to use for this shard- Throws:
java.io.IOException
-
newShard
protected org.elasticsearch.index.shard.IndexShard newShard(org.elasticsearch.cluster.routing.ShardRouting shardRouting, org.elasticsearch.index.shard.IndexingOperationListener... listeners) throws java.io.IOException- Throws:
java.io.IOException
-
newShard
protected org.elasticsearch.index.shard.IndexShard newShard(org.elasticsearch.cluster.routing.ShardRouting shardRouting, org.elasticsearch.common.settings.Settings settings, org.elasticsearch.index.shard.IndexingOperationListener... listeners) throws java.io.IOException- Throws:
java.io.IOException
-
newShard
protected org.elasticsearch.index.shard.IndexShard newShard(org.elasticsearch.cluster.routing.ShardRouting shardRouting, org.elasticsearch.common.settings.Settings settings, org.elasticsearch.index.engine.EngineFactory engineFactory, org.elasticsearch.index.shard.IndexingOperationListener... listeners) throws java.io.IOExceptionCreates a new initializing shard. The shard will have its own unique data path.- Parameters:
shardRouting
- theShardRouting
to use for this shardsettings
- the settings to use for this shardengineFactory
- the engine factory to use for this shardlisteners
- an optional set of listeners to add to the shard- Throws:
java.io.IOException
-
newShard
protected org.elasticsearch.index.shard.IndexShard newShard(org.elasticsearch.index.shard.ShardId shardId, boolean primary, org.elasticsearch.index.shard.IndexingOperationListener... listeners) throws java.io.IOExceptioncreates a new initializing shard. The shard will have its own unique data path.- Parameters:
shardId
- the shard id to useprimary
- indicates whether to a primary shard (ready to recover from an empty store) or a replica (ready to recover from another shard)listeners
- an optional set of listeners to add to the shard- Throws:
java.io.IOException
-
newShard
protected org.elasticsearch.index.shard.IndexShard newShard(org.elasticsearch.index.shard.ShardId shardId, boolean primary, java.lang.String nodeId, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, @Nullable org.elasticsearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,org.apache.lucene.index.DirectoryReader,java.io.IOException> readerWrapper) throws java.io.IOExceptioncreates a new initializing shard. The shard will will be put in its proper path under the supplied node id.- Parameters:
shardId
- the shard id to useprimary
- indicates whether to a primary shard (ready to recover from an empty store) or a replica (ready to recover from another shard)- Throws:
java.io.IOException
-
newShard
protected org.elasticsearch.index.shard.IndexShard newShard(org.elasticsearch.index.shard.ShardId shardId, boolean primary, java.lang.String nodeId, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, @Nullable org.elasticsearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,org.apache.lucene.index.DirectoryReader,java.io.IOException> readerWrapper, java.lang.Runnable globalCheckpointSyncer) throws java.io.IOExceptioncreates a new initializing shard. The shard will will be put in its proper path under the supplied node id.- Parameters:
shardId
- the shard id to useprimary
- indicates whether to a primary shard (ready to recover from an empty store) or a replica (ready to recover from another shard)- Throws:
java.io.IOException
-
newShard
protected org.elasticsearch.index.shard.IndexShard newShard(org.elasticsearch.cluster.routing.ShardRouting routing, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, @Nullable org.elasticsearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,org.apache.lucene.index.DirectoryReader,java.io.IOException> indexReaderWrapper, org.elasticsearch.index.engine.EngineFactory engineFactory, org.elasticsearch.index.shard.IndexingOperationListener... listeners) throws java.io.IOExceptioncreates a new initializing shard. The shard will will be put in its proper path under the current node id the shard is assigned to.- Parameters:
routing
- shard routing to useindexMetadata
- indexMetadata for the shard, including any mappinglisteners
- an optional set of listeners to add to the shard- Throws:
java.io.IOException
-
newShard
protected org.elasticsearch.index.shard.IndexShard newShard(org.elasticsearch.cluster.routing.ShardRouting routing, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, @Nullable org.elasticsearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,org.apache.lucene.index.DirectoryReader,java.io.IOException> indexReaderWrapper, @Nullable org.elasticsearch.index.engine.EngineFactory engineFactory, java.lang.Runnable globalCheckpointSyncer, org.elasticsearch.index.seqno.RetentionLeaseSyncer retentionLeaseSyncer, org.elasticsearch.index.shard.IndexingOperationListener... listeners) throws java.io.IOExceptioncreates a new initializing shard. The shard will will be put in its proper path under the current node id the shard is assigned to.- Parameters:
routing
- shard routing to useindexMetadata
- indexMetadata for the shard, including any mappingindexReaderWrapper
- an optional wrapper to be used during searchglobalCheckpointSyncer
- callback for syncing global checkpointslisteners
- an optional set of listeners to add to the shard- Throws:
java.io.IOException
-
newShard
protected org.elasticsearch.index.shard.IndexShard newShard(org.elasticsearch.cluster.routing.ShardRouting routing, org.elasticsearch.index.shard.ShardPath shardPath, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, @Nullable org.elasticsearch.common.CheckedFunction<org.elasticsearch.index.IndexSettings,org.elasticsearch.index.store.Store,java.io.IOException> storeProvider, @Nullable org.elasticsearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,org.apache.lucene.index.DirectoryReader,java.io.IOException> indexReaderWrapper, @Nullable org.elasticsearch.index.engine.EngineFactory engineFactory, java.lang.Runnable globalCheckpointSyncer, org.elasticsearch.index.seqno.RetentionLeaseSyncer retentionLeaseSyncer, org.elasticsearch.index.shard.IndexEventListener indexEventListener, org.elasticsearch.index.shard.IndexingOperationListener... listeners) throws java.io.IOExceptioncreates a new initializing shard.- Parameters:
routing
- shard routing to useshardPath
- path to use for shard dataindexMetadata
- indexMetadata for the shard, including any mappingstoreProvider
- an optional custom store provider to use. If null a default file based store will be createdindexReaderWrapper
- an optional wrapper to be used during searchglobalCheckpointSyncer
- callback for syncing global checkpointsindexEventListener
- index event listenerlisteners
- an optional set of listeners to add to the shard- Throws:
java.io.IOException
-
reinitShard
protected org.elasticsearch.index.shard.IndexShard reinitShard(org.elasticsearch.index.shard.IndexShard current, org.elasticsearch.index.shard.IndexingOperationListener... listeners) throws java.io.IOExceptionTakes an existing shard, closes it and starts a new initialing shard at the same location- Parameters:
listeners
- new listerns to use for the newly created shard- Throws:
java.io.IOException
-
reinitShard
protected org.elasticsearch.index.shard.IndexShard reinitShard(org.elasticsearch.index.shard.IndexShard current, org.elasticsearch.cluster.routing.ShardRouting routing, org.elasticsearch.index.shard.IndexingOperationListener... listeners) throws java.io.IOExceptionTakes an existing shard, closes it and starts a new initialing shard at the same location- Parameters:
routing
- the shard routing to use for the newly created shard.listeners
- new listerns to use for the newly created shard- Throws:
java.io.IOException
-
reinitShard
protected org.elasticsearch.index.shard.IndexShard reinitShard(org.elasticsearch.index.shard.IndexShard current, org.elasticsearch.cluster.routing.ShardRouting routing, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, org.elasticsearch.index.engine.EngineFactory engineFactory, org.elasticsearch.index.shard.IndexingOperationListener... listeners) throws java.io.IOExceptionTakes an existing shard, closes it and starts a new initialing shard at the same location- Parameters:
routing
- the shard routing to use for the newly created shard.listeners
- new listerns to use for the newly created shardindexMetadata
- the index metadata to use for the newly created shardengineFactory
- the engine factory for the new shard- Throws:
java.io.IOException
-
newStartedShard
protected org.elasticsearch.index.shard.IndexShard newStartedShard() throws java.io.IOExceptionCreates a new empty shard and starts it. The shard will randomly be a replica or a primary.- Throws:
java.io.IOException
-
newStartedShard
protected org.elasticsearch.index.shard.IndexShard newStartedShard(org.elasticsearch.common.settings.Settings settings) throws java.io.IOExceptionCreates a new empty shard and starts it- Parameters:
settings
- the settings to use for this shard- Throws:
java.io.IOException
-
newStartedShard
protected org.elasticsearch.index.shard.IndexShard newStartedShard(boolean primary) throws java.io.IOExceptionCreates a new empty shard and starts it.- Parameters:
primary
- controls whether the shard will be a primary or a replica.- Throws:
java.io.IOException
-
newStartedShard
protected org.elasticsearch.index.shard.IndexShard newStartedShard(boolean primary, org.elasticsearch.common.settings.Settings settings) throws java.io.IOExceptionCreates a new empty shard and starts it.- Parameters:
primary
- controls whether the shard will be a primary or a replica.settings
- the settings to use for this shard- Throws:
java.io.IOException
-
newStartedShard
protected org.elasticsearch.index.shard.IndexShard newStartedShard(boolean primary, org.elasticsearch.common.settings.Settings settings, org.elasticsearch.index.engine.EngineFactory engineFactory) throws java.io.IOExceptionCreates a new empty shard with the specified settings and engine factory and starts it.- Parameters:
primary
- controls whether the shard will be a primary or a replica.settings
- the settings to use for this shardengineFactory
- the engine factory to use for this shard- Throws:
java.io.IOException
-
newStartedShard
protected org.elasticsearch.index.shard.IndexShard newStartedShard(org.elasticsearch.common.CheckedFunction<java.lang.Boolean,org.elasticsearch.index.shard.IndexShard,java.io.IOException> shardFunction, boolean primary) throws java.io.IOExceptioncreates a new empty shard and starts it.- Parameters:
shardFunction
- shard factory functionprimary
- controls whether the shard will be a primary or a replica.- Throws:
java.io.IOException
-
closeShards
protected void closeShards(org.elasticsearch.index.shard.IndexShard... shards) throws java.io.IOException- Throws:
java.io.IOException
-
closeShard
protected void closeShard(org.elasticsearch.index.shard.IndexShard shard, boolean assertConsistencyBetweenTranslogAndLucene) throws java.io.IOException- Throws:
java.io.IOException
-
closeShards
protected void closeShards(java.lang.Iterable<org.elasticsearch.index.shard.IndexShard> shards) throws java.io.IOException- Throws:
java.io.IOException
-
recoverShardFromStore
protected void recoverShardFromStore(org.elasticsearch.index.shard.IndexShard primary) throws java.io.IOException- Throws:
java.io.IOException
-
updateRoutingEntry
public static void updateRoutingEntry(org.elasticsearch.index.shard.IndexShard shard, org.elasticsearch.cluster.routing.ShardRouting shardRouting) throws java.io.IOException- Throws:
java.io.IOException
-
recoveryEmptyReplica
protected void recoveryEmptyReplica(org.elasticsearch.index.shard.IndexShard replica, boolean startReplica) throws java.io.IOException- Throws:
java.io.IOException
-
getFakeDiscoNode
protected org.elasticsearch.cluster.node.DiscoveryNode getFakeDiscoNode(java.lang.String id) -
recoverReplica
protected void recoverReplica(org.elasticsearch.index.shard.IndexShard replica, org.elasticsearch.index.shard.IndexShard primary, boolean startReplica) throws java.io.IOExceptionrecovers a replica from the given primary- Throws:
java.io.IOException
-
recoverReplica
protected void recoverReplica(org.elasticsearch.index.shard.IndexShard replica, org.elasticsearch.index.shard.IndexShard primary, java.util.function.BiFunction<org.elasticsearch.index.shard.IndexShard,org.elasticsearch.cluster.node.DiscoveryNode,org.elasticsearch.indices.recovery.RecoveryTarget> targetSupplier, boolean markAsRecovering, boolean markAsStarted) throws java.io.IOExceptionrecovers a replica from the given primary- Throws:
java.io.IOException
-
recoverUnstartedReplica
protected final void recoverUnstartedReplica(org.elasticsearch.index.shard.IndexShard replica, org.elasticsearch.index.shard.IndexShard primary, java.util.function.BiFunction<org.elasticsearch.index.shard.IndexShard,org.elasticsearch.cluster.node.DiscoveryNode,org.elasticsearch.indices.recovery.RecoveryTarget> targetSupplier, boolean markAsRecovering, java.util.Set<java.lang.String> inSyncIds, org.elasticsearch.cluster.routing.IndexShardRoutingTable routingTable) throws java.io.IOExceptionRecovers a replica from the give primary, allow the user to supply a custom recovery target. A typical usage of a custom recovery target is to assert things in the various stages of recovery. Note: this method keeps the shard inIndexShardState.POST_RECOVERY
and doesn't start it.- Parameters:
replica
- the recovery target shardprimary
- the recovery source shardtargetSupplier
- supplies an instance ofRecoveryTarget
markAsRecovering
- set tofalse
if the replica is marked as recovering- Throws:
java.io.IOException
-
startReplicaAfterRecovery
protected void startReplicaAfterRecovery(org.elasticsearch.index.shard.IndexShard replica, org.elasticsearch.index.shard.IndexShard primary, java.util.Set<java.lang.String> inSyncIds, org.elasticsearch.cluster.routing.IndexShardRoutingTable routingTable) throws java.io.IOException- Throws:
java.io.IOException
-
promoteReplica
protected void promoteReplica(org.elasticsearch.index.shard.IndexShard replica, java.util.Set<java.lang.String> inSyncIds, org.elasticsearch.cluster.routing.IndexShardRoutingTable routingTable) throws java.io.IOExceptionpromotes a replica to primary, incrementing it's term and starting it if needed- Throws:
java.io.IOException
-
getShardDocUIDs
public static java.util.Set<java.lang.String> getShardDocUIDs(org.elasticsearch.index.shard.IndexShard shard) throws java.io.IOException- Throws:
java.io.IOException
-
getDocIdAndSeqNos
public static java.util.List<DocIdSeqNoAndSource> getDocIdAndSeqNos(org.elasticsearch.index.shard.IndexShard shard) throws java.io.IOException- Throws:
java.io.IOException
-
assertDocCount
protected void assertDocCount(org.elasticsearch.index.shard.IndexShard shard, int docDount) throws java.io.IOException- Throws:
java.io.IOException
-
assertDocs
protected void assertDocs(org.elasticsearch.index.shard.IndexShard shard, java.lang.String... ids) throws java.io.IOException- Throws:
java.io.IOException
-
assertConsistentHistoryBetweenTranslogAndLucene
public static void assertConsistentHistoryBetweenTranslogAndLucene(org.elasticsearch.index.shard.IndexShard shard) throws java.io.IOException- Throws:
java.io.IOException
-
indexDoc
protected org.elasticsearch.index.engine.Engine.IndexResult indexDoc(org.elasticsearch.index.shard.IndexShard shard, java.lang.String type, java.lang.String id) throws java.io.IOException- Throws:
java.io.IOException
-
indexDoc
protected org.elasticsearch.index.engine.Engine.IndexResult indexDoc(org.elasticsearch.index.shard.IndexShard shard, java.lang.String type, java.lang.String id, java.lang.String source) throws java.io.IOException- Throws:
java.io.IOException
-
indexDoc
protected org.elasticsearch.index.engine.Engine.IndexResult indexDoc(org.elasticsearch.index.shard.IndexShard shard, java.lang.String type, java.lang.String id, java.lang.String source, org.elasticsearch.common.xcontent.XContentType xContentType, java.lang.String routing) throws java.io.IOException- Throws:
java.io.IOException
-
updateMappings
protected void updateMappings(org.elasticsearch.index.shard.IndexShard shard, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata) -
deleteDoc
protected org.elasticsearch.index.engine.Engine.DeleteResult deleteDoc(org.elasticsearch.index.shard.IndexShard shard, java.lang.String type, java.lang.String id) throws java.io.IOException- Throws:
java.io.IOException
-
flushShard
protected void flushShard(org.elasticsearch.index.shard.IndexShard shard) -
flushShard
protected void flushShard(org.elasticsearch.index.shard.IndexShard shard, boolean force) -
recoverFromStore
public static boolean recoverFromStore(org.elasticsearch.index.shard.IndexShard newShard) -
recoverShardFromSnapshot
protected void recoverShardFromSnapshot(org.elasticsearch.index.shard.IndexShard shard, org.elasticsearch.snapshots.Snapshot snapshot, org.elasticsearch.repositories.Repository repository)Recover a shard from a snapshot using a given repository -
snapshotShard
protected java.lang.String snapshotShard(org.elasticsearch.index.shard.IndexShard shard, org.elasticsearch.snapshots.Snapshot snapshot, org.elasticsearch.repositories.Repository repository) throws java.io.IOExceptionSnapshot a shard using a given repository.- Returns:
- new shard generation
- Throws:
java.io.IOException
-
getEngine
public static org.elasticsearch.index.engine.Engine getEngine(org.elasticsearch.index.shard.IndexShard indexShard)Helper method to access (package-protected) engine from tests -
getTranslog
public static org.elasticsearch.index.translog.Translog getTranslog(org.elasticsearch.index.shard.IndexShard shard) -
getReplicationTracker
public static org.elasticsearch.index.seqno.ReplicationTracker getReplicationTracker(org.elasticsearch.index.shard.IndexShard indexShard) -
createTestWarmer
public static org.elasticsearch.index.engine.Engine.Warmer createTestWarmer(org.elasticsearch.index.IndexSettings indexSettings)
-