You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Jonathan Hsieh (JIRA)" <ji...@apache.org> on 2012/11/06 21:50:12 UTC

[jira] [Commented] (HBASE-6573) Distributed Three-Phase Commit framework.

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

Jonathan Hsieh commented on HBASE-6573:
---------------------------------------

Update on this - I've been re-organizing the code here to simplify it.  A draft can be seen here:

https://github.com/jmhsieh/hbase/tree/snapshot-ts-threadchange

I'm currently working on getting the TS snapshot functionality passing unit tests again.  Once I get that I'll, summarize the changes and rebase/port onto the current snapshot branch.

Some key things to note.  

1) This is a framework that uses zookeeper as an rpc/coordination mechanism.  Masters and region servers are only communicating via ZK.
2) This isn't a commit protocol -- if errors occur after the traditional 2pc coordinator commit point the current behavior is to reset (remove znodes) or and essentially abort.   Traditional 2PC/3PC style algorithms would recover from any failure after this commit point.  This mechanism seems to be overkill for log-rolling or timestamp snapshots.  For the globally-consistent flavor, I think we really want a distributed 2 phase locking protocol instead of a 2 phase commit protocol.  

For the time being, my opinion is to work to get this chunk of code into the snapshot branch, and then do patches on top of this to further simplify the implementation.
                
> Distributed Three-Phase Commit framework.
> -----------------------------------------
>
>                 Key: HBASE-6573
>                 URL: https://issues.apache.org/jira/browse/HBASE-6573
>             Project: HBase
>          Issue Type: Sub-task
>    Affects Versions: 0.96.0
>            Reporter: Jesse Yates
>            Assignee: Jesse Yates
>             Fix For: hbase-6055
>
>         Attachments: java_HBASE-6573-v0.patch
>
>
> For HBASE-6055 (snapshots), we do two-phase commit in several places. This is a generally useful paradigm for a distributed system.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira