@InProceedings{tierney:cache, author = {Brian L. Tierney and Jason Lee and Brian Crowley and Mason Holding and Jeremy Hylton and Fred L. {Drake, Jr.}}, title = {A Network-Aware Distributed Storage Cache for Data-Intensive Environments}, booktitle = {Proceedings of the Eighth IEEE International Symposium on High Performance Distributed Computing}, year = {1999}, month = {August}, pages = {185--193}, publisher = {IEEE Computer Society Press}, address = {Redondo Beach, CA}, URL = {http://computer.org/conferen/proceed/hpdc/0287/02870033abs.htm}, keywords = {distributed cache, distributed computing, grid, input/output, network-aware, parallel I/O, pario-bib}, abstract = {Modern scientific computing involves organizing, moving, visualizing, and analyzing massive amounts of data at multiple sites around the world. The technologies, the middleware services, and the architectures that are used to build useful high-speed, wide area distributed systems, constitute the field of data intensive computing. In this paper we will describe an architecture for data intensive applications where we use a high-speed distributed data cache as a common element for all of the sources and sinks of data. This cache-based approach provides standard interfaces to a large, application-oriented, distributed, on-line, transient storage system. We describe our implementation of this cache, how we have made it "network aware," and how we do dynamic load balancing based on the current network conditions. We also show large increases in application throughput by access to knowledge of the network conditions.}, comment = {They discuss their implemetation of a "netowork aware" data cache (Distributed Parallel Storage System) that adapts to changing network conditions. The system itself looks much like the Galley File System. The client library is multi-threaded with a client thread for each DPSS server. A DPSS server is composed of a a block request thread, a block writer thread, a shared disk cache and a reader thread for each disk. Block requests move into the shared cache from the disks. A DPSS master directs the clients requests to an appropriate DPSS server. They use Java agents to monitor network performance and use a data replication for load balancing. A minimum cost flow algorithm is run each time a client request arrives to detirmine the best place to retrieve the data block. They argue that since the algorithm is fast (< 1 ms), the overhead of the algorithm is not significant.} }