non file system based implementation of nio.file

Tigran Mkrtchyan tigran.mkrtchyan at desy.de
Sun Jun 15 23:24:56 PDT 2008



Hi Alan,

one of the Chimera goals is to be independent of NFS interface.

I have looked java.nio.File.* and my impression is that it's lot o work 
to make Chimera compatible with new API. Nevertheless it's possible and 
I will definitely try it out. Chimera has FsInodes ( unique file 
identifier ) which , you are right , is something like FileRef. I think 
extending FileRef, FileSystem, and FileSystemProvider is the first step.

I will try to build jdk7 and let you know. I guess it's a good poof for 
the API. Looks very promising.

Thanks,
	Tigran.


Alan Bateman wrote:
> Tigran Mkrtchyan wrote:
>>
>>
>> Hi,
>>
>>
>> I am one of the core developers of dCache project 
>> (http://www.dcache.org). We providing a distributed storage solution 
>> for High Energy Physics and currently dCache deployed on large number 
>> of national labs across the world.
>>
>> To make long story short.  The key point of dCache design is single 
>> name space with distributed data servers.  The namespace ( called 
>> Chinera ) is a  filesystem simulated on top of relational database . 
>> Every thing is pure java. On top of our API we implement several front 
>> ends - http server, file borwser, NFSv3 and NFSv4.1 and of course 
>> interface for dCache. To overcome limitations of standard java.io.File 
>> we have written lot of classes to cover symbolic links, NFSv4 ACLs, 
>> Unix-like stat, iterator over directory entries and so on.
>>
>> By looking at JavaOne presentations I find out that java7 will have 
>> most of it in core API. For us it makes sence to replace home grown 
>> staff with one which comes with java ( I have to support less code :) 
>> ). But we are currently in production and lot of labs still uses 
>> java5. For us it means that is we start to use interfaces from java7 
>> we have to include them into our distribution.
>>
>> As I understand, the code is distributed under GPLv2.
>>
> The dCache project looks very interesting but I don't think I have a 
> sufficient overview to say too much. If I understand correctly, Chimera 
> can act as an NFS server and so would be transparent to both native and 
> java applications where the file system is mounted. At the same time, I 
> see on one of your pages that the NFS interface is only for name space 
> operations in which case I/O to the files will not work - is that 
> correct? If so, then I assume there is a client or other library 
> required to access the "file system" - is that right? In that case, then 
> the provider interface in our API may be useful as it allows you to use 
> the API with other file system implementations. Do you perform 
> operations on files that differ from traditional I/O? I ask as perhaps 
> you will require some dCache specific extensions for those. I notice ID 
> <-> name space mapping which suggests to me that you access files by ID 
> rather than paths. This may require extending FileRef with operations 
> that access the file by ID for example.
> 
> As regards versions - yes, this API is in the works for Java SE 7. It 
> would be good to see if it meets your needs. The source code is indeed 
> GPLv2 (+ classpath exception) but we will have early access binaries 
> very soon. The API and implementation are still in development so there 
> will be ongoing change/refinement for a while. There isn't any plans to 
> release a standalone version for use with shipping JDK releases but 
> Kevin Bourrillion from Google is exploring this with a view to a 
> backport of the file system API on Linux.
> 
> -Alan.
> 
> 

-- 
________________________________________________________________________
Tigran Mkrtchyan                               DESY, IT,
tigran.mkrtchyan at desy.de                       Notkestrasse 85,
Tel: + 49 40 89983946                          Hamburg 22607,
Fax: + 49 40 89984429                          Germany.



More information about the nio-dev mailing list