public class TestRegionReplicationForFlushMarker extends Object
Modifier and Type | Class and Description |
---|---|
static class |
TestRegionReplicationForFlushMarker.ErrorReplayRSRpcServices |
static class |
TestRegionReplicationForFlushMarker.HRegionForTest |
static class |
TestRegionReplicationForFlushMarker.RSForTest |
Modifier and Type | Field and Description |
---|---|
static HBaseClassTestRule |
CLASS_RULE |
private static byte[] |
FAMILY |
private static HBaseTestingUtil |
HTU |
private static int |
NB_SERVERS |
private static byte[] |
QUAL |
private static boolean |
startTest |
private static org.apache.hadoop.hbase.TableName |
tableName |
Constructor and Description |
---|
TestRegionReplicationForFlushMarker() |
Modifier and Type | Method and Description |
---|---|
private TestRegionReplicationForFlushMarker.HRegionForTest[] |
createTable() |
static void |
setUp() |
static void |
tearDown() |
void |
testCannotFlushMarker()
This test is for HBASE-26960, before HBASE-26960,
MemStoreFlusher does not write the
WALProtos.FlushDescriptor.FlushAction.CANNOT_FLUSH marker to the WAL when the memstore is empty,so if the
RegionReplicationSink request a flush when the memstore is empty, it could not receive
the WALProtos.FlushDescriptor.FlushAction.CANNOT_FLUSH and the replication may be hanged. |
public static final HBaseClassTestRule CLASS_RULE
private static final byte[] FAMILY
private static final byte[] QUAL
private static final HBaseTestingUtil HTU
private static final int NB_SERVERS
private static org.apache.hadoop.hbase.TableName tableName
private static volatile boolean startTest
public TestRegionReplicationForFlushMarker()
public void testCannotFlushMarker() throws Exception
MemStoreFlusher
does not write the
WALProtos.FlushDescriptor.FlushAction.CANNOT_FLUSH
marker to the WAL when the memstore is empty,so if the
RegionReplicationSink
request a flush when the memstore is empty, it could not receive
the WALProtos.FlushDescriptor.FlushAction.CANNOT_FLUSH
and the replication may be hanged. After HBASE-26768,when
the RegionReplicationSink
request a flush when the memstore is empty,even it does not
writes the WALProtos.FlushDescriptor.FlushAction.CANNOT_FLUSH
marker to the WAL,we also replicate the
WALProtos.FlushDescriptor.FlushAction.CANNOT_FLUSH
marker to the secondary region replica.Exception
private TestRegionReplicationForFlushMarker.HRegionForTest[] createTable() throws Exception
Exception
Copyright © 2007–2020 The Apache Software Foundation. All rights reserved.