Nothing Special   »   [go: up one dir, main page]

skip to main content
article
Free access

Caching in the Sprite network file system

Published: 01 November 1987 Publication History

Abstract

This paper describes a simple distributed mechanism for caching files among a networked collection of workstations. We have implemented it as part of Sprite, a new operating system being implemented at the University of California at Berkeley. A preliminary version of Sprite is currently running on Sun-2 and Sun-3 workstations, which have about 1-2 MIPS processing power and 4-16 Mbytes of main memory. The system is targeted for workstations like these and newer models likely to become available in the near future; we expect the future machines to have at least five to ten times the processing power and main memory of our current machines, as well as small degrees of multiprocessing. We hope that Sprite will be suitable for networks of up to a few hundred of these workstations. Because of economic and environmental factors, most workstations will not have local disks; instead, large fast disks will be concentrated on a few server machines.
In Sprite, file information is cached in the main memories of both servers (workstations with disks), and clients (workstations wishing to access files on non-local disks). On machines with disks, the caches reduce disk-related delays and contention. On clients, the caches also reduce the communication delays that would otherwise be required to fetch blocks from servers. In addition, client caches reduce contention for the network and for the server machines. Since server CPUs appear to be the bottleneck in several existing network file systems [SATY85, LAZO86], client caching offers the possibility of greater system scalability as well as increased performance.
Sprite uses the file servers as centralized control points for cache consistency. Each server guarantees cache consistency for all the files on its disks, and clients deal only with the server for a file: there are no direct client-client interactions. The Sprite algorithm depends on the fact that the server is notified whenever one of its files is opened or closed, so it can detect when concurrent write-sharing is about to occur.
Sprite handles sequential write-sharing using version numbers. When a client opens a file, the server returns the current version number for the file, which the client compares to the version number associated with its cached blocks for the file. If they are different, the file must have been modified recently on some other workstation, so the client discards all of the cached blocks for the file and reloads its cache from the server when the blocks are needed. The delayed-write policy used by Sprite means that the server doesn't always have the current data for a file (the last writer need not have flushed dirty blocks back to the server when it closed the file). Servers handle this situation by keeping track of the last writer for each file; when a client other than the last writer opens the file, the server forces the last writer to write all its dirty blocks back to the server's cache. This guarantees that the server has up-to-date information for a file whenever a client needs it.
The file system module and the virtual memory module each manage a separate pool of physical memory pages. Virtual memory keeps its pages in approximate LRU order through a version of the clock algorithm [NELS86]. The file system keeps its cache blocks in perfect LRU order since all block accesses are through the “read” and “write” system calls. Each system keeps a time-of-last-access for each page or block. Whenever either module needs additional memory (because of a page fault or a miss in the file cache), it compares the age of its oldest page with the age of the oldest page from the other module. If the other module has the oldest page, then it is forced to give up that page; otherwise the module recycles its own oldest page.
We used a collection of benchmark programs to measure the performance of the Sprite file system. On average, client caching resulted in a speedup of about 10-40% for programs running on diskless workstations, relative to diskless workstations without client caches. With client caching enabled, diskless workstations completed the benchmarks only 0-12% more slowly than workstations with disks. Client caches reduced the server utilization from about 5-18% per active client to only about 1-9% per active client. Since normal users are rarely active, our measurements suggest that a single server should be able to support at least 50 clients.
We also compared the performance of Sprite to both the Andrew file system [SATY85] and Sun's Network File System (NFS) [SAND85]. We did this by executing the Andrew file system benchmark [HOWA87] concurrently on multiple Sprite clients and comparing our results to those presented in [HOWA87] for NFS and Andrew. For a single client, Sprite is about 30% faster than NFS and about 35% faster than Andrew. As the number of concurrent clients increased, the NFS server quickly saturated. The Andrew system showed the greatest scalability: each client accounted for only about 2.4% server CPU utilization, vs. 5.4% in Sprite and over 20% in NFS.

References

