[ 
https://issues.apache.org/jira/browse/HDFS-3425?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13396431#comment-13396431
 ] 

Todd Lipcon commented on HDFS-3425:
-----------------------------------

bq. I am not sure I got the idea about using selectInputStreams() instead of 
if(usesJournalService()). Is your branch currently visible, so we can see an 
example?

That's what I'm working on right now. But basically, the idea is the following:

- the NN runs with just a QuorumJournalManager, which maintains the list of 
remote JournalNodes to talk to. I believe your design doc calls this a 
JournalList instead, but same thing.
- when the NN (or the Standby NN) wants to read edits, it uses 
editLog.selectInputStreams() exactly as it does today. But the 
QuorumJournalManager implementation of it services the call as follows:
-- RPC to each of the remote journals
-- get back a list of finalized edit log segments
-- for each, creates an object which stores the HTTP URL at which that segment 
is accessible, along with the txid info
-- creates an EditLogFileInputStream for each such object, but when opened, 
instead of creating FileInputStream, it opens the URL connection and calls 
getInputStream() on the resulting URL

So, the NN code remains identical, and all the magic is encapsulated in the 
journal manager implementation. This is basically the same as how the 
BookKeeper implementation works today -- the journal manager just has to 
implement selectInputStreams and the rest of the code _should_ work the same 
without special cases.
                
> Enable standby namenode to tail edits from journal service
> ----------------------------------------------------------
>
>                 Key: HDFS-3425
>                 URL: https://issues.apache.org/jira/browse/HDFS-3425
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: ha, name-node
>            Reporter: Brandon Li
>            Assignee: Brandon Li
>         Attachments: HDFS-3425.HDFS-3092.patch, HDFS-3425.HDFS-3092.patch.2
>
>
> In an HA cluster with the journal service configured, namenode should get 
> edit logs from journal service instead of from local or shared storage 
> directories.  
> As one of the first steps towards this goal, this JIRA is to enable standby 
> namenode to tail edits from journal services. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to