[
https://issues.apache.org/jira/browse/HBASE-17373?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15782585#comment-15782585
]
Eshcar Hillel commented on HBASE-17373:
---------------------------------------
[~ted_yu] patch is attached, and also a link to review board.
The bug is fixed. Now both when pushing the tail of the pipeline or the entire
pipeline to snapshot first the segment(s) is pointed from snapshot and only
then it is removed from the pipeline so read operation can always see the data,
and they might read the same data in the pipeline and in the snapshot for a
very short period.
I re-used the versioned list and swap methods that are used by the compaction.
TestAsyncTableGetMultiThreaded that revealed the bug is extended so that it
runs with NONE, BASIC and Eager compaction.
In addition the background gets in the test now read the entire data
sequentially to make sure no data is never lost.
> Reverse the order of snapshot creation in the CompactingMemStore
> ----------------------------------------------------------------
>
> Key: HBASE-17373
> URL: https://issues.apache.org/jira/browse/HBASE-17373
> Project: HBase
> Issue Type: Sub-task
> Reporter: Anastasia Braginsky
> Assignee: Eshcar Hillel
> Attachments: HBASE-17373-V01.patch
>
>
> In CompactingMemStore both in BASIC and EAGER cases when snapshot is created
> the segments are first removed from the pipeline then added to the snapshot.
> This is the opposite to what is done in the DefaultMemStore where the
> snapshot is firstly created with the active segment and only after the active
> segment is refreshed. This JIRA is about to reverse the order in
> CompactingMemStore and to make all MemStores to behave the same.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)