[ 
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)

Reply via email to