Class TsFileAndModSettleTool


  • public class TsFileAndModSettleTool
    extends java.lang.Object
    Offline Settle tool, which is used to settle TsFile and its corresponding mods file to a new TsFile.
    • Field Detail

      • recoverSettleFileMap

        public java.util.Map<java.lang.String,​java.lang.Integer> recoverSettleFileMap
    • Method Detail

      • main

        public static void main​(java.lang.String[] args)
      • checkArgs

        public static java.util.List<java.io.File> checkArgs​(java.lang.String[] args)
      • settleTsFilesAndMods

        public static void settleTsFilesAndMods​(java.util.Map<java.lang.String,​TsFileResource> resourcesToBeSettled)
        This method is used to settle tsFiles and mods files, so that each old TsFile corresponds to one or several new TsFiles. This method is only applicable to V3 TsFile. Each old TsFile corresponds to one or several new TsFileResources of the new TsFiles
      • settleOneTsFileAndMod

        public void settleOneTsFileAndMod​(TsFileResource resourceToBeSettled,
                                          java.util.List<TsFileResource> settledResources)
                                   throws org.apache.iotdb.tsfile.exception.write.WriteProcessException,
                                          org.apache.iotdb.commons.exception.IllegalPathException,
                                          java.io.IOException
        The size of settledResources will be 0 in one of the following conditions: (1) old TsFile is not closed (2) old ModFile is not existed (3) all data in the old tsfile is being deleted after settling
        Throws:
        org.apache.iotdb.tsfile.exception.write.WriteProcessException
        org.apache.iotdb.commons.exception.IllegalPathException
        java.io.IOException
      • findFilesToBeRecovered

        public static void findFilesToBeRecovered()
      • isSettledFileGenerated

        public boolean isSettledFileGenerated​(TsFileResource oldTsFileResource)
        this method is used to check whether the new file is settled when recovering old tsFile.
      • findSettledFile

        public java.util.List<TsFileResource> findSettledFile​(TsFileResource resourceToBeSettled)
                                                       throws java.io.IOException
        when the new file is settled , we need to find and deserialize it.
        Throws:
        java.io.IOException
      • moveNewTsFile

        public static void moveNewTsFile​(TsFileResource oldTsFileResource,
                                         java.util.List<TsFileResource> newTsFileResources)
                                  throws java.io.IOException
        This method is used to move a new TsFile and its corresponding resource file to the correct folder.
        Parameters:
        oldTsFileResource -
        newTsFileResources - if the old TsFile has not any deletions or all the data in which has been deleted or its modFile does not exist, then this size will be 0.
        Throws:
        java.io.IOException
      • clearRecoverSettleFileMap

        public static void clearRecoverSettleFileMap()