[ https://issues.apache.org/jira/browse/HDFS-6038?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13931234#comment-13931234 ]
Todd Lipcon commented on HDFS-6038: ----------------------------------- I didn't look at the code in detail, but the design approach of length-prefixing the edits seems reasonable. My only feedback might be that it would have been nicer to do that change in a JIRA labeled as such, and then make the JN change separately. But I'm not against doing it all here -- just worried that other contributors may want to review this patch as it's actually making an edit log format change, not just a protocol change for the JNs. I also noticed a spot or two where you are missing a finally { IOUtils.closeStream(...); } -- might be worth checking for that before committing. In terms of testing, it might be nice to add a QJM test which writes "fake" ops to a JournalNode -- ie ops with garbage data but a correct length and checksum. Perhaps you could do this by changing QJMTestUtil.writeOp() to write a garbage op? > JournalNode hardcodes NameNodeLayoutVersion in the edit log file > ---------------------------------------------------------------- > > Key: HDFS-6038 > URL: https://issues.apache.org/jira/browse/HDFS-6038 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: journal-node, namenode > Reporter: Haohui Mai > Assignee: Jing Zhao > Attachments: HDFS-6038.000.patch, HDFS-6038.001.patch, > HDFS-6038.002.patch, HDFS-6038.003.patch, HDFS-6038.004.patch, > HDFS-6038.005.patch, HDFS-6038.006.patch, HDFS-6038.007.patch, editsStored > > > In HA setup, the JNs receive edit logs (blob) from the NN and write into edit > log files. In order to write well-formed edit log files, the JNs prepend a > header for each edit log file. > The problem is that the JN hard-codes the version (i.e., > {{NameNodeLayoutVersion}} in the edit log, therefore it generates incorrect > edit logs when the newer release bumps the {{NameNodeLayoutVersion}} during > rolling upgrade. -- This message was sent by Atlassian JIRA (v6.2#6252)