You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Clint Morgan (JIRA)" <ji...@apache.org> on 2008/06/06 02:32:45 UTC

[jira] Updated: (HBASE-669) MultiRegion transactions with Optimistic Concurrency Control

     [ 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.