[ 
https://issues.apache.org/jira/browse/HBASE-19616?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16760824#comment-16760824
 ] 

BELUGA BEHR commented on HBASE-19616:
-------------------------------------

Thanks [~stack]!

Here is the previous version:
{code:java}
      CleanerContext context = CleanerContext.createCleanerContext(toDelete,
          cleanerThreadTimeoutMsec);
      if (context != null) {
        pendingDelete.add(context);
        results.add(context);
      }

    static CleanerContext createCleanerContext(FileStatus status, long 
timeoutMsec) {
      return status != null ? new CleanerContext(status, timeoutMsec) : null;
    }
{code}

In the previous version of the file, the context was only 'null' if the status 
was 'null'. I removed this {{createCleanerContext}} static method and check 
that status is not 'null' earlier in the method.

{code:java}
   for (FileStatus file : filesToDelete) {
      LOG.trace("Scheduling file {} for deletion", file);
      if (file != null) {
        results.add(new CleanerContext(file));
      }
    }
{code}

> Review of LogCleaner Class
> --------------------------
>
>                 Key: HBASE-19616
>                 URL: https://issues.apache.org/jira/browse/HBASE-19616
>             Project: HBase
>          Issue Type: Improvement
>    Affects Versions: 3.0.0
>            Reporter: BELUGA BEHR
>            Assignee: BELUGA BEHR
>            Priority: Minor
>             Fix For: 3.0.0
>
>         Attachments: HBASE-19616.1.patch, HBASE-19616.2.patch, 
> HBASE-19616.3.patch
>
>
> * Parameterize logging
> * Remove compiler-reported dead code to re-enabling useful logging
> * Use ArrayList instead of LinkedList
> Used a CountDownLatch to replace a bunch of the existing code. It currently 
> loops with a 500ms interval to check if some sort of condition has been met 
> until the amount of time spent looping is greater than some timeout value. 
> Using a CountDownLatch allows one or more threads to wait until a set of 
> operations being performed in other threads completes. It will not blindly 
> sleep between checks and it will return immediately after the condition is 
> met. This removes the HBase configuration that controls the sleep interval.
>  
> I also cleaned up the unit tests a bit and enhanced the logging of this class 
> to ease troubleshooting.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to