xkrogen commented on code in PR #4560:
URL: https://github.com/apache/hadoop/pull/4560#discussion_r961189978
##########
hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/qjournal/client/TestQuorumJournalManager.java:
##########
@@ -1101,6 +1113,59 @@ public void testSelectViaRpcTwoJNsError() throws
Exception {
}
}
+ /**
+ * Test selecting EditLogInputStream after some journalNode jitter.
+ * And the corner case as below:
+ * 1. Journal 0 has some abnormal cases when journaling Edits with start
txId 11.
+ * 2. NameNode just ignore the abnormal journal 0 and continue to write
Edits to Journal 1 and 2.
+ * 3. Journal 0 backed to health.
+ * 4. Observer NameNode try to select EditLogInputStream vis PRC with start
txId 21.
+ * 5. Journal 1 has some abnormal cases caused slow response.
+ *
+ * And the expected selecting result is: Response should contain 20 Edits
from txId 21 to txId 40.
+ * Because there is no Edits from id 21 to 40 in the cache of JournalNode0.
Review Comment:
Can we just copy your description from the PR?
> Suppose there are 3 journalNodes, JN0 ~ JN1.
> JN0 has some abnormal cases when Active Namenode is syncing 10 Edits with
first txid 11
NameNode just ignore the abnormal JN0 and continue to sync Edits to Journal
1 and 2
JN0 backed to health
NameNode continue sync 10 Edits with first txid 21.
At this point, there are no Edits 11 ~ 30 in the cache of JN0
Observer NameNode try to select EditLogInputStream through getJournaledEdits
with since txId 21
Journal 2 has some abnormal cases and caused a slow response
The expected result is: Response should contain 20 Edits from txId 21 to
txId 30 from JN1 and JN2. Because Active NameNode successfully write these
Edits to JN1 and JN2 and failed write these edits to JN0.
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]