[ 
https://issues.apache.org/jira/browse/HBASE-8028?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13596349#comment-13596349
 ] 

Lars Hofhansl commented on HBASE-8028:
--------------------------------------

That's probably the reason. In 0.94 and before it simply could not be done (and 
whoever pulled the sync outside of the rowlock just ignored this problem to get 
the performance benefit).

When I made this MVCC aware/safe (HBASE-4583) in trunk I did not realize that 
now this is principle fixable. If I had I would have made a stronger to remove 
upsert completely and always create new versions (just as do for all other 
operations).

So we should have this discussion again. In HBASE-4583 I have a radical patch 
that does away with upsert at the expense of performance. The radical patch 
would the solution you outline (i.e. to the same we do for puts: remove the 
added KVs if the sync fails).

The sentiment was that we should do the less radical version, which has the 
compromise of using upsert when VERSIONS=1.
                
> Append, Increment don't handle wal-sync exceptions correctly
> ------------------------------------------------------------
>
>                 Key: HBASE-8028
>                 URL: https://issues.apache.org/jira/browse/HBASE-8028
>             Project: HBase
>          Issue Type: Bug
>          Components: regionserver
>    Affects Versions: 0.94.5
>            Reporter: Himanshu Vashishtha
>            Assignee: Himanshu Vashishtha
>             Fix For: 0.95.0
>
>
> In case there is an exception while doing the log-sync, the memstore is not 
> rollbacked, while the mvcc is _always_ forwarded to the writeentry created at 
> the beginning of the operation. This may lead to scanners seeing results 
> which are not synched to the fs.

--
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

Reply via email to