hadoop-hdfs-issues mailing list archives

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

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

Suresh Srinivas commented on HDFS-3077:
---------------------------------------

I wanted to avoid two threads of discussions going on at the same time...

bq. But, I'm not sure it's simpler or more robust. My reasoning is that starting a new epoch
(thus fencing the prior writer) is semantically different than beginning recovery for a particular
segment. So I think it's clearer to put them in different pieces of code, even if they could
be piggy-backed one on top of the other for future round trips.
I think it is more robust because of less number of messages. Lets say it is not more robust
- at least now the protocol is starts looking more relatable to ZAB/Paxos. {{NEWEPOCH + ACK}}
in ZAB or {{Prepare + Promise}} in paxos indeed fences/prevents the writer with older epoch.
So I am not sure separation of fencing makes the design clearer. In my case it was the opposite.

bq. Another reason is that the current separation allows correct behavior in the face of IPC
retries on PrepareRecovery, since PrepareRecovery is idempotent. NewEpoch is necessarily not
idempotent, because it is the one IPC that requires a strictly greater epoch id (in order
to preserve uniqueness of epochs). This means that, if there's some timeout prepare phase,
we can safely add retries a few times to get past it, while such a policy doesn't work on
NewEpoch.
I did not understand this well. Why are we retrying any request to JournalNodes? Given most
of the requests are not idempotent and cannot be retried why is this an advantage?
                
> 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