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

Sanjay Radia commented on HDFS-3077:
------------------------------------

Comments so far:
* JournalNode States - I am a little confused about how the state of JN is 
captured in the code.
** The "inWritingState" seems to be captured by  (curSegment != null) - this is 
used fairly often, lets hide this behind a method isJournalSegmentOpen(...)
** The journal state should be more concrete: Init, writing, recovering 
(perhaps more than one recovering states)

* JournalNodes joining a pack
Can you please explain the following two cases
** a JournalNode (previously down) that is joining  a set of other JNs  
especially when the others are in writing mode.
** a new JournalNode join the pack.

* Exceptions
** journal operation (ie write)
shouldn't this thrown EpochException/FencedException" -- this exception is 
critical so that client side does not retry the operation.
        (perhaps this can be a EpochException which is turned into a 
FencedException on client side.)
** Should there be some other more concrete exception that are subclasses of 
IOException?

* AsyncLogger
  JavaDoc states "This is essentially a wrapper around {@link QJournalProtocol} 
with the key differences being ..."
  Should this be "This is essentially a wrapper around {@link JournalManager } 
with the key differences being ..."

* Javadoc
** QJM contructor - document at least the URI.
** Qprotocol - some methods do not have the parameters documented. Referring to 
the doc is fine for method semantics in some cases.
** RequestInfo - document parameters
** Javadoc for class Journal:
A JournalNode can manage journals for several independent NN namespaces.
The Journal class implements a single journal  i.e. the part that stores the 
journal transactions persistently.
Each such journal (identified by a journal id) is entirely independent despite 
being hosted by
a single journalNode daemon (ie the same JVM).
                
> Quorum-based protocol for reading and writing edit logs
> -------------------------------------------------------
>
>                 Key: HDFS-3077
>                 URL: https://issues.apache.org/jira/browse/HDFS-3077
>             Project: Hadoop HDFS
>          Issue Type: New Feature
>          Components: ha, name-node
>            Reporter: Todd Lipcon
>            Assignee: Todd Lipcon
>             Fix For: QuorumJournalManager (HDFS-3077)
>
>         Attachments: hdfs-3077-partial.txt, hdfs-3077-test-merge.txt, 
> hdfs-3077.txt, hdfs-3077.txt, hdfs-3077.txt, hdfs-3077.txt, hdfs-3077.txt, 
> hdfs-3077.txt, hdfs-3077.txt, qjournal-design.pdf, qjournal-design.pdf, 
> qjournal-design.pdf, qjournal-design.pdf, qjournal-design.pdf, 
> qjournal-design.pdf, qjournal-design.tex, qjournal-design.tex
>
>
> Currently, one of the weak points of the HA design is that it relies on 
> shared storage such as an NFS filer for the shared edit log. One alternative 
> that has been proposed is to depend on BookKeeper, a ZooKeeper subproject 
> which provides a highly available replicated edit log on commodity hardware. 
> This JIRA is to implement another alternative, based on a quorum commit 
> protocol, integrated more tightly in HDFS and with the requirements driven 
> only by HDFS's needs rather than more generic use cases. More details to 
> follow.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to