From f587197a08a614c15745a96240e8f9d3a189c8c6 Mon Sep 17 00:00:00 2001 From: Wei-Chiu Chuang Date: Thu, 5 Apr 2018 14:11:29 -0700 Subject: [PATCH] HBASE-20338. WALProcedureStore#recoverLease() should have fixed sleeps and/ or exponential backoff for retrying rollWriter() Rev02 to address Chia-Ping's comments. --- .../apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.java b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.java index 8581d82..40054a4 100644 --- a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.java +++ b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.java @@ -360,6 +360,7 @@ public class WALProcedureStore extends ProcedureStoreBase { try { LOG.trace("Starting WAL Procedure Store lease recovery"); FileStatus[] oldLogs = getLogFiles(); + int rollWriterRetries = 0; while (isRunning()) { // Get Log-MaxID and recover lease on old logs try { @@ -370,6 +371,10 @@ public class WALProcedureStore extends ProcedureStoreBase { continue; } + // Don't sleep before first roll writer attempt + if (++rollWriterRetries > 1) { + Threads.sleepWithoutInterrupt(waitBeforeRoll); + } // Create new state-log if (!rollWriter(flushLogId + 1)) { // someone else has already created this log -- 2.5.3