hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Clint Morgan (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HBASE-669) MultiRegion transactions with Optimistic Concurrency Control
Date Fri, 06 Jun 2008 00:32:45 GMT

     [ 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

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.

View raw message