Vinod,
Thanks, I was mostly asking in the context of attempting to unify the output of 
multiple tasks.  I've seen that in most cases, users opt to output a folder 
full of file parts into HDFS and then read them directly or unify them later.
John


From: Vinod Kumar Vavilapalli [mailto:[email protected]]
Sent: Friday, May 17, 2013 11:14 AM
To: [email protected]
Subject: Re: Is FileSystem thread-safe?


As of today, there is no atomic append, so no, what you say isn't possible. 
FWIU, it is one appender at a time - achieved through a lease per file, and 
multiple concurrent leases aren't allowed for any given file.

Thanks,
+Vinod Kumar Vavilapalli

On May 17, 2013, at 6:40 AM, John Lilley wrote:


Thanks! Does this also imply that multiple clients may open the same HDFS file 
for append simultaneously, and expect append requests to be interleaved?
john

From: Arpit Agarwal [mailto:[email protected]]
Sent: Monday, April 01, 2013 4:18 PM
To: [email protected]<mailto:[email protected]>
Subject: Re: Is FileSystem thread-safe?

Hi John,

DistributedFileSystem is intended to be thread-safe, true to its name.

Metadata operations are handled by the NameNode server which synchronizes 
concurrent client requests via locks (you can look at the FSNameSystem class).

Some discussion on the thread-safety aspects of HDFS:
http://storageconference.org/2010/Papers/MSST/Shvachko.pdf

-Arpit


On Sun, Mar 31, 2013 at 11:52 AM, Ted Yu 
<[email protected]<mailto:[email protected]>> wrote:
If you look at DistributedFileSystem source code, you would see that it calls 
the DFSClient field member for most of the actions.
Requests to Namenode are then made through ClientProtocol.

An hdfs committer would be able to give you affirmative answer.

On Sun, Mar 31, 2013 at 11:27 AM, John Lilley 
<[email protected]<mailto:[email protected]>> wrote:
From: Ted Yu [mailto:[email protected]<mailto:[email protected]>]
Subject: Re: Is FileSystem thread-safe?
>>FileSystem is an abstract class, what concrete class are you using 
>>(DistributedFileSystem, etc) ?
Good point.  I am calling FileSystem.get(URI uri, Configuration conf) with an 
URI like "hdfs://server:port/..." on a remote server, so I assume it is 
creating a DistributedFileSystem.  However I am not finding any documentation 
discussing its thread-safety (or lack thereof), perhaps you can point me to it?
Thanks, john


Reply via email to