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

2012-11-16 Thread Jonathan Hsieh (JIRA)

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

Jonathan Hsieh commented on HBASE-6573:
---

An update here -- I've been working on making this code significantly more 
straightforward, and hopefully will be posting some patches related to this 
soon.

I'm going to post a few slides, explaining what the classes are, and how they 
are related and used.  The first patch cut will be off of an old branch -- I'll 
port this to the snapshot branch after I get the one of the online snapshot 
implementations working again.   At the end of the day, this will have removed 
a few layers, most of the generics, and renamed/restructured quite a bit.

> 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, Procedure coordination.pdf
>
>
> 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


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

2012-11-06 Thread Jonathan Hsieh (JIRA)

[ 
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


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

2012-09-01 Thread Jesse Yates (JIRA)

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

Jesse Yates commented on HBASE-6573:


Switching this to be a Three-Phase (rather than Two-Phase) commit and making it 
a framework for orchestrating distributed commits. After Jon's comments and 
talking with Lars H. about what would be nice to have pulled out of snapshots, 
it made more sense to abstract out the entire control mechanism into the 
general process with interfaces for additional orchestration (currently just 
ZooKeeper, but could easily be done with RPC too) and abstract worker-side 
(cohort) processing it comes out to be a pretty clean abstraction. The downside 
means rewriting a bit of the snapshot stuff, but that should results in at 
least a page if not more less for review on that (HBASE-6055). 

So anyways, new review is up, still at https://reviews.apache.org/r/6592/

> 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: 0.96.0
>
> 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