Reliable and efficient data storage is a major concern in the modern computer industry. This type of storage is mainly provided by magnetic and optical devices, the most common being the traditional magnetic disks. However, since processor performance improves at a higher rate than disk performance, the cost of a disk access (measured in processor cycles) continues to increase with time. As a result, several applications whose effective execution depends on low latency access to their files, are going to suffer an increasingly high performance penalty if they store their data on traditional magnetic disks. Such applications include transaction-based systems, visualization systems, web servers, web proxies, compilers, etc.
Several file systems [20, 22, 25] attempt to speedup file accesses by using a portion of the file server's main memory as a disk cache. Unfortunately, such caches can not be larger than a single workstation's main memory. To overcome this memory size limitation, research file systems use all client and server caches in a NOW as a single cooperative cache [1]. Unfortunately, such file systems are not widespread yet, and their principles have not been incorporated into commercial operating systems.
In our study we describe a new device, the Network RamDisk, which attacks the high latency problem in a very convenient manner. A Network RamDisk is a block device that consists of the all idle main memories in a Network of Workstations (NOW). It behaves like any other disk, allowing the creation of files and file systems on top of it. However, since it is implemented in main memory (RAM), it provides lower latency and higher bandwidth than most traditional magnetic disks.
In this paper, we propose to organize the (otherwise unused) client and server memories of a NOW, into a Network RamDisk. Idle workstations donate their memory which will be used to store a portion of the Network RamDisk. When an application reads a file, the file system (e.g. NFS, UFS) requests a block from the device driver of the Network RamDisk. The driver knows in which workstation's main memory the block resides, asks the workstation for this block, and returns the requested block. Write operations proceed in the same way. Since block accesses involve only memory and interconnection network transfers, they proceed with low latency and high bandwidth. For example, typical disk latency is around 10 ms, while typical network latency is around 1 ms. Modern interconnection networks provide latency as low as a few microseconds [4, 6, 14, 17, 19]. Thus, Network RamDisks may result in significant performance improvements over magnetic disks, especially when application performance depends on latency.
The Network RamDisk, much like network memory file systems [1, 15] exploits network memory to avoid magnetic disk I/O, but unlike these file systems, the Network RamDisk, being a device driver, can be easily incorporated into any environment, without modifying existing operating system sources, or changing file systems. Thus, by using a Network RamDisk, users will be able to exploit all network memory to store their files, without changing their operating system, or their file system. For example, files created on a Network RamDisk can be accessed through any file system, e.g. NFS. NFS will not be aware of the fact that the files do not reside on magnetic disk.
The rest of the paper is organized as follows: Section 2 present the design of a Network RamDisk. Section 3 describes the implementations of two Network RamDisk clients as device drivers of the Digital Unix 4.0 and the Linux operating systems, and several Network RamDisk servers. Section 4 presents our experiments and performance results with the Digital Unix NRD client over the Ethernet interconnection network, and the Linux NRD client over the ATM interconnection network. Section 5 presents related work, while section 6 presents our conclusions.