UW-Madison Logo

The ADvanced Systems Laboratory (ADSL)

Our group is interested in developing new technology in file and storage systems, although we occasionally branch out into more general systems work in distributed systems, operating systems, virtual machines, and other related topics.

Some of our research highlights include groundbreaking work in crash consistency, comprehensive studies of local and distributed file systems, new fundamental ideas in high-performance SSD storage design, analysis of deep flaws in Linux I/O scheduler, pioneering work in containers and micro-services, and research on improved analytical methods for storage systems research.

Current ADSL Research Projects

Our current research projects are in three main areas:

  1. Emerging NVM Storage Technology
    • Unwritten Contracts: Understanding the performance characteristics of new NVM storage technology. Read more here
    • File Systems as Processes: Developing new file system architectures for emerging technology (FSPs); Read more here
    • DenseFS: Developing cache-conscious file systems; Read more here
  2. Consistency-Aware Durability: Improving the durability and consistency semantics of distributed storage while not reducing performance (CAD)
  3. Scheduler-Aware Locks: Developing new locks that enable better scheduling control
Please read more about the current ADSL projects!

All ADSL Research Projects

All of the past and current research projects in our group can be broadly divided into three categories: improving the performance of file and storage systems, improving the robustness of file and e systems, and understanding graybox systems. We briefly describe our contributions in these areas. Much of this work is still on-going in the ADSL group.

[Improving Performance in File and Storage Systems]
[Analysis and Benchmarking] [Storage Interfaces] [Flash-based SSDs] [Performance Isolation] [Containers] [Scientific Workloads]

[Improving the Robustness of File and Storage Systems]
[Failure Analysis] [Handling Failures] [Crash Consistency] [Distributed Storage]

[Gray-box Systems]
[Gray-box OS] [Semantically-Smart Disks] [VMMs]

1) Improving Performance in File and Storage Systems

Performance Analysis and Benchmarking (2000-Present)

One theme that underlies our work is measurement-driven systems research. We strongly believe that carefully measuring and understanding the current state of the art serves as an excellent catalyst for research and educational innovation. We have developed an array of techniques to bring out surprisingly detailed characterizations of the system under test, showing that even subtle behaviors can be teased out through careful experimentation. Specifically, we have developed new techniques to understand RAID arrays, journaling file systems, distributed storage systems (EMC Centera), Apple Desktop Applications, Facebook Messages, and tail latencies within local file systems.
More details here.
PhD Students: Tim Denehy, Vijayan Prabhakaran, Haryadi Gunawi, Tyler Harter, Jun He, Nitin Agarawal, Leo Arulraj, Zev Weiss

Storage Interfaces (2002-Present)

Our performance studies led us to the realization that oftentimes the existing layering of a system prevents the implementation of useful performance optimizations. We have explored how to break through such layering limitations. For example, we have co-designed the file system to better interact with RAID, expose new disk interfaces, and even push the entire file system into the storage device.
More details here.
PhD Students and Postdocs: Tim Denehy, Florentina Popovici, Sudarsun Kannan

Flash-based SSDs (2012-Present)

For many years, hard drives dominated the storage landscape; however, the past decade has seen the introduction and proliferation of Flash-based solid-state devices (SSDs). We have investigated ways to improve an SSD-based storage stack and have defined the unwritten contract for how SSDs should be used for the highest performance and longest lifetime. Using our detailed understanding of the performance characteristics of SSDs, we developed an optimized key-value store (WiscKey) and search engine.
More details here.
PhD Students: Lanyue Lu, Thanu Pillai, Yupu Zhang, Leo Arulraj, Yiying Zhang, Swami Sundararaman, Sriram Subramanian, Zev Weiss, Jun He, Kan Wu

Performance Isolation (2014-Present)

We have investigated performance isolation in storage systems: can the system ensure that the performance of one application is not affected by the I/O patterns of others? We introduce three pioneering approaches to ensure such isolation, both within a single machine and in a distributed storage setting.
More details here.
PhD Students and Postdocs: Lanyue Lu, Yupu Zhang, Thanh Do, Samer Al-Kiswany, Suli Yang, Jing Liu, Yuvraj Patel

Containers (2016-Present)

One of our recent performance-oriented sub-area of research focuses on new container technologies arising in the cloud, and the resulting new models of execution that are possible. We've shown how to integrate snapshot-based file storage into a Docker code repository. We also introduced OpenLambda, one of the first open-source lambda execution environments available, and present its key facets.
More details here.
PhD Students: Tyler Harter

