[ https://issues.apache.org/jira/browse/HBASE-18128?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16046183#comment-16046183 ]
Ted Yu commented on HBASE-18128: -------------------------------- Why is the following condition removed ? {code} - if (lastFlushedSequenceId >= entry.getKey().getSequenceId()) { - editsSkipped++; {code} {code} +@Category({ RegionServerTests.class, SmallTests.class }) public class TestCompactionMarker { {code} Move the class declaration to second line. {code} + private final static Log LOG = LogFactory.getLog(TestWALSplit.class); {code} Wrong class name. {code} + @BeforeClass public static void setUpBeforeClass() throws Exception { {code} Leave annotation on one line and method declaration on second line - applies to other methods in the test. > compaction marker could be skipped > ----------------------------------- > > Key: HBASE-18128 > URL: https://issues.apache.org/jira/browse/HBASE-18128 > Project: HBase > Issue Type: Improvement > Components: Compaction, regionserver > Reporter: Jingyun Tian > Assignee: Jingyun Tian > Attachments: HBASE-18128-master.patch, HBASE-18128-master-v2.patch, > TestCompactionMarker.java > > > The sequence for a compaction are as follows: > 1. Compaction writes new files under region/.tmp directory (compaction output) > 2. Compaction atomically moves the temporary file under region directory > 3. Compaction appends a WAL edit containing the compaction input and output > files. Forces sync on WAL. > 4. Compaction deletes the input files from the region directory. > But if a flush happened between 3 and 4, then the regionserver crushed. The > compaction marker will be skipped when splitting log because the sequence id > of compaction marker is smaller than lastFlushedSequenceId. > {code} > if (lastFlushedSequenceId >= entry.getKey().getLogSeqNum()) { > editsSkipped++; > continue; > } > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)