[
https://issues.apache.org/jira/browse/HBASE-7051?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13485565#comment-13485565
]
Lars Hofhansl commented on HBASE-7051:
--------------------------------------
I'd probably go with #1 honestly (as I said above it's not as nuclear as I had
thought). I do not think #2 or #3 are worth the effort/risk.
We always wait for all other transactions - in this region - to finish (that is
true even for normal puts), this is a nice and simple design in HBase. Changing
that to MVCC/row would also break the multi row transaction stuff I added (but
that is only exposed through a coprocessor endpoint so breaking that would
potentially be OK).
MVCC is already per region, I do not think we should add a finer granularity
here.
> Read/Updates (increment,checkAndPut) should properly read MVCC
> --------------------------------------------------------------
>
> Key: HBASE-7051
> URL: https://issues.apache.org/jira/browse/HBASE-7051
> Project: HBase
> Issue Type: Bug
> Affects Versions: 0.96.0
> Reporter: Gregory Chanan
> Fix For: 0.94.3, 0.96.0
>
>
> See, for example:
> {code}
> // TODO: Use MVCC to make this set of increments atomic to reads
> {code}
> Here's an example of what I can happen (would probably be good to write up a
> test case for each read/update):
> Concurrent update via increment and put.
> The put grabs the row lock first and updates the memstore, but releases the
> row lock before the MVCC is advanced. Then, the increment grabs the row lock
> and reads right away, reading the old value and incrementing based on that.
> There are a few options here:
> 1) Waiting for the MVCC to advance for read/updates: the downside is that you
> have to wait for updates on other rows.
> 2) Have an MVCC per-row (table configuration): this avoids the unnecessary
> contention of 1)
> 3) Transform the read/updates to write-only with rollup on read.. E.g. an
> increment would just have the number of values to increment.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira