From 2b9972427f276fb47cb2937deb93ee5ee22c5769 Mon Sep 17 00:00:00 2001 From: Sachin Kale Date: Fri, 12 Apr 2024 11:30:36 +0530 Subject: [PATCH] Address PR comments Signed-off-by: Sachin Kale --- .../index/translog/RemoteFsTranslog.java | 25 +------------------ .../opensearch/index/translog/Translog.java | 20 +++++++++++++++ 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/server/src/main/java/org/opensearch/index/translog/RemoteFsTranslog.java b/server/src/main/java/org/opensearch/index/translog/RemoteFsTranslog.java index 5c61b2f53c97e..da905b9605dfd 100644 --- a/server/src/main/java/org/opensearch/index/translog/RemoteFsTranslog.java +++ b/server/src/main/java/org/opensearch/index/translog/RemoteFsTranslog.java @@ -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; @@ -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"); } @@ -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, diff --git a/server/src/main/java/org/opensearch/index/translog/Translog.java b/server/src/main/java/org/opensearch/index/translog/Translog.java index 9263239b3cae5..c653605f8fa10 100644 --- a/server/src/main/java/org/opensearch/index/translog/Translog.java +++ b/server/src/main/java/org/opensearch/index/translog/Translog.java @@ -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,