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]

Reply via email to