Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
0.94.6, 0.95.0
-
None
-
Reviewed
-
A new config parameter, hbase.lease.recovery.timeout, is introduced for the maximum duration recoverFileLease() would wait for any single file. Default is 5 minutes. If lease recovery doesn't succeed within this limit, append() would be called.
Description
I think this is a problem, so I'm opening a ticket so an HBase person takes a look.
Apache Accumulo has moved its write-ahead log to HDFS. I modeled the lease recovery for Accumulo after HBase's lease recovery. During testing, we experienced data loss. I found it is necessary to wait until recoverLease returns true to know that the file has been truly closed. In FSHDFSUtils, the return result of recoverLease is not checked. In the unit tests created to check lease recovery in HBASE-2645, the return result of recoverLease is always checked.
I think FSHDFSUtils should be modified to check the return result, and wait until it returns true.
Attachments
Attachments
Issue Links
- is related to
-
HBASE-8204 Don't use hdfs append during lease recovery
- Closed
-
HBASE-8321 Log split worker should heartbeat to avoid timeout when the hlog is under recovery
- Closed
-
HBASE-8670 [0.94] Backport HBASE-8449,HBASE-8204 and HBASE-8699 to 0.94 (Refactor recoverLease retries and pauses)
- Closed
- relates to
-
HBASE-8354 Backport HBASE-7878 'recoverFileLease does not check return value of recoverLease' to 0.94
- Closed