You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "ryan rawson (JIRA)" <ji...@apache.org> on 2009/08/04 02:03:14 UTC
[jira] Updated: (HBASE-1740) ICV has a subtle race condition only
visible under high load
[ https://issues.apache.org/jira/browse/HBASE-1740?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ryan rawson updated HBASE-1740:
-------------------------------
Attachment: HBASE-1740.patch
here is a prelim potential fix, but no test updates and probably doesnt compile in the wider codebase (the snippet doesnt have errors).
> ICV has a subtle race condition only visible under high load
> ------------------------------------------------------------
>
> Key: HBASE-1740
> URL: https://issues.apache.org/jira/browse/HBASE-1740
> Project: Hadoop HBase
> Issue Type: Bug
> Affects Versions: 0.20.0
> Reporter: ryan rawson
> Fix For: 0.20.0, 0.20.1
>
> Attachments: HBASE-1740.patch
>
>
> ICV demonstrates a race condition under high load. The result is a duplicate KeyValue with the same timestamp, at first in the memcache, and in hfile, then both in hfile. The get/scan code doesnt know which one to read, and picks one arbitrarily. One of the keyvalues is correct, one is incorrect.
> What happens at a deeper level:
> - we start an ICV
> - a snapshot happens and moves the memstore to the snapshot
> - the ICV code puts a key-value into memstore that has the same timestamp as a keyvalue in the snapshot.
> This is a deep race condition and several attempts to fix it failed in production here at SU. This issue is about a more permanent fix.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.