non file system based implementation of nio.file

Alan Bateman Alan.Bateman at Sun.COM
Sun Jun 15 03:05:27 PDT 2008


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.





More information about the nio-dev mailing list