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

Konstantin Shvachko commented on HDFS-1071:
-------------------------------------------

> saveNamespace can only be done when in safemode, so we are only performing 
> read operations on the datastructure that is essentially read only

Yes you can saveNamespace only only in safe mode, but the data structures are 
not read only. For example, {{getBlockLocations()}} updates {{accessTime}} for 
file inodes. This means that different threads in your implementation may 
record different atimes of the same file, depending on when they write it. This 
means that file system images will not be identical in different directories. 
They have been so far.

> while the parent thread is holding a lock, right?

Are you relying on the parent thread lock? Could you please explain how that 
works?

In fact I thought you would implement something like this: one thread traverses 
the tree, serializes image objects and puts them into a queue, where other 
writing threads pick them up and write to disk in parallel. Then it is 
guaranteed that images are exactly the same.

> so it will take 1.5-2 minutes for both.

Have you actually tested it? Is it the same if both directories are on the same 
drive?

> savenamespace should write the fsimage to all configured fs.name.dir in 
> parallel
> --------------------------------------------------------------------------------
>
>                 Key: HDFS-1071
>                 URL: https://issues.apache.org/jira/browse/HDFS-1071
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: name-node
>            Reporter: dhruba borthakur
>            Assignee: Dmytro Molkov
>         Attachments: HDFS-1071.2.patch, HDFS-1071.3.patch, HDFS-1071.4.patch, 
> HDFS-1071.5.patch, HDFS-1071.patch
>
>
> If you have a large number of files in HDFS, the fsimage file is very big. 
> When the namenode restarts, it writes a copy of the fsimage to all 
> directories configured in fs.name.dir. This takes a long time, especially if 
> there are many directories in fs.name.dir. Make the NN write the fsimage to 
> all these directories in parallel.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to