[
https://issues.apache.org/jira/browse/HBASE-11447?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14051081#comment-14051081
]
Gary Helmling commented on HBASE-11447:
---------------------------------------
Thanks for posting this.
TransactionManager:
* The {{resume}} methods seem implementation specific. I'm not sure the idea
of suspend/resume of a transaction would be generally applicable.
* Why are transaction states shown as constants on this class instead of an
enum of states on the Transaction class?
Transaction:
* I don't really understand why some transaction "actions" (commit, rollback,
suspend) are represented here, while others are represented on
TransactionManager. This seems like a blurring of concerns between the two
classes. I would more expect all the "actions" to be present on
TransactionManager and the Transaction class to just represent the transaction
state.
* setTransactionTimeout() - does it make sense to set the timeout on an
individual transaction after it's started? I think it would be better to be
able to specify a timeout when calling TransactionManager.begin()
* setRollbackOnly() - I don't understand why this is needed instead of simply
rolling back the transaction. Seems like an implementation detail?
TransactionTable:
* I agree with previous comments that we should provide a way of setting a
transaction on a table, then leaving the HTableInterface methods unchanged. In
the same way that HTable is not thread safe for writes, it doesn't make sense
to me to mix operations from different transactions.
HeuristicCommitException/HeuristicMixedException/HeuristicRollbackException:
* these all seem implementation specific
> 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)