Review Board 1.7.22


HBASE-5203 Group atomic put/delete operation into a single WALEdit to handle region server failures.

Review Request #3510 - Created Jan. 16, 2012 and submitted

Lars Hofhansl
trunk
HBASE-5203
Reviewers
hbase
stack, tedyu
hbase
Basically a rewrite (sorry about that) of HBASE-3485 "Allow atomic put/delete in one call".
This makes this actually correct in the case of RegionServer failures (HBASE-3485 was correct for all scenarios but RegionServer failures).
HRegion.mutateRow(...) now groups all edits into a single WALEdit and appends all edits in one call. Only then are the memstore edits applied.
This is the first time that WALEdits can contain KVs from different types of operations. So I also had to fix the replication code to understand that.
WAL recovery already handles this case.
* Tests added in HBASE-3485
* manual testing.
* passes all tests.
Review request changed
Updated (Jan. 16, 2012, 7:05 p.m.)
  • * Tests added in HBASE-3485
    * manual testing.
    * getting a full test run right now

    * Tests added in HBASE-3485
    * manual testing.
    * passes all tests.
* Addressing Ram's comments. Coprocessor postHooks are now only executed if all operations were successful (threw no exceptions).