Research Projects
My research focuses on efficient management of large working sets in virtual memory and file buffers. The performance of applications critically depends on how efficiently the memory hierarchy can be utilized. Although modern computer systems provide caches to buffer data on different levels, this does not guarantee the data locality can be automatically exploited to take full advantage of the resources. I have worked and am working on developing and implementing novel cache management policies for virtual memory, buffer caches, and networked storage hierarchy.
TICK: Incremental Checkpointing/Restart
for Large-Scale Parallel Systems Executions
Building a Checkpointing/Restart system in Linux clusters for the next generation of fault tolerant large-scale computing systems. The system provides essential functionality for transparent, highly responsive and efficient fault tolerance based on incremental checkpointing at kernel level.
Exploiting Dual Locality to Improve
Hard Drive Performance
Building a new infrastructure in memory management to maximize the sequential data accesses on disk by incorporating (1) the missing spatial locality regarding page disk locations in the buffer cache management; (2) the missing temporal locality regarding the history sequential accesses in the disk prefetching policy.
TPF: A Reactive Solution for Thrashing
in Program Executions
The reactive solution, TPF, is a dynamic system thrashing protection facility in the system kernel, which adaptively takes necessary actions on the global page replacement once the thrashing is detected, to provide a highly responsive and cost-effective thrashing protection.
Token-Ordered LRU: A Proactive
Solution for Thrashing in Program Executions
Token-Ordered LRU is another novel proactive solution preventing thrashing in program executions. Compared with TPF, Token-Ordered LRU has its distinguished merits: (1) TPF is a detection-based, reactive mechanism, while token-ordered LRU is a proactive scheme. Thus token-ordered LRU can avoid the parameters related to the system configurations and provide a more steady protection. (2) While TPF pins all of the pages of a protected program in memory, token-ordered LRU distinguishes false LRU pages from true LRU pages, and only prevents true LRU pages from eviction. In this way, the token-ordered LRU makes memory better utilized.
LIRS: a Fundamentally Improved Replacement
Over LRU
The LRU (Least Recently Used) replacement is widely used to manage cache due to its simplicity, but many anomalous behaviors have been found with some typical workloads, where the hit ratios of LRU may only slightly increase with a significant increase of cache size. The observations reflect LRU's inability to cope with access patterns with weak locality such as file scanning, regular accesses over more blocks than the cache size, and accesses on blocks with distinct frequencies.
ULC: Caching in
Networked Buffer Cache Hierarchy
Nowadays increasingly more applications rely on the cache hierarchy for their file accesses. There are two critical challenges in managing the multi-level cache hierarchy. The first challenge comes from the weakened locality in the low level buffer caches. This is because low level caches actually hold the misses from their upper level buffer caches. The second challenge comes from the undiscerning redundancy among levels of the buffer caches. This redundancy could significantly reduce the effective cache sizes.
Efficient Search in Peer-to-Peer Overlay
Network
Research on peer-to-peer distributed system is a hot area intended for large scale distributed applications. Most existing P2P search schemes take advantage of purposely constructed network topologies for their efficiency, such as DHT-based protocols. Because of the constraints on topology, these approaches may not be able to tolerate the extremely transient population of peers. When they are deployed in an uncooperative environment, robustness and security become concerns with the attacks on deliberatively chosen nodes from malicious hackers. Though unstructured P2P networks, like Gnutella, provide a more robust file sharing mechanism, its scalability is greatly limited by its inefficient query flooding search method.