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