[ https://issues.apache.org/jira/browse/HBASE-7051?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13488513#comment-13488513 ]
Hudson commented on HBASE-7051: ------------------------------- Integrated in HBase-0.94 #562 (See [https://builds.apache.org/job/HBase-0.94/562/]) HBASE-7051 CheckAndPut should properly read MVCC (Revision 1404379) Result = FAILURE larsh : Files : * /hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java > 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 > Assignee: Lars Hofhansl > Fix For: 0.94.3, 0.96.0 > > Attachments: 7051.txt > > > 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