hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sanjay Radia (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-3077) Quorum-based protocol for reading and writing edit logs
Date Tue, 09 Oct 2012 01:04:08 GMT

    [ 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

Mime
View raw message