Scientific Workflows (2002-2004)

We have studied I/O workloads and necessary systems support in scientific (HPC) workloads; this led to both performance studies and new systems to better support HPC applications.
More details here.
PhD Students: John Bent

2) Developing Robust Storage Systems

Single Node and Device Failure Analysis (2005-2013)

Another emphasis in our work is in analyzing and handing failures in file and strorage systems. Our empirical approach to understanding how systems react to failure has led to numerous new techniques and insights on how such systems operate under faults, and has significantly improved the reliability of existing systems, for both local and distributed file systems.
PhD Students: Vijayan Prabhakaran, Lakshmi Bairavasundaram, Nitin Agrawal, Haryadi Gunawi, Lanyue Lu, Yupu Zhang

Handling Failures (2007-2011)

We have also created numerous new mechanisms to handle failures in storage systems, including an I/O shepherd within the file system, a framework for n-version file systems, restartable file systems, and failure-free memory allocation on I/O paths.
PhD Students: Lakshmi Bairavasundaram, Swami Sundararaman, Haradi Gunawi, Vijayan Prabhakaran, Sriram Subramanian, Yupu Zhang

Crash Consistency (2008-Present)

One sub-area we have studied in great detail is file system crash consistency. Many earlier works ignored this important topic, but due to our contributions, it is now a standard part of file system evaluation and discussion. Some of our work has focused on building file system checkers, either using a declarative approach as in SQCK, or simply making them faster, as in ffsck. We have explored how disks lie about which writes have been persisted to disk and how file systems can get around this misbehavior: either by forcing the disk to evict items from its cache or redesigning the file system so that it can still provide consistency even if writes are reordered by the disk. We also performed the first study of file system crash consistency behaviors and showed that different data-intensive applications (databases, key-value stores, version control software) are incorrect given the behavior of modern file systems. Finally, we developed two different file systems (OptFS and CCFS) that are able to improve performance dramatically by reducing the number of fsyncs that must be performed, yet still deliver correct performance to applications. As part of this work, we articulated the differences between providing ordering and durability for file system data.
PhD Students and Postdocs: Vijay Chidambaram, Thanu Pillai, Haradi Gunawi, Ram Alagappan, Lanyue Lu, Samer Al-Kiswany

Distributed Storage (2011-Present)

Our last and most recent series of contributions focus on the robustness of distributed storage systems. Here, we both introduce new methods to test such systems, and then show how to build more reliable storage under the presence of common failure scenarios.
PhD Students: Ram Alagappan, Aishwarya Ganesan

3) Graybox Systems

One of our earliest ideas was that of building gray-box systems. The driving force behind this idea is that in some scenarios it is challenging to change an existing system to have the exact functionality desired; surprisingly, however, in many cases it is still possible to realize the desired functionality without any change to said system, through a combination of measurement of the system plus knowledge (perhaps imperfect) of how the system operates.

Graybox Systems: OS (2000-2004)

We have shown how graybox techniques can be used to add functionality to the OS, including the buffer cache, file layout, I/O scheduling, and TCP extensions.
More details here.
PhD Students: Nathan Burnett, Timothy Denehy, Haradi Gunawi, Florentina Popovici, John Bent

Semantically-Smart Disk Systems (2003-2005)

One rich off-shoot of the gray-box work occurred when we had the following insight. The disk and RAID industry, for years, had been hampered for years by limited information: at the block level, all a device sees are reads and writes, with no knowledge as to the contents of each block, its importance, and other relevant characteristics. If a ``dumb'' disk could just know more about how such blocks are utilized, it could implement a surprising range of features to improve performance and reliability of the I/O system. As our work demonstrates, gray-box techniques enable such knowledge. By assuming certain details about the client of the disk (e.g., that it is a file system of a particular type), a semantically-smart disk can learn how it is being used and thus implement features previously unattainable at block level.
More details here.
PhD Students: Lakshmi Bairavasundaram, Muthian Sivathanu, Timothy Denehy, Florentina Popovici, Vijayan Prabhakaran

Introspective Virtual Machine Monitors (2006-2017)

Virtual machine monitors (VMMs) are a natural target environment for graybox techniques. In traditional VMM settings, the VMM has little knowledge of what the OS above is doing, and thus is limited in what types of functionality it can realize itself. With gray-box knowledge, we show that novel and interesting services can be realized inside VMMs.
More details here.
PhD Students: Stephen Jones, Leo Arulraj