[ https://issues.apache.org/jira/browse/HBASE-7051?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13488174#comment-13488174 ]
Lars Hofhansl commented on HBASE-7051: -------------------------------------- OK... Lemme commit this, followed by HBASE-7071. Any objections? > 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 > 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