Skip to content

Commit

Permalink
Address PR comments
Browse files Browse the repository at this point in the history
Signed-off-by: Sachin Kale <kalsac@amazon.com>
  • Loading branch information
Sachin Kale committed Apr 15, 2024
1 parent 2a893f0 commit 2b99724
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,9 @@

import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.channels.FileChannel;
import java.nio.file.Files;
import java.nio.file.NoSuchFileException;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
import java.util.HashSet;
import java.util.Locale;
import java.util.Map;
Expand Down Expand Up @@ -267,7 +265,7 @@ private static void downloadOnce(TranslogTransferManager translogTransferManager
if (isEmptyTranslog(checkpoint) == false) {
logger.debug("Translog files exist on local without any metadata in remote, cleaning up these files");
// Creating empty translog will cleanup the older un-referenced tranlog files, we don't have to explicitly delete
createEmptyTranslog(translogTransferManager, location, checkpoint);
Translog.createEmptyTranslog(location, translogTransferManager.getShardId(), checkpoint);
} else {
logger.debug("Empty translog on local, skipping clean-up");
}
Expand All @@ -283,27 +281,6 @@ private static boolean isEmptyTranslog(Checkpoint checkpoint) {
&& checkpoint.numOps == 0;
}

private static void createEmptyTranslog(TranslogTransferManager translogTransferManager, Path location, Checkpoint checkpoint)
throws IOException {
final Path highestGenTranslogFile = location.resolve(getFilename(checkpoint.generation));
final TranslogHeader translogHeader;
try (FileChannel channel = FileChannel.open(highestGenTranslogFile, StandardOpenOption.READ)) {
translogHeader = TranslogHeader.read(highestGenTranslogFile, channel);
}
final String translogUUID = translogHeader.getTranslogUUID();
final long primaryTerm = translogHeader.getPrimaryTerm();
final ChannelFactory channelFactory = FileChannel::open;
Translog.createEmptyTranslog(
location,
translogTransferManager.getShardId(),
SequenceNumbers.NO_OPS_PERFORMED,
primaryTerm,
translogUUID,
channelFactory,
checkpoint.generation + 1
);
}

public static TranslogTransferManager buildTranslogTransferManager(
BlobStoreRepository blobStoreRepository,
ThreadPool threadPool,
Expand Down
20 changes: 20 additions & 0 deletions server/src/main/java/org/opensearch/index/translog/Translog.java
Original file line number Diff line number Diff line change
Expand Up @@ -2015,6 +2015,26 @@ public static String createEmptyTranslog(
return createEmptyTranslog(location, shardId, initialGlobalCheckpoint, primaryTerm, translogUUID, factory, 1);
}

public static String createEmptyTranslog(final Path location, final ShardId shardId, Checkpoint checkpoint) throws IOException {
final Path highestGenTranslogFile = location.resolve(getFilename(checkpoint.generation));
final TranslogHeader translogHeader;
try (FileChannel channel = FileChannel.open(highestGenTranslogFile, StandardOpenOption.READ)) {
translogHeader = TranslogHeader.read(highestGenTranslogFile, channel);
}
final String translogUUID = translogHeader.getTranslogUUID();
final long primaryTerm = translogHeader.getPrimaryTerm();
final ChannelFactory channelFactory = FileChannel::open;
return Translog.createEmptyTranslog(
location,
shardId,
SequenceNumbers.NO_OPS_PERFORMED,
primaryTerm,
translogUUID,
channelFactory,
checkpoint.generation + 1
);
}

public static String createEmptyTranslog(
final Path location,
final ShardId shardId,
Expand Down

0 comments on commit 2b99724

Please sign in to comment.