ACM Transactions on Computer Systems (TOCS)
Scale and performance in a distributed file system
ACM Transactions on Computer Systems (TOCS)
The duality of memory and communication in the implementation of a multiprocessor operating system
SOSP '87 Proceedings of the eleventh ACM Symposium on Operating systems principles
Caching in the Sprite network file system
ACM Transactions on Computer Systems (TOCS)
Improving the efficiency of UNIX buffer caches
SOSP '89 Proceedings of the twelfth ACM symposium on Operating systems principles
An advisor for flexible working sets
SIGMETRICS '90 Proceedings of the 1990 ACM SIGMETRICS conference on Measurement and modeling of computer systems
Measurements of a distributed file system
SOSP '91 Proceedings of the thirteenth ACM symposium on Operating systems principles
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Application-controlled physical memory using external page-cache management
ASPLOS V Proceedings of the fifth international conference on Architectural support for programming languages and operating systems
Disconnected operation in the Coda File System
ACM Transactions on Computer Systems (TOCS)
A status report on research in transparent informed prefetching
ACM SIGOPS Operating Systems Review
Tools for the development of application-specific virtual memory management
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Practical prefetching via data compression
SIGMOD '93 Proceedings of the 1993 ACM SIGMOD international conference on Management of data
The LRU-K page replacement algorithm for database disk buffering
SIGMOD '93 Proceedings of the 1993 ACM SIGMOD international conference on Management of data
A caching file system for a programmer's workstation
Proceedings of the tenth ACM symposium on Operating systems principles
Operating system support for database management
Communications of the ACM
Operating Systems Theory
Kernel Support for Recoverable-Persistent Virtual Memory
Kernel Support for Recoverable-Persistent Virtual Memory
Meta-data Management System for High-Performance Large-Scale Scientific Data Access
HiPC '00 Proceedings of the 7th International Conference on High Performance Computing
Experimental Results on Statistical Approaches to Page Replacement Policies
ALENEX '01 Revised Papers from the Third International Workshop on Algorithm Engineering and Experimentation
Performance Simulations of a QoS Aware Caching Method
NETWORKING '02 Proceedings of the Second International IFIP-TC6 Networking Conference on Networking Technologies, Services, and Protocols; Performance of Computer and Communication Networks; and Mobile and Wireless Communications
A Trace-Driven Analysis of Parallel Prefetching Algorithms for Parallel and Distributed Systems
HPCASIA '05 Proceedings of the Eighth International Conference on High-Performance Computing in Asia-Pacific Region
Coordinated Multilevel Buffer Cache Management with Consistent Access Locality Quantification
IEEE Transactions on Computers
RACE: A Robust Adaptive Caching Strategy for Buffer Cache
IEEE Transactions on Computers
DiskSeen: exploiting disk layout and access history to enhance I/O prefetch
ATC'07 2007 USENIX Annual Technical Conference on Proceedings of the USENIX Annual Technical Conference
Improving I/O performance of applications through compiler-directed code restructuring
FAST'08 Proceedings of the 6th USENIX Conference on File and Storage Technologies
DIG: Degree of inter-reference gap for a dynamic buffer cache management
Information Sciences: an International Journal
C-Miner: mining block correlations in storage systems
FAST'04 Proceedings of the 3rd USENIX conference on File and storage technologies
Paging for multi-core shared caches
Proceedings of the 3rd Innovations in Theoretical Computer Science Conference
A Prefetching Scheme Exploiting both Data Layout and Access History on Disk
ACM Transactions on Storage (TOS)
Hi-index | 0.01 |
We consider how to improve the performance of file caching by allowing user-level control over file cache replacement decisions. We use two-level cache management: the kernel allocates physical pages to individual applications (allocation), and each application is responsible for deciding how to use its physical pages (replacement). Previous work on two-level memory management has focused on replacement, largely ignoring allocation. The main contribution of this paper is our solution to the allocation problem. Our solution allows processes to manage their own cache blocks, while at the same time maintains the dynamic allocation of cache blocks among processes. Our solution makes sure that good user-level policies can improve the file cache hit ratios of the entire system over the existing replacement approach. We evaluate our scheme by trace-based simulation, demonstrating that it leads to significant improvements in hit ratios for a variety of applications.