[1]
Howard, J.H., et al. "Scale and Performance in a Distributed File System." ACM Transactions on Computer Systems, to appear.
[2]
Lazowska, E.D., Zahorjan, J., Cheriton, D., and Zwaenepoel, W. "File Access Performance of Diskless Workstations." A CM Transactions on Computer Systems, Vol. 4, No. 3, August 1986, pp. 238-268.
[3]
Nelson, M. "Virtual Memory for the Sprite Operating System." Technical Report UCB/CSD 86/301, Computer Science Division (EECS), University of California, Berkeley, 1986.
[4]
Sandberg, R. et al. "Design and Implementation of the Sun Network File, system." Proceedings of the USENIX 1985 Summer Conference, June 1985, pp. 119-130.
[5]
Satyanarayanan, M. et al. "The ITC Distributed File System: Principles and Design." Proceedings of the l Oth Symposium on Operating Systems Principles, December 1985, pp. 35-50.

Cited By

View all
  • (2013)An update-based step-wise optimal cache replacement for wireless data accessComputer Networks: The International Journal of Computer and Telecommunications Networking10.1016/j.comnet.2012.09.01257:1(197-212)Online publication date: 1-Jan-2013
  • (2012)A bandwidth and effective hit optimal cache scheme for wireless data access networks with client injected updatesComputer Networks: The International Journal of Computer and Telecommunications Networking10.1016/j.comnet.2012.02.01556:7(2080-2095)Online publication date: 1-May-2012
  • (2011)OUR: Optimal Update‐based Replacement policy for cache in wireless data access networks with optimal effective hits and bandwidth requirementsWireless Communications and Mobile Computing10.1002/wcm.118213:15(1337-1352)Online publication date: 23-Aug-2011
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGOPS Operating Systems Review
ACM SIGOPS Operating Systems Review  Volume 21, Issue 5
Nov. 1987
162 pages
ISSN:0163-5980
DOI:10.1145/37499
Issue’s Table of Contents
  • cover image ACM Conferences
    SOSP '87: Proceedings of the eleventh ACM Symposium on Operating systems principles
    November 1987
    162 pages
    ISBN:089791242X
    DOI:10.1145/41457
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 November 1987
Published in SIGOPS Volume 21, Issue 5

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)94
  • Downloads (Last 6 weeks)19
Reflects downloads up to 25 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2013)An update-based step-wise optimal cache replacement for wireless data accessComputer Networks: The International Journal of Computer and Telecommunications Networking10.1016/j.comnet.2012.09.01257:1(197-212)Online publication date: 1-Jan-2013
  • (2012)A bandwidth and effective hit optimal cache scheme for wireless data access networks with client injected updatesComputer Networks: The International Journal of Computer and Telecommunications Networking10.1016/j.comnet.2012.02.01556:7(2080-2095)Online publication date: 1-May-2012
  • (2011)OUR: Optimal Update‐based Replacement policy for cache in wireless data access networks with optimal effective hits and bandwidth requirementsWireless Communications and Mobile Computing10.1002/wcm.118213:15(1337-1352)Online publication date: 23-Aug-2011
  • (2020)Share File Updating for Test Farms Using a File Cache2020 IEEE Infrastructure Conference10.1109/IEEECONF47748.2020.9377623(1-4)Online publication date: 7-Oct-2020
  • (2005)Providing tunable consistency for a parallel file storeProceedings of the 4th conference on USENIX Conference on File and Storage Technologies - Volume 410.5555/1251028.1251030(2-2)Online publication date: 13-Dec-2005
  • (1993)On-line algorithms for cache sharingProceedings of the twenty-fifth annual ACM symposium on Theory of Computing10.1145/167088.167205(422-430)Online publication date: 1-Jun-1993
  • (1992)Effect of system dynamics on coupling architectures for transaction processing[1992] Eighth International Conference on Data Engineering10.1109/ICDE.1992.213163(458-469)Online publication date: 1992
  • (1989)Exploiting read-mostly workloads in the FileNet file systemACM SIGOPS Operating Systems Review10.1145/74851.7485723:5(58-70)Online publication date: 1-Nov-1989
  • (1989)Exploiting read-mostly workloads in the FileNet file systemProceedings of the twelfth ACM symposium on Operating systems principles10.1145/74850.74857(58-70)Online publication date: 1-Nov-1989
  • (1988)Efficient and realistic simulation of disk cache performanceProceedings of the 21st annual symposium on Simulation10.5555/62351.62378(131-141)Online publication date: 3-Jan-1988

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media