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

Lars Hofhansl commented on HBASE-11447:
---------------------------------------

Cool.

* I would like to discuss associating a TransactionHTable object with a 
Transaction upon construction and then use the normal put/delete/etc methods. 
HTables are lightweight now and hence can be created for each transaction. That 
way the API is the same (besides construction) and we won't have two 
implementations of each operation. The Transaction could even have a getter for 
HTableInterface instances.
* PREPARED/PREPARING implies 2PC transactions only?
* For optimistic concurrency control (OCC) and snapshot isolation (SI) a 
transaction would need to include: the write TS, the read TS, potentially 
uncommitted transactions newer than the read point, etc. I.e. Transaction maybe 
should just be a marker interface to be passed around, but details are left to 
the implementation.
* We should allow distinguishing between read only and read write transactions. 
(important for OCC)
* We should also be able to indicate isolation level. Full serializable 
transactions are very expensive in a distributed environment when many rows are 
read/updated.


> Proposal for a generic transaction API for HBase
> ------------------------------------------------
>
>                 Key: HBASE-11447
>                 URL: https://issues.apache.org/jira/browse/HBASE-11447
>             Project: HBase
>          Issue Type: New Feature
>          Components: Client
>    Affects Versions: 1.0.0
>         Environment: Any.
>            Reporter: John de Roo
>            Priority: Minor
>              Labels: features, newbie
>             Fix For: 1.0.0
>
>         Attachments: Open Transaction Interface.pdf
>
>
> HBase transaction management today is provided by a number of products, each 
> implementing a different API, each having different strengths.  The lack of a 
> common API for transactional interfaces means that applications need to be 
> coded to work with a specific Transaction Manager.  This proposal outlines an 
> API which, if implemented by the different Transaction Manager vendors would 
> provide stability and choice to HBase application developers.  



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to