-
Type:
Sub-task
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: 0.94.0
-
Component/s: Client, Coprocessors, regionserver
-
Labels:None
-
Hadoop Flags:Reviewed
HBASE-3584 does not not provide fully atomic operation in case of region server failures (see explanation there).
What should happen is that either (1) all edits are applied via a single WALEdit, or (2) the WALEdits are applied in async mode and then sync'ed together.
For #1 it is not clear whether it is advisable to manage multiple different operations (Put/Delete) via a single WAL edit. A quick check reveals that WAL replay on region startup would work, but that replication would need to be adapted. The refactoring needed would be non-trivial.
#2 Might actually not work, as another operation could request sync'ing a later edit and hence flush these entries out as well.
Addendum:
The attached patch implements #1 and fixes replication to be able to deal with different operations being grouped in one WALEdit.