Package org.opensearch.index.shard
Class IndexShardTestCase
java.lang.Object
org.junit.Assert
org.apache.lucene.util.LuceneTestCase
org.opensearch.test.OpenSearchTestCase
org.opensearch.index.shard.IndexShardTestCase
- Direct Known Subclasses:
OpenSearchIndexLevelReplicationTestCase
public abstract class IndexShardTestCase extends OpenSearchTestCase
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.opensearch.test.OpenSearchTestCase
OpenSearchTestCase.GeohashGenerator, OpenSearchTestCase.TestAnalysisNested 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.AtomicLongcurrentClusterStateVersionstatic org.opensearch.index.shard.IndexEventListenerEMPTY_EVENT_LISTENERprotected longprimaryTermprotected static org.opensearch.indices.recovery.PeerRecoveryTargetService.RecoveryListenerrecoveryListenerprotected org.opensearch.threadpool.ThreadPoolthreadPoolFields inherited from class org.opensearch.test.OpenSearchTestCase
checkIndexFailures, DEFAULT_NAMED_WRITABLE_REGISTRY, DEFAULT_TEST_WORKER_ID, failureAndSuccessEvents, FIPS_SYSPROP, JAVA_TIMEZONE_IDS, JAVA_ZONE_IDS, JODA_TIMEZONE_IDS, logger, TEST_WORKER_SYS_PROPERTY, TEST_WORKER_VM_IDFields 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 voidallowShardFailures()by default, tests will fail if any shard created by this class fails.static voidassertConsistentHistoryBetweenTranslogAndLucene(org.opensearch.index.shard.IndexShard shard)protected voidassertDocCount(org.opensearch.index.shard.IndexShard shard, int docDount)protected voidassertDocs(org.opensearch.index.shard.IndexShard shard, java.lang.String... ids)protected voidcloseShard(org.opensearch.index.shard.IndexShard shard, boolean assertConsistencyBetweenTranslogAndLucene)protected voidcloseShards(java.lang.Iterable<org.opensearch.index.shard.IndexShard> shards)protected voidcloseShards(org.opensearch.index.shard.IndexShard... shards)protected org.opensearch.index.store.StorecreateStore(org.opensearch.index.IndexSettings indexSettings, org.opensearch.index.shard.ShardPath shardPath)protected org.opensearch.index.store.StorecreateStore(org.opensearch.index.shard.ShardId shardId, org.opensearch.index.IndexSettings indexSettings, org.apache.lucene.store.Directory directory)static org.opensearch.index.engine.Engine.WarmercreateTestWarmer(org.opensearch.index.IndexSettings indexSettings)protected org.opensearch.index.engine.Engine.DeleteResultdeleteDoc(org.opensearch.index.shard.IndexShard shard, java.lang.String type, java.lang.String id)protected voidfailOnShardFailures()protected voidflushShard(org.opensearch.index.shard.IndexShard shard)protected voidflushShard(org.opensearch.index.shard.IndexShard shard, boolean force)static java.util.List<DocIdSeqNoAndSource>getDocIdAndSeqNos(org.opensearch.index.shard.IndexShard shard)static org.opensearch.index.engine.EnginegetEngine(org.opensearch.index.shard.IndexShard indexShard)Helper method to access (package-protected) engine from testsprotected org.opensearch.cluster.node.DiscoveryNodegetFakeDiscoNode(java.lang.String id)static org.opensearch.index.seqno.ReplicationTrackergetReplicationTracker(org.opensearch.index.shard.IndexShard indexShard)static java.util.Set<java.lang.String>getShardDocUIDs(org.opensearch.index.shard.IndexShard shard)static org.opensearch.index.translog.TransloggetTranslog(org.opensearch.index.shard.IndexShard shard)protected org.opensearch.index.engine.Engine.IndexResultindexDoc(org.opensearch.index.shard.IndexShard shard, java.lang.String type, java.lang.String id)protected org.opensearch.index.engine.Engine.IndexResultindexDoc(org.opensearch.index.shard.IndexShard shard, java.lang.String type, java.lang.String id, java.lang.String source)protected org.opensearch.index.engine.Engine.IndexResultindexDoc(org.opensearch.index.shard.IndexShard shard, java.lang.String type, java.lang.String id, java.lang.String source, org.opensearch.common.xcontent.XContentType xContentType, java.lang.String routing)protected org.opensearch.index.shard.IndexShardnewShard(boolean primary)Creates a new initializing shard.protected org.opensearch.index.shard.IndexShardnewShard(boolean primary, org.opensearch.common.settings.Settings settings)Creates a new initializing shard.protected org.opensearch.index.shard.IndexShardnewShard(boolean primary, org.opensearch.common.settings.Settings settings, org.opensearch.index.engine.EngineFactory engineFactory)Creates a new initializing shard.protected org.opensearch.index.shard.IndexShardnewShard(org.opensearch.cluster.routing.ShardRouting routing, org.opensearch.cluster.metadata.IndexMetadata indexMetadata, org.opensearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,org.apache.lucene.index.DirectoryReader,java.io.IOException> indexReaderWrapper, org.opensearch.index.engine.EngineFactory engineFactory, java.lang.Runnable globalCheckpointSyncer, org.opensearch.index.seqno.RetentionLeaseSyncer retentionLeaseSyncer, org.opensearch.index.shard.IndexingOperationListener... listeners)creates a new initializing shard.protected org.opensearch.index.shard.IndexShardnewShard(org.opensearch.cluster.routing.ShardRouting routing, org.opensearch.cluster.metadata.IndexMetadata indexMetadata, org.opensearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,org.apache.lucene.index.DirectoryReader,java.io.IOException> indexReaderWrapper, org.opensearch.index.engine.EngineFactory engineFactory, org.opensearch.index.shard.IndexingOperationListener... listeners)creates a new initializing shard.protected org.opensearch.index.shard.IndexShardnewShard(org.opensearch.cluster.routing.ShardRouting shardRouting, org.opensearch.common.settings.Settings settings, org.opensearch.index.engine.EngineFactory engineFactory, org.opensearch.index.shard.IndexingOperationListener... listeners)Creates a new initializing shard.protected org.opensearch.index.shard.IndexShardnewShard(org.opensearch.cluster.routing.ShardRouting shardRouting, org.opensearch.common.settings.Settings settings, org.opensearch.index.shard.IndexingOperationListener... listeners)protected org.opensearch.index.shard.IndexShardnewShard(org.opensearch.cluster.routing.ShardRouting shardRouting, org.opensearch.index.shard.IndexingOperationListener... listeners)protected org.opensearch.index.shard.IndexShardnewShard(org.opensearch.cluster.routing.ShardRouting routing, org.opensearch.index.shard.ShardPath shardPath, org.opensearch.cluster.metadata.IndexMetadata indexMetadata, org.opensearch.common.CheckedFunction<org.opensearch.index.IndexSettings,org.opensearch.index.store.Store,java.io.IOException> storeProvider, org.opensearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,org.apache.lucene.index.DirectoryReader,java.io.IOException> indexReaderWrapper, org.opensearch.index.engine.EngineFactory engineFactory, org.opensearch.index.engine.EngineConfigFactory engineConfigFactory, java.lang.Runnable globalCheckpointSyncer, org.opensearch.index.seqno.RetentionLeaseSyncer retentionLeaseSyncer, org.opensearch.index.shard.IndexEventListener indexEventListener, org.opensearch.index.shard.IndexingOperationListener... listeners)creates a new initializing shard.protected org.opensearch.index.shard.IndexShardnewShard(org.opensearch.index.shard.ShardId shardId, boolean primary, java.lang.String nodeId, org.opensearch.cluster.metadata.IndexMetadata indexMetadata, org.opensearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,org.apache.lucene.index.DirectoryReader,java.io.IOException> readerWrapper)creates a new initializing shard.protected org.opensearch.index.shard.IndexShardnewShard(org.opensearch.index.shard.ShardId shardId, boolean primary, java.lang.String nodeId, org.opensearch.cluster.metadata.IndexMetadata indexMetadata, org.opensearch.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.opensearch.index.shard.IndexShardnewShard(org.opensearch.index.shard.ShardId shardId, boolean primary, org.opensearch.index.shard.IndexingOperationListener... listeners)creates a new initializing shard.protected org.opensearch.index.shard.IndexShardnewStartedShard()Creates a new empty shard and starts it.protected org.opensearch.index.shard.IndexShardnewStartedShard(boolean primary)Creates a new empty shard and starts it.protected org.opensearch.index.shard.IndexShardnewStartedShard(boolean primary, org.opensearch.common.settings.Settings settings)Creates a new empty shard and starts it.protected org.opensearch.index.shard.IndexShardnewStartedShard(boolean primary, org.opensearch.common.settings.Settings settings, org.opensearch.index.engine.EngineFactory engineFactory)Creates a new empty shard with the specified settings and engine factory and starts it.protected org.opensearch.index.shard.IndexShardnewStartedShard(org.opensearch.common.CheckedFunction<java.lang.Boolean,org.opensearch.index.shard.IndexShard,java.io.IOException> shardFunction, boolean primary)creates a new empty shard and starts it.protected org.opensearch.index.shard.IndexShardnewStartedShard(org.opensearch.common.settings.Settings settings)Creates a new empty shard and starts itprotected voidpromoteReplica(org.opensearch.index.shard.IndexShard replica, java.util.Set<java.lang.String> inSyncIds, org.opensearch.cluster.routing.IndexShardRoutingTable routingTable)promotes a replica to primary, incrementing it's term and starting it if neededstatic booleanrecoverFromStore(org.opensearch.index.shard.IndexShard newShard)protected voidrecoverReplica(org.opensearch.index.shard.IndexShard replica, org.opensearch.index.shard.IndexShard primary, boolean startReplica)recovers a replica from the given primaryprotected voidrecoverReplica(org.opensearch.index.shard.IndexShard replica, org.opensearch.index.shard.IndexShard primary, java.util.function.BiFunction<org.opensearch.index.shard.IndexShard,org.opensearch.cluster.node.DiscoveryNode,org.opensearch.indices.recovery.RecoveryTarget> targetSupplier, boolean markAsRecovering, boolean markAsStarted)recovers a replica from the given primaryprotected voidrecoverShardFromSnapshot(org.opensearch.index.shard.IndexShard shard, org.opensearch.snapshots.Snapshot snapshot, org.opensearch.repositories.Repository repository)Recover a shard from a snapshot using a given repositoryprotected voidrecoverShardFromStore(org.opensearch.index.shard.IndexShard primary)protected voidrecoverUnstartedReplica(org.opensearch.index.shard.IndexShard replica, org.opensearch.index.shard.IndexShard primary, java.util.function.BiFunction<org.opensearch.index.shard.IndexShard,org.opensearch.cluster.node.DiscoveryNode,org.opensearch.indices.recovery.RecoveryTarget> targetSupplier, boolean markAsRecovering, java.util.Set<java.lang.String> inSyncIds, org.opensearch.cluster.routing.IndexShardRoutingTable routingTable)Recovers a replica from the give primary, allow the user to supply a custom recovery target.protected voidrecoveryEmptyReplica(org.opensearch.index.shard.IndexShard replica, boolean startReplica)protected org.opensearch.index.shard.IndexShardreinitShard(org.opensearch.index.shard.IndexShard current, org.opensearch.cluster.routing.ShardRouting routing, org.opensearch.cluster.metadata.IndexMetadata indexMetadata, org.opensearch.index.engine.EngineFactory engineFactory, org.opensearch.index.engine.EngineConfigFactory engineConfigFactory, org.opensearch.index.shard.IndexingOperationListener... listeners)Takes an existing shard, closes it and starts a new initialing shard at the same locationprotected org.opensearch.index.shard.IndexShardreinitShard(org.opensearch.index.shard.IndexShard current, org.opensearch.cluster.routing.ShardRouting routing, org.opensearch.index.shard.IndexingOperationListener... listeners)Takes an existing shard, closes it and starts a new initialing shard at the same locationprotected org.opensearch.index.shard.IndexShardreinitShard(org.opensearch.index.shard.IndexShard current, org.opensearch.index.shard.IndexingOperationListener... listeners)Takes an existing shard, closes it and starts a new initialing shard at the same locationvoidsetUp()protected org.opensearch.threadpool.ThreadPoolsetUpThreadPool()protected java.lang.StringsnapshotShard(org.opensearch.index.shard.IndexShard shard, org.opensearch.snapshots.Snapshot snapshot, org.opensearch.repositories.Repository repository)Snapshot a shard using a given repository.protected voidstartReplicaAfterRecovery(org.opensearch.index.shard.IndexShard replica, org.opensearch.index.shard.IndexShard primary, java.util.Set<java.lang.String> inSyncIds, org.opensearch.cluster.routing.IndexShardRoutingTable routingTable)voidtearDown()protected voidtearDownThreadPool()org.opensearch.common.settings.SettingsthreadPoolSettings()protected voidupdateMappings(org.opensearch.index.shard.IndexShard shard, org.opensearch.cluster.metadata.IndexMetadata indexMetadata)static voidupdateRoutingEntry(org.opensearch.index.shard.IndexShard shard, org.opensearch.cluster.routing.ShardRouting shardRouting)Methods inherited from class org.opensearch.test.OpenSearchTestCase
after, afterIfFailed, afterIfSuccessful, allowedWarnings, assertArrayEquals, assertBusy, assertBusy, assertEquals, assertSettingDeprecationsAndWarnings, assertSettingDeprecationsAndWarnings, assertWarnings, assertWarnings, before, between, buildEnvSettings, buildNewFakeTransportAddress, checkStaticState, clearAdditionalRoles, copyInstance, copyNamedWriteable, copyNamedWriteable, copyWriteable, copyWriteable, createDefaultIndexAnalyzers, 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, randomBigInteger, randomBoolean, randomByte, randomByteArrayOfLength, randomDateFormatterPattern, 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, removeHeaderWarningAppender, resetCheckIndexStatus, resetPortCounter, restoreContentType, restoreFileSystem, scaledRandomIntBetween, setContentType, setFileSystem, setHeaderWarningAppender, settings, shuffleMap, shuffleXContent, shuffleXContent, spinForAtLeastNMilliseconds, spinForAtLeastOneMillisecond, terminate, terminate, tmpPaths, toShuffledXContent, waitUntil, waitUntil, writableRegistry, xContentRegistryMethods 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, newBytesRef, newBytesRef, newBytesRef, newBytesRef, newBytesRef, newBytesRef, 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, 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, wrapReaderMethods 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.opensearch.index.shard.IndexEventListener EMPTY_EVENT_LISTENER -
recoveryListener
protected static final org.opensearch.indices.recovery.PeerRecoveryTargetService.RecoveryListener recoveryListener -
threadPool
protected org.opensearch.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:
setUpin classorg.apache.lucene.util.LuceneTestCase- Throws:
java.lang.Exception
-
setUpThreadPool
protected org.opensearch.threadpool.ThreadPool setUpThreadPool() -
tearDown
public void tearDown() throws java.lang.Exception- Overrides:
tearDownin 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.opensearch.common.settings.Settings threadPoolSettings() -
createStore
protected org.opensearch.index.store.Store createStore(org.opensearch.index.IndexSettings indexSettings, org.opensearch.index.shard.ShardPath shardPath) throws java.io.IOException- Throws:
java.io.IOException
-
createStore
protected org.opensearch.index.store.Store createStore(org.opensearch.index.shard.ShardId shardId, org.opensearch.index.IndexSettings indexSettings, org.apache.lucene.store.Directory directory) throws java.io.IOException- Throws:
java.io.IOException
-
newShard
protected org.opensearch.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.opensearch.index.shard.IndexShard newShard(boolean primary, org.opensearch.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.opensearch.index.shard.IndexShard newShard(boolean primary, org.opensearch.common.settings.Settings settings, org.opensearch.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.opensearch.index.shard.IndexShard newShard(org.opensearch.cluster.routing.ShardRouting shardRouting, org.opensearch.index.shard.IndexingOperationListener... listeners) throws java.io.IOException- Throws:
java.io.IOException
-
newShard
protected org.opensearch.index.shard.IndexShard newShard(org.opensearch.cluster.routing.ShardRouting shardRouting, org.opensearch.common.settings.Settings settings, org.opensearch.index.shard.IndexingOperationListener... listeners) throws java.io.IOException- Throws:
java.io.IOException
-
newShard
protected org.opensearch.index.shard.IndexShard newShard(org.opensearch.cluster.routing.ShardRouting shardRouting, org.opensearch.common.settings.Settings settings, org.opensearch.index.engine.EngineFactory engineFactory, org.opensearch.index.shard.IndexingOperationListener... listeners) throws java.io.IOExceptionCreates a new initializing shard. The shard will have its own unique data path.- Parameters:
shardRouting- theShardRoutingto 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.opensearch.index.shard.IndexShard newShard(org.opensearch.index.shard.ShardId shardId, boolean primary, org.opensearch.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.opensearch.index.shard.IndexShard newShard(org.opensearch.index.shard.ShardId shardId, boolean primary, java.lang.String nodeId, org.opensearch.cluster.metadata.IndexMetadata indexMetadata, @Nullable org.opensearch.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.opensearch.index.shard.IndexShard newShard(org.opensearch.index.shard.ShardId shardId, boolean primary, java.lang.String nodeId, org.opensearch.cluster.metadata.IndexMetadata indexMetadata, @Nullable org.opensearch.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.opensearch.index.shard.IndexShard newShard(org.opensearch.cluster.routing.ShardRouting routing, org.opensearch.cluster.metadata.IndexMetadata indexMetadata, @Nullable org.opensearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,org.apache.lucene.index.DirectoryReader,java.io.IOException> indexReaderWrapper, org.opensearch.index.engine.EngineFactory engineFactory, org.opensearch.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.opensearch.index.shard.IndexShard newShard(org.opensearch.cluster.routing.ShardRouting routing, org.opensearch.cluster.metadata.IndexMetadata indexMetadata, @Nullable org.opensearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,org.apache.lucene.index.DirectoryReader,java.io.IOException> indexReaderWrapper, @Nullable org.opensearch.index.engine.EngineFactory engineFactory, java.lang.Runnable globalCheckpointSyncer, org.opensearch.index.seqno.RetentionLeaseSyncer retentionLeaseSyncer, org.opensearch.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.opensearch.index.shard.IndexShard newShard(org.opensearch.cluster.routing.ShardRouting routing, org.opensearch.index.shard.ShardPath shardPath, org.opensearch.cluster.metadata.IndexMetadata indexMetadata, @Nullable org.opensearch.common.CheckedFunction<org.opensearch.index.IndexSettings,org.opensearch.index.store.Store,java.io.IOException> storeProvider, @Nullable org.opensearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,org.apache.lucene.index.DirectoryReader,java.io.IOException> indexReaderWrapper, @Nullable org.opensearch.index.engine.EngineFactory engineFactory, @Nullable org.opensearch.index.engine.EngineConfigFactory engineConfigFactory, java.lang.Runnable globalCheckpointSyncer, org.opensearch.index.seqno.RetentionLeaseSyncer retentionLeaseSyncer, org.opensearch.index.shard.IndexEventListener indexEventListener, org.opensearch.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.opensearch.index.shard.IndexShard reinitShard(org.opensearch.index.shard.IndexShard current, org.opensearch.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.opensearch.index.shard.IndexShard reinitShard(org.opensearch.index.shard.IndexShard current, org.opensearch.cluster.routing.ShardRouting routing, org.opensearch.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.opensearch.index.shard.IndexShard reinitShard(org.opensearch.index.shard.IndexShard current, org.opensearch.cluster.routing.ShardRouting routing, org.opensearch.cluster.metadata.IndexMetadata indexMetadata, org.opensearch.index.engine.EngineFactory engineFactory, org.opensearch.index.engine.EngineConfigFactory engineConfigFactory, org.opensearch.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.opensearch.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.opensearch.index.shard.IndexShard newStartedShard(org.opensearch.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.opensearch.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.opensearch.index.shard.IndexShard newStartedShard(boolean primary, org.opensearch.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.opensearch.index.shard.IndexShard newStartedShard(boolean primary, org.opensearch.common.settings.Settings settings, org.opensearch.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.opensearch.index.shard.IndexShard newStartedShard(org.opensearch.common.CheckedFunction<java.lang.Boolean,org.opensearch.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.opensearch.index.shard.IndexShard... shards) throws java.io.IOException- Throws:
java.io.IOException
-
closeShard
protected void closeShard(org.opensearch.index.shard.IndexShard shard, boolean assertConsistencyBetweenTranslogAndLucene) throws java.io.IOException- Throws:
java.io.IOException
-
closeShards
protected void closeShards(java.lang.Iterable<org.opensearch.index.shard.IndexShard> shards) throws java.io.IOException- Throws:
java.io.IOException
-
recoverShardFromStore
protected void recoverShardFromStore(org.opensearch.index.shard.IndexShard primary) throws java.io.IOException- Throws:
java.io.IOException
-
updateRoutingEntry
public static void updateRoutingEntry(org.opensearch.index.shard.IndexShard shard, org.opensearch.cluster.routing.ShardRouting shardRouting) throws java.io.IOException- Throws:
java.io.IOException
-
recoveryEmptyReplica
protected void recoveryEmptyReplica(org.opensearch.index.shard.IndexShard replica, boolean startReplica) throws java.io.IOException- Throws:
java.io.IOException
-
getFakeDiscoNode
protected org.opensearch.cluster.node.DiscoveryNode getFakeDiscoNode(java.lang.String id) -
recoverReplica
protected void recoverReplica(org.opensearch.index.shard.IndexShard replica, org.opensearch.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.opensearch.index.shard.IndexShard replica, org.opensearch.index.shard.IndexShard primary, java.util.function.BiFunction<org.opensearch.index.shard.IndexShard,org.opensearch.cluster.node.DiscoveryNode,org.opensearch.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.opensearch.index.shard.IndexShard replica, org.opensearch.index.shard.IndexShard primary, java.util.function.BiFunction<org.opensearch.index.shard.IndexShard,org.opensearch.cluster.node.DiscoveryNode,org.opensearch.indices.recovery.RecoveryTarget> targetSupplier, boolean markAsRecovering, java.util.Set<java.lang.String> inSyncIds, org.opensearch.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_RECOVERYand doesn't start it.- Parameters:
replica- the recovery target shardprimary- the recovery source shardtargetSupplier- supplies an instance ofRecoveryTargetmarkAsRecovering- set tofalseif the replica is marked as recovering- Throws:
java.io.IOException
-
startReplicaAfterRecovery
protected void startReplicaAfterRecovery(org.opensearch.index.shard.IndexShard replica, org.opensearch.index.shard.IndexShard primary, java.util.Set<java.lang.String> inSyncIds, org.opensearch.cluster.routing.IndexShardRoutingTable routingTable) throws java.io.IOException- Throws:
java.io.IOException
-
promoteReplica
protected void promoteReplica(org.opensearch.index.shard.IndexShard replica, java.util.Set<java.lang.String> inSyncIds, org.opensearch.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.opensearch.index.shard.IndexShard shard) throws java.io.IOException- Throws:
java.io.IOException
-
getDocIdAndSeqNos
public static java.util.List<DocIdSeqNoAndSource> getDocIdAndSeqNos(org.opensearch.index.shard.IndexShard shard) throws java.io.IOException- Throws:
java.io.IOException
-
assertDocCount
protected void assertDocCount(org.opensearch.index.shard.IndexShard shard, int docDount) throws java.io.IOException- Throws:
java.io.IOException
-
assertDocs
protected void assertDocs(org.opensearch.index.shard.IndexShard shard, java.lang.String... ids) throws java.io.IOException- Throws:
java.io.IOException
-
assertConsistentHistoryBetweenTranslogAndLucene
public static void assertConsistentHistoryBetweenTranslogAndLucene(org.opensearch.index.shard.IndexShard shard) throws java.io.IOException- Throws:
java.io.IOException
-
indexDoc
protected org.opensearch.index.engine.Engine.IndexResult indexDoc(org.opensearch.index.shard.IndexShard shard, java.lang.String type, java.lang.String id) throws java.io.IOException- Throws:
java.io.IOException
-
indexDoc
protected org.opensearch.index.engine.Engine.IndexResult indexDoc(org.opensearch.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.opensearch.index.engine.Engine.IndexResult indexDoc(org.opensearch.index.shard.IndexShard shard, java.lang.String type, java.lang.String id, java.lang.String source, org.opensearch.common.xcontent.XContentType xContentType, java.lang.String routing) throws java.io.IOException- Throws:
java.io.IOException
-
updateMappings
protected void updateMappings(org.opensearch.index.shard.IndexShard shard, org.opensearch.cluster.metadata.IndexMetadata indexMetadata) -
deleteDoc
protected org.opensearch.index.engine.Engine.DeleteResult deleteDoc(org.opensearch.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.opensearch.index.shard.IndexShard shard) -
flushShard
protected void flushShard(org.opensearch.index.shard.IndexShard shard, boolean force) -
recoverFromStore
public static boolean recoverFromStore(org.opensearch.index.shard.IndexShard newShard) -
recoverShardFromSnapshot
protected void recoverShardFromSnapshot(org.opensearch.index.shard.IndexShard shard, org.opensearch.snapshots.Snapshot snapshot, org.opensearch.repositories.Repository repository)Recover a shard from a snapshot using a given repository -
snapshotShard
protected java.lang.String snapshotShard(org.opensearch.index.shard.IndexShard shard, org.opensearch.snapshots.Snapshot snapshot, org.opensearch.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.opensearch.index.engine.Engine getEngine(org.opensearch.index.shard.IndexShard indexShard)Helper method to access (package-protected) engine from tests -
getTranslog
public static org.opensearch.index.translog.Translog getTranslog(org.opensearch.index.shard.IndexShard shard) -
getReplicationTracker
public static org.opensearch.index.seqno.ReplicationTracker getReplicationTracker(org.opensearch.index.shard.IndexShard indexShard) -
createTestWarmer
public static org.opensearch.index.engine.Engine.Warmer createTestWarmer(org.opensearch.index.IndexSettings indexSettings)
-