Skip to content

Commit c0b1b59

Browse files
Rishikesh1159kartg
andauthored
[Backport 2.x] [Segment Replication] Moving RecoveryState.Index to a top-level class and renaming (#3971)
* Backport #3075 to 2.x branch and resolve conflict in RecoveryState class Signed-off-by: Rishikesh1159 <rishireddy1159@gmail.com> Co-authored-by: Kartik Ganesh <gkart@amazon.com>
1 parent 0a42e6d commit c0b1b59

File tree

14 files changed

+639
-574
lines changed

14 files changed

+639
-574
lines changed

server/src/internalClusterTest/java/org/opensearch/gateway/RecoveryFromGatewayIT.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
import org.opensearch.index.shard.ShardPath;
6363
import org.opensearch.indices.IndicesService;
6464
import org.opensearch.indices.recovery.RecoveryState;
65+
import org.opensearch.indices.replication.common.ReplicationLuceneIndex;
6566
import org.opensearch.plugins.Plugin;
6667
import org.opensearch.test.OpenSearchIntegTestCase;
6768
import org.opensearch.test.OpenSearchIntegTestCase.ClusterScope;
@@ -547,7 +548,7 @@ public void testReuseInFileBasedPeerRecovery() throws Exception {
547548
final Set<String> files = new HashSet<>();
548549
for (final RecoveryState recoveryState : initialRecoveryReponse.shardRecoveryStates().get("test")) {
549550
if (recoveryState.getTargetNode().getName().equals(replicaNode)) {
550-
for (final RecoveryState.FileDetail file : recoveryState.getIndex().fileDetails()) {
551+
for (final ReplicationLuceneIndex.FileMetadata file : recoveryState.getIndex().fileDetails()) {
551552
files.add(file.name());
552553
}
553554
break;
@@ -607,7 +608,7 @@ public Settings onNodeStopped(String nodeName) throws Exception {
607608
long reused = 0;
608609
int filesRecovered = 0;
609610
int filesReused = 0;
610-
for (final RecoveryState.FileDetail file : recoveryState.getIndex().fileDetails()) {
611+
for (final ReplicationLuceneIndex.FileMetadata file : recoveryState.getIndex().fileDetails()) {
611612
if (files.contains(file.name()) == false) {
612613
recovered += file.length();
613614
filesRecovered++;

server/src/internalClusterTest/java/org/opensearch/indices/recovery/IndexRecoveryIT.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@
102102
import org.opensearch.indices.NodeIndicesStats;
103103
import org.opensearch.indices.analysis.AnalysisModule;
104104
import org.opensearch.indices.recovery.RecoveryState.Stage;
105+
import org.opensearch.indices.replication.common.ReplicationLuceneIndex;
105106
import org.opensearch.node.NodeClosedException;
106107
import org.opensearch.node.RecoverySettingsChunkSizePlugin;
107108
import org.opensearch.plugins.AnalysisPlugin;
@@ -836,7 +837,7 @@ private IndicesStatsResponse createAndPopulateIndex(String name, int nodeCount,
836837
return client().admin().indices().prepareStats(name).execute().actionGet();
837838
}
838839

839-
private void validateIndexRecoveryState(RecoveryState.Index indexState) {
840+
private void validateIndexRecoveryState(ReplicationLuceneIndex indexState) {
840841
assertThat(indexState.time(), greaterThanOrEqualTo(0L));
841842
assertThat(indexState.recoveredFilesPercent(), greaterThanOrEqualTo(0.0f));
842843
assertThat(indexState.recoveredFilesPercent(), lessThanOrEqualTo(100.0f));

server/src/main/java/org/opensearch/index/shard/StoreRecovery.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
import org.opensearch.index.store.Store;
6363
import org.opensearch.index.translog.Translog;
6464
import org.opensearch.indices.recovery.RecoveryState;
65+
import org.opensearch.indices.replication.common.ReplicationLuceneIndex;
6566
import org.opensearch.repositories.IndexId;
6667
import org.opensearch.repositories.Repository;
6768

@@ -178,7 +179,7 @@ void recoverFromLocalShards(
178179
}
179180

180181
void addIndices(
181-
final RecoveryState.Index indexRecoveryStats,
182+
final ReplicationLuceneIndex indexRecoveryStats,
182183
final Directory target,
183184
final Sort indexSort,
184185
final Directory[] sources,
@@ -235,9 +236,9 @@ void addIndices(
235236
* @opensearch.internal
236237
*/
237238
static final class StatsDirectoryWrapper extends FilterDirectory {
238-
private final RecoveryState.Index index;
239+
private final ReplicationLuceneIndex index;
239240

240-
StatsDirectoryWrapper(Directory in, RecoveryState.Index indexRecoveryStats) {
241+
StatsDirectoryWrapper(Directory in, ReplicationLuceneIndex indexRecoveryStats) {
241242
super(in);
242243
this.index = indexRecoveryStats;
243244
}
@@ -358,7 +359,7 @@ private ActionListener<Boolean> recoveryListener(IndexShard indexShard, ActionLi
358359
+ "]";
359360

360361
if (logger.isTraceEnabled()) {
361-
RecoveryState.Index index = recoveryState.getIndex();
362+
ReplicationLuceneIndex index = recoveryState.getIndex();
362363
StringBuilder sb = new StringBuilder();
363364
sb.append(" index : files [")
364365
.append(index.totalFileCount())
@@ -475,7 +476,7 @@ private void internalRecoverFromStore(IndexShard indexShard) throws IndexShardRe
475476
writeEmptyRetentionLeasesFile(indexShard);
476477
}
477478
// since we recover from local, just fill the files and size
478-
final RecoveryState.Index index = recoveryState.getIndex();
479+
final ReplicationLuceneIndex index = recoveryState.getIndex();
479480
try {
480481
if (si != null) {
481482
addRecoveredFileDetails(si, store, index);
@@ -513,7 +514,7 @@ private static void writeEmptyRetentionLeasesFile(IndexShard indexShard) throws
513514
assert indexShard.loadRetentionLeases().leases().isEmpty();
514515
}
515516

516-
private void addRecoveredFileDetails(SegmentInfos si, Store store, RecoveryState.Index index) throws IOException {
517+
private void addRecoveredFileDetails(SegmentInfos si, Store store, ReplicationLuceneIndex index) throws IOException {
517518
final Directory directory = store.directory();
518519
for (String name : Lucene.files(si)) {
519520
long length = directory.fileLength(name);

server/src/main/java/org/opensearch/indices/recovery/MultiFileWriter.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import org.opensearch.common.util.concurrent.ConcurrentCollections;
4545
import org.opensearch.index.store.Store;
4646
import org.opensearch.index.store.StoreFileMetadata;
47+
import org.opensearch.indices.replication.common.ReplicationLuceneIndex;
4748
import org.opensearch.transport.Transports;
4849

4950
import java.io.IOException;
@@ -63,7 +64,7 @@
6364
*/
6465
public class MultiFileWriter extends AbstractRefCounted implements Releasable {
6566

66-
public MultiFileWriter(Store store, RecoveryState.Index indexState, String tempFilePrefix, Logger logger, Runnable ensureOpen) {
67+
public MultiFileWriter(Store store, ReplicationLuceneIndex indexState, String tempFilePrefix, Logger logger, Runnable ensureOpen) {
6768
super("multi_file_writer");
6869
this.store = store;
6970
this.indexState = indexState;
@@ -76,7 +77,7 @@ public MultiFileWriter(Store store, RecoveryState.Index indexState, String tempF
7677
private final AtomicBoolean closed = new AtomicBoolean(false);
7778
private final Logger logger;
7879
private final Store store;
79-
private final RecoveryState.Index indexState;
80+
private final ReplicationLuceneIndex indexState;
8081
private final String tempFilePrefix;
8182

8283
private final ConcurrentMap<String, IndexOutput> openIndexOutputs = ConcurrentCollections.newConcurrentMap();

server/src/main/java/org/opensearch/indices/recovery/PeerRecoveryTargetService.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
import org.opensearch.index.translog.Translog;
7171
import org.opensearch.index.translog.TranslogCorruptedException;
7272
import org.opensearch.indices.recovery.RecoveriesCollection.RecoveryRef;
73+
import org.opensearch.indices.replication.common.ReplicationLuceneIndex;
7374
import org.opensearch.indices.replication.common.ReplicationTimer;
7475
import org.opensearch.tasks.Task;
7576
import org.opensearch.threadpool.ThreadPool;
@@ -533,8 +534,8 @@ public void messageReceived(final RecoveryFileChunkRequest request, TransportCha
533534
return;
534535
}
535536

536-
final RecoveryState.Index indexState = recoveryTarget.state().getIndex();
537-
if (request.sourceThrottleTimeInNanos() != RecoveryState.Index.UNKNOWN) {
537+
final ReplicationLuceneIndex indexState = recoveryTarget.state().getIndex();
538+
if (request.sourceThrottleTimeInNanos() != ReplicationLuceneIndex.UNKNOWN) {
538539
indexState.addSourceThrottling(request.sourceThrottleTimeInNanos());
539540
}
540541

0 commit comments

Comments
 (0)