[ https://issues.apache.org/jira/browse/HBASE-5203?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lars Hofhansl updated HBASE-5203: --------------------------------- Description: 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. was: 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. > 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-v3.txt, 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. > Addendum: > The attached patch implements #1 and fixes replication to be able to deal > with different operations being grouped in one WALEdit. -- 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