[
https://issues.apache.org/jira/browse/HBASE-5203?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13186757#comment-13186757
]
[email protected] commented on HBASE-5203:
------------------------------------------------------
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/3510/
-----------------------------------------------------------
Review request for hbase, Ted Yu and Michael Stack.
Summary
-------
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.
This addresses bug HBASE-5203.
https://issues.apache.org/jira/browse/HBASE-5203
Diffs
-----
http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/Delete.java
1231744
http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
1231744
http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.java
1231744
http://svn.apache.org/repos/asf/hbase/trunk/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java
1231744
Diff: https://reviews.apache.org/r/3510/diff
Testing
-------
* Tests added in HBASE-3485
* manual testing.
* getting a full test run right now
Thanks,
Lars
> Group atomic put/delete operation into a single WALEdit to handle region
> server failures.
> -----------------------------------------------------------------------------------------
>
> Key: HBASE-5203
> URL: https://issues.apache.org/jira/browse/HBASE-5203
> Project: HBase
> Issue Type: Sub-task
> Components: client, coprocessors, regionserver
> Reporter: Lars Hofhansl
> Assignee: Lars Hofhansl
> Fix For: 0.94.0
>
> Attachments: 5203.txt
>
>
> 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.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira