Abstract
As the performance gap between disks and micropocessors continues to increase, effective utilization of the file cache becomes increasingly immportant. Application-controlled file caching and prefetching can apply application-specific knowledge to improve file cache management. However, supporting application-controlled file caching and prefetching is nontrivial because caching and prefetching need to be integrated carefully, and the kernel needs to allocate cache blocks among processes appropriately. This article presents the design, implementation, and performance of a file system that integrates application-controlled caching, prefetching, and disk scheduling. We use a two-level cache management strategy. The kernel uses the LRU-SP (Least-Recently-Used with Swapping and Placeholders) policy to allocate blocks to processes, and each process integrates application-specific caching and prefetching based on the controlled-aggressive policy, an algorithm previously shown in a theoretical sense to be nearly optimal. Each process also improves its disk access latency by submittint its prefetches in batches so that the requests can be scheduled to optimize disk access performance. Our measurements show that this combination of techniques greatly improves the performance of the file system. We measured that the running time is reduced by 3% to 49% (average 26%) for single-process workloads and by 5% to 76% (average 32%) for multiprocess workloads.
- ANDERSON, T. E., BERSHAD, B. N., LAZOWSKA, E. D., AND LEVY, H. M. 1992. Scheduler activations: Effective kernel support for the user-level management of parallelism. ACM Trans. Comput. Syst. 10, 1 (Feb.), 53-79.]] Google Scholar
- CAO, P. 1996. Application-controlled file caching and prefetching. Ph.D. thesis, Princeton Univ., Princeton, N.J. Also appeared as Tech. Rep. CS-TR-522-96, Princeton Univ.]] Google Scholar
- CAO, P., FELTEN, E. W., KARLIN, A. R., AND LI, K. 1995. A study of integrated prefetching and caching strategies. In Proceedings of 1995 ACM SIGMETRICS. ACM, New York, 188-197.]] Google Scholar
- CAO, P., FELTEN, E. W., AND LI, K. 1994a. Application-controlled file caching policies. In Proceedings of the USENIX Summer 1994 Technical Conference. USENIX Assoc., Berkeley, Calif., 171-182.]] Google Scholar
- CAO, P., FELTEN, E. W., AND LI, K. 1994b. Implementation and performance of applicationcontrolled file caching. In Proceedings of the 1st USENIX Symposium on Operating Systems Design and Implementation. USENIX Assoc., Berkeley, Calif., 165-178.]] Google Scholar
- CALLAHAN, D., KENNEDY, K., AND POTERFIELD, A. 1991. Software prefetching. In Proceedings of the 4th International Conference on Architectural Support for Programming Languages and Operating Systems. ACM, New York, 40-52.]] Google Scholar
- CHEN, T.-F. AND BAER, J.-L. 1992. Reducing memory latency via nonblocking and prefetching caches. In Proceedings of the 5th International Conference on Architectural Support for Programming Languages and Operating Systems. ACM, New York, 51-61.]] Google Scholar
- CHOU, H.-T. AND DEWITT, D.g. 1985. An evaluation of buffer management strategies for relational database systems. In Proceedings of the 11th International Conference on Very Large Databases. VLDB Endowment Press, Saratoga, Calif., 127-141.]]Google Scholar
- CUREWITZ, K. M., KRISHNAN, P., AND VITTER, J. S. 1993. Practical prefetching via data compression. In Proceedings of the 1993 ACM-SIGMOD Conference on the Management of Data. ACM, New York, 257-266.]] Google Scholar
- GRIFFIOEN, g. AND APPLETON, R. 1994. Reducing file system latency using a predictive approach. In Proceedings of the USENIX 1994 Technical Conference. USENIX Assoc., Berkeley, Calif., 197-208.]] Google Scholar
- GRAY, J. 1991. The Benchmark Handbook. Morgan Kaufmann, San Mateo, Calif.]]Google Scholar
- HARTY, K. AND CHERITON, D.R. 1992. Application-controlled physical memory using external page-cache management. In the 5th International Conference on Architectural Support for Programming Languages and Operating Systems. ACM, New York, 187-197.]] Google Scholar
- HOWARD, J. H., KAZAR, M. L., MENEES, S. G., NICHOLS, D. A., SATYANARAYANAN, M., SIDEBOTHAM, R. N., AND WEST, M.J. 1988. Scale and performance in a distributed file system. ACM Trans. Comput. Syst. 6, 1 (Feb.), 51-81.]] Google Scholar
- HENNESSY, J. L. AND PATTERSON, D.A. 1990. Computer Architecture: A Quantitative Approach. Morgan Kaufmann, San Mateo, Calif.]] Google Scholar
- JACOBSON, D. AND WILKES, g. 1991. Disk scheduling algorithms based on rotational positioning. Tech. Rep. HPL-CSP-91-7, Hewlett Packard Laboratories, Palo Alto, Calif. Feb.]]Google Scholar
- MCNAMEE, D. AND ARMSTRONG, K. 1990. Extending the Mach external pages interface to accommodate user-level page replacement policies. In Proceedings of the USENIX Mach Symposium '91. USENIX Assoc., Berkeley, Calif., 17-29.]]Google Scholar
- McVoY, L. W. AND KLEIMAN, S.R. 1991. Extent-like performance from a UNIX file system. In Proceedings of the 1991 Winter USENIX Symposium. USENIX Assoc., Berkeley, Calif., 33-43.]]Google Scholar
- MOGUL, J. C. 1994. A better update policy. In Proceedings of the 1994 Summer USENIX Technical Conference. USENIX Assoc., Berkeley, Calif., 99-111.]] Google Scholar
- MANBER, U. AND WU, S. 1994. GLIMPSE: A tool to search through entire file systems. In Proceedings of the USENIX 1994 Winter Technical Conference. USENIX Assoc., Berkeley, Calif., 23-32.]] Google Scholar
- O'NEIL, E. J., O'NEIL, P. E., AND WEIKUM, G. 1993. The LRU-K page replacement algorithm for database disk buffering. In the ACM SIGMOD Conference on the Management of Data. ACM, New York, 297-306.]] Google Scholar
- PATTERSON, R. H. AND GIBSON, G. A. 1994. Exposing I/O concurrency with informed prefetching. In Proceedings of the 3rd International Conference on Parallel and Distributed Information Systems. IEEE Computer Society, Washington, D.C.]] Google Scholar
- PATTERSON, R. H., GIBSON, G. A., GINTING, E., STODOLSKY, D., AND ZELENKA, J. 1995. Informed prefetching and caching. In Proceedings of the 15th ACM Symposium on Operating Systems Principles. ACM, New York.]] Google Scholar
- POSTGRES GROUP. 1993. POSTGRES version 4.1 release notes. Tech. Rep., Electronics Research Laboratory, Univ. of Calif., Berkeley, Calif.]]Google Scholar
- PALMER, M. AND ZDONIK, S.B. 1991. Fido: A cache that learns to fetch. In Proceedings of the 17th International Conference on Very Large Data Bases. VLDB Endowment Press, Saratoga, Calif., 255-264.]] Google Scholar
- ROGERS, A. AND LI, K. 1992. Software support for speculative loads. In Proceedings of the 5th International Conference on Architectural Support for Programming Languages and Operating Systems. ACM, New York, 38-50.]] Google Scholar
- ROSENBLUM, M. AND OUSTERHOUT, J. K. 1991. The designing and implementation of a log-structured file system. In Proceedings of the 13th ACM Symposium on Operating Systems Principles. ACM, New York, 1-15.]] Google Scholar
- SCHLATTER ELLIS, C. AND KOTZ, D. 1989. Prefetching in file systems for MIMD multiprocessors. In Proceedings of the 1989 International Conference on Parallel Processing. CRC Press, Boca Raton, Fla., 306-314.]]Google Scholar
- SECHREST, S. AND PARK, Y. 1991. User-level physical memory management for Mach. In Proceedings of the 1991 USENIX Mach Symposium. USENIX Assoc., Berkeley, Calif., 189-199.]]Google Scholar
- SELTZER, M. AND SMITH, K.A. 1995. File system logging versus clustering: A performance comparison. In Proceedings of the 1995 Summer USENIX. USENIX Assoc., Berkeley, Calif.]] Google Scholar
- SELTZER, M., CHEN, P., AND OUSTERHOUT, J. 1990. Disk scheduling revisited. In Proceedings of the USENIX 1990 Winter Technical Conference. USENIX Assoc., Berkeley, Calif., 313- 324.]]Google Scholar
- SMITH, A.J. 1978. Sequential program prefetching in memory hierarchies. IEEE Comput. 11, 12 (Dec.), 7-21.]]Google Scholar
- STEFFEN, J.L. 1985. Interactive examination of a C program with cscope. In the USENIX Dallas 1985 Winter Conference Proceedings. USENIX Assoc., Berkeley, Calif., 170-175.]]Google Scholar
- STONEBRAKER, M. 1981. Operating system support for database management. Commun. ACM 24, 7 (July), 412-418.]] Google Scholar
- TAIT, C. D. AND DUCHAMP, D. 1990. Detection and exploitation of file working sets. Tech. Rep. CUCS-050-90, Computer Science Dept., Columbia Univ., New York.]]Google Scholar
- TULLSEN, D. M. AND EGGERS, S.J. 1993. Limitations of cache prefetching on a bus-based multiprocessor. In Proceedings of the 20th International Symposium on Computer Architecture. IEEE Computer Society, Washington, D.C., 278-288.]] Google Scholar
- WORTHINGTON, B. L., GANGER, G. R., AND PATT, Y. N. 1994. Scheduling for modern disk drives and nonrandom workloads. Tech. Rep. CSE-TR-194-94, Dept. of Electrical Engineering and Computer Science, Univ. of Michigan, Ann Arbor, Mich. Mar.]]Google Scholar
- Wu, K. L., Yu, P. S., AND TENG, J.Z. 1993. Performance comparison of thrashing control policies for concurrent mergesorts with parallel prefetching. In Proceedings of the 1993 ACM SIGMETRICS. ACM, New York, 171-182.]] Google Scholar
Index Terms
- Implementation and performance of integrated application-controlled file caching, prefetching, and disk scheduling
Recommendations
Implementation and performance of application-controlled file caching
OSDI '94: Proceedings of the 1st USENIX conference on Operating Systems Design and ImplementationTraditional file system implementations do not allow applications to control file caching replacement decisions. We have implemented two-level replacement, a scheme that allows applications to control their own cache replacement, while letting the ...
Caching strategies to improve disk system performance
I/O subsystem manufacturers attempt to reduce latency by increasing disk rotation speeds, incorporating more intelligent disk scheduling algorithms, increasing I/O bus speed, using solid-state disks, and implementing caches at various places in the I/O ...
Comments