Apache9 commented on code in PR #5241:
URL: https://github.com/apache/hbase/pull/5241#discussion_r1204135387
##########
hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestMetaRegionReplicaReplicationEndpoint.java:
##########
@@ -225,6 +227,38 @@ public void
testCatalogReplicaReplicationWithFlushAndCompaction() throws Excepti
}
}
+ @Test
+ public void testCatalogReplicaReplicationWALRolledAndDeleted() throws
Exception {
+ Connection connection =
ConnectionFactory.createConnection(HTU.getConfiguration());
+ TableName tableName = TableName.valueOf("hbase:meta");
+ Table table = connection.getTable(tableName);
+ try {
+ MiniHBaseCluster cluster = HTU.getHBaseCluster();
+ HRegionServer hrs =
cluster.getRegionServer(cluster.getServerHoldingMeta());
+ ReplicationSource source = (ReplicationSource)
hrs.getReplicationSourceService()
+ .getReplicationManager().catalogReplicationSource.get();
+ ((ReplicationPeerImpl) source.replicationPeer).setPeerState(false);
+ // load the data to the table
+ for (int i = 0; i < 5; i++) {
+ LOG.info("Writing data from " + i * 1000 + " to " + (i * 1000 + 1000));
+ HTU.loadNumericRows(table, HConstants.CATALOG_FAMILY, i * 1000, i *
1000 + 1000);
+ LOG.info("flushing table");
+ HTU.flush(tableName);
+ LOG.info("compacting table");
+ if (i < 4) {
+ HTU.compact(tableName, false);
+ }
+ }
+
HTU.getHBaseCluster().getMaster().getLogCleaner().triggerCleanerNow().get(1,
+ TimeUnit.SECONDS);
+ ((ReplicationPeerImpl) source.replicationPeer).setPeerState(true);
+ verifyReplication(tableName, numOfMetaReplica, 0, 5000,
HConstants.CATALOG_FAMILY);
Review Comment:
What I mean is that, for meta replication, the reason why we can just drop
the WAL is because we can reload the hfiles from the filesystem if data have
already been flushed out. So here, since the data have already been flushed
out, even if the replication is stuck forever, it is still possible that we
could read the data from the secondary replica, as all the data are in hfiles
now. So I think we'd better load some data again, to make sure that even if the
data is not in hfile, we could still read it, i.e, the replication is sitll
alive.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]