[
https://issues.apache.org/jira/browse/HBASE-19616?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16759261#comment-16759261
]
BELUGA BEHR commented on HBASE-19616:
-------------------------------------
{code:java}
while (!setFromCleaner) {
long startTimeNanos = System.nanoTime();
wait(waitIfNotFinished);
totalTimeMsec += TimeUnit.MILLISECONDS.convert(System.nanoTime() -
startTimeNanos,
TimeUnit.NANOSECONDS);
if (totalTimeMsec >= timeoutMsec) {
LOG.warn("Spend too much time " + totalTimeMsec + " ms to delete
oldwals " + target);
return result;
}
}
{code}
Used a
[CountDownLatch|https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CountDownLatch.html]
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
> 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: Trivial
> Attachments: HBASE-19616.1.patch, HBASE-19616.2.patch
>
>
> * Parameterize logging
> * Remove compiler-reported dead code to re-enabling useful logging
> * Use ArrayList instead of LinkedList
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)