NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
Hi Doug, > I'm looking for an efficient way to store data on disk for quick access > via VisAD. My data look something like: > > time -> ( (x,y,z) -> (a,b,c) ) > > and I'd like to cache a subset of the time samples for optimal performace. > > I assume I want to use FileField (or FileFlatField?) but I'm not sure > how to proceed. You can ignore FileField unless you plan to create a new implementation of Form that manages data caching between disk and memory. > I intend to have a "server" with a large amount of data > available via RemoteDataReferences. I'd populate the server by reading > in data the usual way then dumping them to files. One big question is > how should I create those files and read them. Should I use VisAD > serialized or binary format (via VisADForm) or should I roll my own > format and maybe use java.nio's memory-mapped IO? For fastest performance I recommend VisADSerialForm, as long as your Data objects fit in memory. Note that constructing a VisADSerialForm is the same as constructing a VisADForm with the 'boolean allowBinary' argument = false. These save Data using Java serialization. It wouldn't be hard to write a new Form that combined Java serialization with java.nio's memory-mapped IO. Your new Form would have open() and save() methods that modified the logic of the saveSerial() and readSerial() methods of VisADForm.java to use java.nio. > It would help if I understood the difference between a Form (e.g. > VisADForm) and a FileAccessor. You can ignore FileAccessor unless you plan to create a new implementation of Form that explicitly manages the locations of sub-objects in disk files. If you are using Java serialization you can ignore FileAccessor and FileField. Good luck, Bill
visad
archives: