DeleteColumns are not recovered properly from the write-ahead-log
-----------------------------------------------------------------
Key: HBASE-1880
URL: https://issues.apache.org/jira/browse/HBASE-1880
Project: Hadoop HBase
Issue Type: Bug
Components: regionserver
Affects Versions: 0.20.0, 0.20.1, 0.21.0
Reporter: Clint Morgan
Priority: Critical
I found a couple of issues:
- The timestamp is being set to now after it has been written to the wal. So
if the WAL was flushed on that write, it gets in with ts of MAX_INT and is
effectively lost.
- Even after that fix, I had issues getting the delete to apply properly. In
my case, the WAL had a put to a column, then a DeleteColumn for the same
column. The DeleteColumn KV had a later timestamp, but it was still lost on
recovery. I traced around a bit, and it looks like the current approach of just
using an HFile.writer to write the set of KVs read from the log will not work.
There is special logic in MemStore for deletes that needs to happen before
writing. I got around this by just adding to memstore in the log recovery
process. Not sure if there are other implications of this.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.