IO Acceleration via MultiTiered Data Buffering and Prefetching Modern HighPerformance Computing (HPC) systems are adding extra layers to the memory and storage hierarchy, named deep memory and storage hierarchy (DMSH), to increase IO performance. New hardware technologies, such as NVMe and SSD, have been introduced in burst buffer installations to reduce the pressure for external storage and boost the burstiness of modern IO systems. The DMSH has demonstrated its strength and potential in practice. However, each layer of DMSH is an independent heterogeneous system and data movement among more layers is significantly more complex even without considering heterogeneity. How to efficiently utilize the DMSH is a subject of research facing the HPC community. Further, accessing data with a highthroughput and lowlatency is more imperative than ever. Data prefetching is a wellknown technique for hiding read latency by requesting data before it is needed to move it from a highlatency medium (e.g., disk) to a lowlatency one (e.g., main memory). However, existing solutions do not consider the new deep memory and storage hierarchy and also suffer from underutilization of prefetching resources and unnecessary evictions. Additionally, existing approaches implement a clientpull model where understanding the applicationxe2x80x99s IO behavior drives prefetching decisions. Moving towards exascale, where machines run multiple applications concurrently by accessing files in a workflow, a more datacentric approach resolves challenges such as cache pollution and redundancy. In this paper, we present the design and implementation of Hermes: a new, heterogeneousaware, multitiered, dynamic, and distributed IO buffering system. Hermes enables, manages, supervises, and, in some sense, extends IO buffering to fully integrate into the DMSH. We introduce three novel data placement policies to efficiently utilize all layers and we present three novel techniques to perform memory, metadata, and communication management in hierarchical buffering systems. Additionally, we demonstrate the benefits of a truly hierarchical data prefetcher that adopts a serverpush approach to data prefetching. Our evaluation shows that, in addition to automatic data movement through the hierarchy, Hermes can significantly accelerate IO and outperforms by more than 2x stateoftheart buffering platforms. Lastly, results show 10%xe2x80x9335% performance gains over existing prefetchers and over 50% when compared to systems with no prefetching.

A Case for Dynamically Programmable Storage Background Tasks Modern storage infrastructures feature long and complicated IO paths composed of several layers, each employing their own optimizations to serve varied applications with fluctuating requirements. However, as these layers do not have global infrastructure visibility, they are unable to optimally tune their behavior to achieve maximum performance. Background storage tasks, in particular, can rapidly overload shared resources, but are executed either periodically or whenever a certain threshold is hit regardless of the overall load on the system. In this paper, we argue that to achieve optimal holistic performance, these tasks should be dynamically programmable and handled by a controller with global visibility. To support this argument, we evaluate the impact on performance of compaction and checkpointing in the context of HBase and PostgreSQL. We find that these tasks can respectively increase 99th percentile latencies by 955.2% and 61.9%. We also identify future research directions to achieve programmable background tasks.