Github user zzcclp commented on a diff in the pull request:

    https://github.com/apache/carbondata/pull/2045#discussion_r173716505
  
    --- Diff: 
core/src/main/java/org/apache/carbondata/core/statusmanager/SegmentStatusManager.java
 ---
    @@ -834,6 +836,40 @@ private static void 
writeLoadMetadata(AbsoluteTableIdentifier identifier,
         }
       }
     
    +  /**
    +   * Currently the segment lock files are not deleted immediately when 
unlock,
    +   * so it needs to delete expired lock files before delete loads.
    +   */
    +  private static void deleteExpiredSegmentLockFiles(CarbonTable 
carbonTable) {
    +    LoadMetadataDetails[] details =
    +        
SegmentStatusManager.readLoadMetadata(carbonTable.getMetadataPath());
    +    if (details != null && details.length > 0) {
    +      AbsoluteTableIdentifier absoluteTableIdentifier = 
carbonTable.getAbsoluteTableIdentifier();
    +      long segmentLockFilesPreservTime =
    +          
CarbonProperties.getInstance().getSegmentLockFilesPreserveHours();
    +      long currTime = System.currentTimeMillis();
    +      for (LoadMetadataDetails oneRow : details) {
    +        if (oneRow.getVisibility().equalsIgnoreCase("false") ||
    +            SegmentStatus.SUCCESS == oneRow.getSegmentStatus() ||
    +            SegmentStatus.LOAD_FAILURE == oneRow.getSegmentStatus() ||
    +            SegmentStatus.LOAD_PARTIAL_SUCCESS == 
oneRow.getSegmentStatus() ||
    +            SegmentStatus.COMPACTED == oneRow.getSegmentStatus()) {
    +          String location = absoluteTableIdentifier.getTablePath() +
    --- End diff --
    
    Done


---

Reply via email to