[GitHub] [carbondata] vikramahuja1001 commented on a change in pull request #4035: [CARBONDATA-4067]: CleanFiles Behaviour Change

2020-12-02 Thread GitBox


vikramahuja1001 commented on a change in pull request #4035:
URL: https://github.com/apache/carbondata/pull/4035#discussion_r534678969



##
File path: 
core/src/main/java/org/apache/carbondata/core/util/DeleteLoadFolders.java
##
@@ -173,40 +176,62 @@ public boolean accept(CarbonFile file) {
   }
 
   private static boolean checkIfLoadCanBeDeleted(LoadMetadataDetails oneLoad,
-  boolean isForceDelete) {
-if ((SegmentStatus.MARKED_FOR_DELETE == oneLoad.getSegmentStatus() ||
-SegmentStatus.COMPACTED == oneLoad.getSegmentStatus() ||
-SegmentStatus.INSERT_IN_PROGRESS == oneLoad.getSegmentStatus() ||
-SegmentStatus.INSERT_OVERWRITE_IN_PROGRESS == 
oneLoad.getSegmentStatus())
-&& oneLoad.getVisibility().equalsIgnoreCase("true")) {
-  if (isForceDelete) {
-return true;
-  }
-  long deletionTime = oneLoad.getModificationOrDeletionTimestamp();
-  return TrashUtil.isTrashRetentionTimeoutExceeded(deletionTime) && 
CarbonUpdateUtil
-  .isMaxQueryTimeoutExceeded(deletionTime);
+  boolean cleanStaleInProgress, boolean cleanCompactedAndMFD) {
+if (oneLoad.getVisibility().equalsIgnoreCase("true")) {
+  return checkLoadDeletionLogic(oneLoad, cleanCompactedAndMFD, 
cleanStaleInProgress);
 }
-
 return false;
   }
 
   private static boolean checkIfLoadCanBeDeletedPhysically(LoadMetadataDetails 
oneLoad,
-  boolean isForceDelete) {
+  boolean cleanCompactedAndMFD, boolean cleanStaleInProgress) {
 // Check if the segment is added externally and path is set then do not 
delete it
-if ((SegmentStatus.MARKED_FOR_DELETE == oneLoad.getSegmentStatus()
-|| SegmentStatus.COMPACTED == oneLoad.getSegmentStatus()) && 
(oneLoad.getPath() == null
-|| oneLoad.getPath().equalsIgnoreCase("NA"))) {
-  if (isForceDelete) {
-return true;
-  }
-  long deletionTime = oneLoad.getModificationOrDeletionTimestamp();
+if (oneLoad.getPath() == null || oneLoad.getPath().equalsIgnoreCase("NA")) 
{
+  return checkLoadDeletionLogic(oneLoad, cleanCompactedAndMFD, 
cleanStaleInProgress);
+}
+return false;
+  }
 
-  return TrashUtil.isTrashRetentionTimeoutExceeded(deletionTime) && 
CarbonUpdateUtil
+  private static Boolean checkLoadDeletionLogic(LoadMetadataDetails oneLoad,
+  boolean cleanCompactedAndMFD, boolean cleanStaleInProgress) {
+/*
+ * if cleanStaleInProgress == false and  cleanCompactedAndMFD == false, 
clean MFD and Compacted
+ *  segments after trashtimeout(7days) && query timeout(1 hr)
+ * if cleanStaleInProgress == false and  cleanCompactedAndMFD == true, 
clean MFD and Compacted
+ *  segments immediately
+ * if cleanStaleInProgress == true and  cleanCompactedAndMFD == false, 
clean Stale Inprogress
+ *  segments after 7 days(taking carbon.trash.retention.time value)
+ * if cleanStaleInProgress == true and  cleanCompactedAndMFD == true, 
clean MFD, Compacted and
+ *  stale inprogress segments immediately.
+ */
+if (!cleanCompactedAndMFD && !cleanStaleInProgress) {
+  if (SegmentStatus.COMPACTED == oneLoad.getSegmentStatus() || 
SegmentStatus
+  .MARKED_FOR_DELETE == oneLoad.getSegmentStatus()) {
+long deletionTime = oneLoad.getModificationOrDeletionTimestamp();
+return TrashUtil.isTrashRetentionTimeoutExceeded(deletionTime) && 
CarbonUpdateUtil
   .isMaxQueryTimeoutExceeded(deletionTime);
-
+  }
+  return false;
+} else if (cleanCompactedAndMFD && !cleanStaleInProgress) {
+  return SegmentStatus.COMPACTED == oneLoad.getSegmentStatus() || 
SegmentStatus
+.MARKED_FOR_DELETE == oneLoad.getSegmentStatus();
+} else if (!cleanCompactedAndMFD) {

Review comment:
   I have added comments in the code to tell what exactly is happening and 
also added in the PR description. Please refer it once





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [carbondata] vikramahuja1001 commented on a change in pull request #4035: [CARBONDATA-4067]: CleanFiles Behaviour Change

2020-12-02 Thread GitBox


vikramahuja1001 commented on a change in pull request #4035:
URL: https://github.com/apache/carbondata/pull/4035#discussion_r534678759



##
File path: 
core/src/main/java/org/apache/carbondata/core/util/DeleteLoadFolders.java
##
@@ -173,40 +176,62 @@ public boolean accept(CarbonFile file) {
   }
 
   private static boolean checkIfLoadCanBeDeleted(LoadMetadataDetails oneLoad,
-  boolean isForceDelete) {
-if ((SegmentStatus.MARKED_FOR_DELETE == oneLoad.getSegmentStatus() ||
-SegmentStatus.COMPACTED == oneLoad.getSegmentStatus() ||
-SegmentStatus.INSERT_IN_PROGRESS == oneLoad.getSegmentStatus() ||
-SegmentStatus.INSERT_OVERWRITE_IN_PROGRESS == 
oneLoad.getSegmentStatus())
-&& oneLoad.getVisibility().equalsIgnoreCase("true")) {
-  if (isForceDelete) {
-return true;
-  }
-  long deletionTime = oneLoad.getModificationOrDeletionTimestamp();
-  return TrashUtil.isTrashRetentionTimeoutExceeded(deletionTime) && 
CarbonUpdateUtil
-  .isMaxQueryTimeoutExceeded(deletionTime);
+  boolean cleanStaleInProgress, boolean cleanCompactedAndMFD) {
+if (oneLoad.getVisibility().equalsIgnoreCase("true")) {
+  return checkLoadDeletionLogic(oneLoad, cleanCompactedAndMFD, 
cleanStaleInProgress);
 }
-
 return false;
   }
 
   private static boolean checkIfLoadCanBeDeletedPhysically(LoadMetadataDetails 
oneLoad,
-  boolean isForceDelete) {
+  boolean cleanCompactedAndMFD, boolean cleanStaleInProgress) {
 // Check if the segment is added externally and path is set then do not 
delete it
-if ((SegmentStatus.MARKED_FOR_DELETE == oneLoad.getSegmentStatus()
-|| SegmentStatus.COMPACTED == oneLoad.getSegmentStatus()) && 
(oneLoad.getPath() == null
-|| oneLoad.getPath().equalsIgnoreCase("NA"))) {
-  if (isForceDelete) {
-return true;
-  }
-  long deletionTime = oneLoad.getModificationOrDeletionTimestamp();
+if (oneLoad.getPath() == null || oneLoad.getPath().equalsIgnoreCase("NA")) 
{
+  return checkLoadDeletionLogic(oneLoad, cleanCompactedAndMFD, 
cleanStaleInProgress);
+}
+return false;
+  }
 
-  return TrashUtil.isTrashRetentionTimeoutExceeded(deletionTime) && 
CarbonUpdateUtil
+  private static Boolean checkLoadDeletionLogic(LoadMetadataDetails oneLoad,
+  boolean cleanCompactedAndMFD, boolean cleanStaleInProgress) {
+/*
+ * if cleanStaleInProgress == false and  cleanCompactedAndMFD == false, 
clean MFD and Compacted
+ *  segments after trashtimeout(7days) && query timeout(1 hr)
+ * if cleanStaleInProgress == false and  cleanCompactedAndMFD == true, 
clean MFD and Compacted
+ *  segments immediately
+ * if cleanStaleInProgress == true and  cleanCompactedAndMFD == false, 
clean Stale Inprogress
+ *  segments after 7 days(taking carbon.trash.retention.time value)
+ * if cleanStaleInProgress == true and  cleanCompactedAndMFD == true, 
clean MFD, Compacted and
+ *  stale inprogress segments immediately.
+ */
+if (!cleanCompactedAndMFD && !cleanStaleInProgress) {
+  if (SegmentStatus.COMPACTED == oneLoad.getSegmentStatus() || 
SegmentStatus
+  .MARKED_FOR_DELETE == oneLoad.getSegmentStatus()) {
+long deletionTime = oneLoad.getModificationOrDeletionTimestamp();
+return TrashUtil.isTrashRetentionTimeoutExceeded(deletionTime) && 
CarbonUpdateUtil
   .isMaxQueryTimeoutExceeded(deletionTime);
-
+  }
+  return false;
+} else if (cleanCompactedAndMFD && !cleanStaleInProgress) {

Review comment:
   previously forceDelete would delete MFD, Compacted and stale INprogress 
segments immediately. cleanCompactedAndMFD means only delete MFD, 
Compacted(immediately)  and cleanStaleInProgress means only delete 
staleInprogress segments.





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [carbondata] vikramahuja1001 commented on a change in pull request #4035: [CARBONDATA-4067]: CleanFiles Behaviour Change

2020-12-02 Thread GitBox


vikramahuja1001 commented on a change in pull request #4035:
URL: https://github.com/apache/carbondata/pull/4035#discussion_r534678032



##
File path: 
core/src/main/java/org/apache/carbondata/core/statusmanager/SegmentStatusManager.java
##
@@ -1039,17 +1039,19 @@ private static void 
writeLoadMetadata(AbsoluteTableIdentifier identifier,
 }
   }
 
-  private static ReturnTuple isUpdateRequired(boolean isForceDeletion, 
CarbonTable carbonTable,
-  AbsoluteTableIdentifier absoluteTableIdentifier, LoadMetadataDetails[] 
details) {
+  private static ReturnTuple isUpdateRequired(boolean cleanStaleInProgress, 
boolean

Review comment:
   Instead of just a force option deleting all MFD, Compacted and stale 
Insert In Progress segments, dividing them into 2 parameters, 
cleanMFDandCompacted and cleanStaleInProgress. CleanMFDAndCompacted parameter 
will decide if MFD and Compacted segments can be deleted and 
cleanStaleInProgress will decide if stale InProgress segments can be deleted. 
After giving these 2 parameters, force can be removed. if the user wants to do 
force deletion, they can set both cleanMFDandCompacted and cleanStaleInProgress 
to true.





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org