[
https://issues.apache.org/jira/browse/HBASE-17482?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15827557#comment-15827557
]
Yu Li commented on HBASE-17482:
-------------------------------
Nice catch [~allan163], +1 on the fix.
Just one minor comment, that since the UT case is not that straight forward,
mind adding some javadoc for it, or at least add a link to the this JIRA?
Some clarification for the UT design I could think of (please correct me if I
state anything wrong):
After binding mvcc with sequence id, we will get cell's mvcc through
{{Cell#getSequenceId}} method, and will compare the mvcc with read point in
either {{SegmentScanner#updateCurrent}} (master branch) or
{{ScanQueryMatcher#match}} (branch-1) to make sure of read-write concurrency
control. And if we append cell into Memstore before its sequence id got
stamped, scan will see the data it shouldn't have seen. And the UT case
reproduces this scenario.
> mvcc mechanism failed when using mvccPreAssign
> ----------------------------------------------
>
> Key: HBASE-17482
> URL: https://issues.apache.org/jira/browse/HBASE-17482
> Project: HBase
> Issue Type: Bug
> Affects Versions: 2.0..
> Reporter: Allan Yang
> Assignee: Allan Yang
> Priority: Critical
> Attachments: HBASE-17482.patch, HBASE-17482.v2.patch
>
>
> If mvccPreAssign and ASYNC_WAL is used, then cells may have been commited to
> memstore before append thread can stamp seqid to them. The unit test shows
> everything.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)