[ 
https://issues.apache.org/jira/browse/HBASE-669?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Clint Morgan updated HBASE-669:
-------------------------------

    Attachment: hbase-669.patch

This is my current, in-progress, attempt:

HRegions keep track of read and write sets for each transaction. 

To decide if we commit transaction A, we check for overlap between the read set 
of A and the write set of all transactions that were commited since A started. 
If there is overlap, then we must abort. If not the we can commit this 
transaction without conflict (in the given region).

Client-side we keep track of all the regions involved in a transaction. When 
the client asks to commit, we ask all participating regions if it is ok to 
commit. If so we commit, otherwise we abort.

This patch contains a few simple tests to communicate the API.

Still missing are Write Ahead Logs (WALs) on clientside and integrating with 
the HRegion's log. 

I would appreciate high-level review/feedback on:
- clientside API
-  implications of this OCC approach on the rest of hbase
- general implementation approach. Currently I'm subclassing to keep my changes 
isolated, but this may not be best. EG, I have subclasses of HRegionServer that 
do both transactions and secondary indexes. How do I get both? A mixin/AOP 
approach may work better here...




> MultiRegion transactions with Optimistic Concurrency Control
> ------------------------------------------------------------
>
>                 Key: HBASE-669
>                 URL: https://issues.apache.org/jira/browse/HBASE-669
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, ipc, regionserver
>            Reporter: Clint Morgan
>         Attachments: hbase-669.patch
>
>
> We have a need for ACID transactions across tables. This issue is about 
> adding transactions which span multiple regions.  We do not envision many 
> competing writes, and will be read-dominated in general. This makes 
> Optimistic Concurrency Control (OCC) seem like the way to go.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to