Return-Path: Delivered-To: apmail-hadoop-hdfs-issues-archive@minotaur.apache.org Received: (qmail 42331 invoked from network); 6 Apr 2011 17:13:46 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 6 Apr 2011 17:13:46 -0000 Received: (qmail 58788 invoked by uid 500); 6 Apr 2011 17:13:46 -0000 Delivered-To: apmail-hadoop-hdfs-issues-archive@hadoop.apache.org Received: (qmail 58755 invoked by uid 500); 6 Apr 2011 17:13:46 -0000 Mailing-List: contact hdfs-issues-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: hdfs-issues@hadoop.apache.org Delivered-To: mailing list hdfs-issues@hadoop.apache.org Received: (qmail 58720 invoked by uid 99); 6 Apr 2011 17:13:46 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 06 Apr 2011 17:13:46 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 06 Apr 2011 17:13:44 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id B585795088 for ; Wed, 6 Apr 2011 17:13:06 +0000 (UTC) Date: Wed, 6 Apr 2011 17:13:06 +0000 (UTC) From: "Ivan Kelly (JIRA)" To: hdfs-issues@hadoop.apache.org Message-ID: <126309482.38231.1302109986740.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <1826418763.13691.1299240756959.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Updated] (HDFS-1725) Set storage directories only at FSImage construction (was Cleanup FSImage construction) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/HDFS-1725?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ivan Kelly updated HDFS-1725: ----------------------------- Attachment: HDFS-1725.patch > Set storage directories only at FSImage construction (was Cleanup FSImage construction) > --------------------------------------------------------------------------------------- > > Key: HDFS-1725 > URL: https://issues.apache.org/jira/browse/HDFS-1725 > Project: Hadoop HDFS > Issue Type: Sub-task > Reporter: Ivan Kelly > Assignee: Ivan Kelly > Fix For: Edit log branch (HDFS-1073) > > Attachments: HDFS-1725-review-guide.pdf, HDFS-1725.diff, HDFS-1725.diff, HDFS-1725.diff, HDFS-1725.diff, HDFS-1725.diff, HDFS-1725.diff, HDFS-1725.patch > > > HDFS-1580 proposes extending FSEditLog to allow it to use editlog streams which are not backed by StorageDirectory. Currently, to set the the directories used for edits, NNStorage#setStorageDirectory is called with a list of URIs as the second argument. NNStorage takes this list or URIs, takes all file:/// URIs and adds them to its StorageDirectory list. Then, when opened, FSEditLog will request a list of StorageDirectories from NNStorage and create a list of EditLogOutputStreams based on these. > This approach cannot work with HDFS-1580. NNStorage exists solely to deal with filesystem based storage. As such, only StorageDirectories can be retrieved from NNStorage by FSEditLog. So, FSEditLog should get the URI from some place other than NNStorage. This presents a further problem, in that, NNStorage#setStorageDirectories is the current way of setting the URIs for images and edits. This call can happen at any time, so the directories in NNStorage can change at any time. If FSEditLog is to get its URIs from elsewhere, this opens up the risk of the filesystem directories in NNStorage and filesystem URIs being out of sync. > A solution to this is to stipulate that the URIs for NNStorage are set only once, on construction. All proper uses of NNStorage#setStorageDirectories are being called just after construction of the image in any case. All other cases are using NNStorage#setStorageDirectories not to set the storage directories, but for the side effects of this call. This guide explains these other cases. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira