hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "jiraposter@reviews.apache.org (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-5203) Group atomic put/delete operation into a single WALEdit to handle region server failures.
Date Mon, 16 Jan 2012 08:03:44 GMT

    [ https://issues.apache.org/jira/browse/HBASE-5203?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13186760#comment-13186760
] 

jiraposter@reviews.apache.org commented on HBASE-5203:
------------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/3510/
-----------------------------------------------------------

(Updated 2012-01-16 07:58:33.454515)


Review request for hbase, Ted Yu and Michael Stack.


Changes
-------

Fixed comments (before Ted points them out to me :) )


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 (updated)
-----

  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

        

Mime
View raw message