hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Clint Morgan <clint.mor...@troove.net>
Subject Re: Shared org.apache.hadoop.hbase.client.transactional.TransactionState?
Date Thu, 28 Jan 2010 21:10:50 GMT
The transactional contrib stuff is more geared to short-duration
transactions. It relys on OCC, and the optimistic assumption breaks down as
the transaction gets longer (gives more time for another trx to put in a
write which will cause a conflict and then the long trx will have to retry).
Also, all the transaction writes are stored in memory until commit-time, so
this could be an issue if you are write-heavy.

That said, it should be possible to share transaction states across
machines. Just have to make sure that all regions in the get into the final
state that is used to commit and be sure that the commit process is only
triggered from a single client. I don't have any advice for the best way to
do this...

cheers,
-clint

On Thu, Jan 28, 2010 at 12:20 PM, Chad Hardin <cehardin@gmail.com> wrote:

> Hello all,
>
> I'm trying to solve the problem of performing operations on a
> HTransactionalTable under the context of a long-duration transaction.  My
> problem is that I won't know what machines will be involved in the
> long-duration transaction beforehand.  The solution I have in mind is to
> make TransactionStates some type of remote resource that any machine can
> reference at any time.  Is this possible.  Is this a bad idea in general?
> How could I share a single TransactionState amongst several machines?
>
>
> Thanks!
> Chad Hardin
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message