This is an automated email from the ASF dual-hosted git repository. rong pushed a commit to branch 1.2-slow-startup in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit c5807330cc80592d41f3e20c059b3a4bb44e7026 Author: Steve Yurong Su <[email protected]> AuthorDate: Mon Jun 26 21:51:52 2023 +0800 dirty fix --- .../file/PipeHardlinkFileDirStartupCleaner.java | 31 +++++++++++++++------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/pipe/resource/file/PipeHardlinkFileDirStartupCleaner.java b/server/src/main/java/org/apache/iotdb/db/pipe/resource/file/PipeHardlinkFileDirStartupCleaner.java index 179135e5c6f..667468fc885 100644 --- a/server/src/main/java/org/apache/iotdb/db/pipe/resource/file/PipeHardlinkFileDirStartupCleaner.java +++ b/server/src/main/java/org/apache/iotdb/db/pipe/resource/file/PipeHardlinkFileDirStartupCleaner.java @@ -28,6 +28,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; +import java.util.concurrent.CompletableFuture; public class PipeHardlinkFileDirStartupCleaner { @@ -39,24 +40,36 @@ public class PipeHardlinkFileDirStartupCleaner { * PipeConfig.PIPE_TSFILE_DIR_NAME directory. */ public static void clean() { + CompletableFuture.runAsync(PipeHardlinkFileDirStartupCleaner::doClean); + } + + private static void doClean() { + long totalStartTs = System.currentTimeMillis(); for (String dataDir : IoTDBDescriptor.getInstance().getConfig().getDataDirs()) { long startTs = System.currentTimeMillis(); LOGGER.info("PipeHardlinkFileDirStartupCleaner.clean started, dataDir: {}", dataDir); - for (File file : - FileUtils.listFilesAndDirs( - new File(dataDir), DirectoryFileFilter.INSTANCE, DirectoryFileFilter.INSTANCE)) { - if (file.isDirectory() - && file.getName().equals(PipeConfig.getInstance().getPipeHardlinkTsFileDirName())) { - LOGGER.info( - "pipe hardlink tsfile dir found, deleting it: {}, result: {}", - file, - FileUtils.deleteQuietly(file)); + try { + for (File file : + FileUtils.listFilesAndDirs( + new File(dataDir), DirectoryFileFilter.INSTANCE, DirectoryFileFilter.INSTANCE)) { + if (file.isDirectory() + && file.getName().equals(PipeConfig.getInstance().getPipeHardlinkTsFileDirName())) { + LOGGER.info( + "pipe hardlink tsfile dir found, deleting it: {}, result: {}", + file, + FileUtils.deleteQuietly(file)); + } } + } catch (Exception e) { + LOGGER.warn("PipeHardlinkFileDirStartupCleaner.clean failed", e); } LOGGER.info( "PipeHardlinkFileDirStartupCleaner finished, cost: {}ms", System.currentTimeMillis() - startTs); } + LOGGER.info( + "PipeHardlinkFileDirStartupCleaner finished, total cost: {}ms", + System.currentTimeMillis() - totalStartTs); } private PipeHardlinkFileDirStartupCleaner() {
