Posts by Collection

collaborators

Advisors and Academic Collaborators

Natacha Crooks, Prof. at UC Berkeley (Postdoc advisor)
Matei Zaharia, Prof. at UC Berkeley
Ion Stoica, Prof. at UC Berkeley
Scott Shenker, Prof. at UC Berkeley
Vijay Chidambaram, Prof. at UT Austin (PhD advisor)
Dahlia Malkhi, Prof. at UC Santa Barbara
Greg Ganger, Prof. at CMU
Paris Carbone, Prof. at KTH Sweden
Zsolt Istvan, Prof. at TU Darmstadt

Mentors and Industry Collaborators

Marcos K. Aguilera, 2021–Ongoing
Jonathan Goldstein, 2022
Kim Keeton, 2021
Sharad Singal, 2021
Saurabh Kadekodi, 2021
Anirudh Badam, 2020
Ranveer Chandra, 2020
Ant Rowstron, 2019
Dushayanth Narayanan, 2019
Ittai Abraham, 2018
Michael Wei, 2018
Amy Tai, 2018

Peers and Collaborators

Sekwon Lee, 2020-2023
Rohan Kadekodi, 2020-2023
Aashaka Shah, 2019-2021
Pandian Raju, 2017-2018
Jayashree Mohan, 2017-2018
Ashlie Martinez, 2017-2018

Student Collaborators

Reginald Frank, PhD student at UC Berkeley
Tyler Griggs, PhD student at UC Berkeley
David Chu, PhD student at UC Berkeley
Harald Ng, PhD student at KTH Sweden
Shu Liu, PhD student at UC Berkeley
Neil Giridharan, PhD student at UC Berkeley
Audrey Cheng, PhD student at UC Berkeley
Souvik Banerjee, Undergrad at UT Austin (now at Apple)
Gilad Oved, Undergrad at UT Austin
Evan Kaminsky, Undergrad at UT Austin
Zachary Keener, Undergrad at UT Austin

publications

mLSM: Making Authenticated Storage Faster in Ethereum

Published in USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage), 2018

This paper presents a novel data-authenticating structure, Merkelized LSM (mLSM). In authenticated storage each read returns a value and a proof that allows the client to verify the value returned is correct. Such authentication leads to high read and write amplification (64x in the worst case). mLSM …

Finding Crash-Consistency Bugs with Bounded Black-Box Crash Testing

Published in 13th USENIX Symposium on Operating Systems Design and Implementation (OSDI), 2018

This paper presents the bounded black-box crash testing (B3), a new approach to test file-system crash consistency. B3 tests the file system in a black-box manner using workloads with file-system operations. Since the space of possible workloads is infinite, B3 bounds this space based on the insights from studying recent crash-consistency bugs reported in Linux file systems. We build CrashMonkey and Ace, to demonstrate the effectiveness of B3 approach. These tools find 24 out of the 26 recent crash-consistency bugs…

Crashmonkey and ACE: Systematically testing file-system crash consistency

Published in ACM Transactions on Storage (TOCS), 2019

This paper presents CrashMonkey and Ace, a set of tools to systematically find crash-consistency bugs in Linux file systems. CrashMonkey is a record-and-replay framework that simulates power-loss crashes while executing a given workload, and checks if the file system recovers to a consistent state after each crash. Ace automatically generates workloads to be run on the target file system. CrashMonkey and Ace are based on a new approach to test file-system crash consistency: bounded black-box crash testing (B3) which alleviates the consequences of having an infinite set of possible workloads to test. CrashMonkey and Ace are able to find 24 out of the 26 crash-consistency bugs reported in the last 5 years. These tools also revealed 10 new crash-consistency bugs in widely used, mature Linux file systems, 7 of which existed in the kernel since 2014. They also found a crash-consistency bug in a verified file system, FSCQ.

Software-defined data protection: Low overhead policy compliance is within reach!

Published in Proceedings of the VLDB Endowment (pVLDB), 2021

This paper presents our novel approach “Software-Defined Data Protection” (SDP). Its simple, yet powerful premise is to decouple often changing policies from request-level enforcement to allow distributed smart storage nodes to implement the latter at line-rate. Existing and future data protection frameworks can be translated to the same hardware interface which allows storage nodes to offload enforcement efficiently…

RainBlock: Faster Transaction Processing for Public Blockchains

Published in USENIX Annual Technical Conference (ATC), 2021

This paper presents RAINBLOCK, a public blockchain that achieves high transaction throughput. The number of transactions in each block is limited by I/O bottlenecks. By removing these I/O bottlenecks, RAINBLOCK allows miners to process more transactions in the same amount of time. The RAINBLOCK architecture removes I/O from the critical path, and the distributed, sharded Merkle tree, the DSM-TREE data structure…

WineFS: a hugepage-aware file system for persistent memory that ages gracefully

Published in ACM SIGOPS 28th Symposium on Operating Systems Principles, 2021

Modern persistent-memory (PM) file systems degrade in performance with usage due to their inability to use hugepages. This paper introduces WineFS, a novel hugepage-aware PM file system that eliminates this effect. WineFS combines a new alignment-aware allocator with fragmentation-avoiding approaches to consistency and concurrency to preserve hugepages. Experiments show that WineFS…

DINOMO: an elastic, scalable, high-performance key-value store for DPM

Published in Proceedings of the VLDB Endowment (pVLDB), 2022

This paper presents Dinomo, a novel key-value store for disaggregated persistent memory (DPM). Dinomo is the first key-value store for DPM that simultaneously achieves high common-case performance, scalability, and lightweight online reconfiguration simultaneously. Dinomo uses a novel combination of techniques such as ownership partitioning, disaggregated adaptive caching, and selective replication…

SkyStore: Cost-Optimized Object Storage Across Regions and Clouds

Published in Proceedings of the VLDB Endowment (pVLDB), 2025, 2022

Modern applications span multiple clouds to reduce costs, avoid vendor lock-in, and leverage low-availability resources in another cloud. However, standard object stores operate within a single cloud, forcing users to manually manage data placement across clouds. This is often a complex choice: users must either pay to store objects in a remote cloud, or pay to transfer them over the network. To address this, we present SkyStore, a unified object store that addresses cost-optimal data management across regions and clouds. SkyStore introduces…

Real Life Is Uncertain. Consensus Should Be Too!

Published in Workshop on Hot Topics in Operating Systems (HOTOS 25), 2025

Modern distributed systems rely on consensus protocols to build a fault-tolerant core upon which they can build applications. Consensus protocols are correct under a specific failure model, where up to $f$ machines can fail. We argue that this $f$-threshold failure model oversimplifies the real world and limits potential opportunities to optimize for cost or performance. We argue instead for a probabilistic failure…

talks

mLSM: Making Authenticated Storage Faster in Ethereum

Published:

This talk outlines our findings on the IO overheads from the authenticated data structures used in Ethereum like the Merkle Patrica Trees and describes a new data structure that reduces the inherent IO amplification in Ethereum to achieve better IO efficiency.

mLSM: Making Authenticated Storage Faster in Ethereum

Published:

This talk outlines our findings on the IO overheads from the authenticated data structures used in Ethereum like the Merkle Patrica Trees and describes a new data structure that reduces the inherent IO amplification in Ethereum to achieve better IO efficiency.

RainBlock: Faster Transaction Processing for Public Blockchains

Published:

This talk outlines our findings on the IO bottlenecks in public blockchains and presents a new architecture RAINBLOCK that alleviates these IO bottlenecks in the critical path of processing transactions to achieve higher end-to-end transaction throughput.

RainBlock: Faster Transaction Processing for Public Blockchains

Published:

This talk outlines our findings on the IO bottlenecks in public blockchains and presents a new architecture RAINBLOCK that alleviates these IO bottlenecks in the critical path of processing transactions to achieve higher end-to-end transaction throughput.

Building IO-Efficient Key-Value Stores for Persistent Memory and CXL

Published:

Presented our findings on the importance of having fine-grained control over how IO is performed on emerging hardware media like Persistent Memory and CXL and our work on building an IO-efficient key-value store that achieves high bandwidth utilization to improve its end-to-end throughput and scalability.

Building IO-Efficient Key-Value Stores for Persistent Memory and CXL

Published:

Presented our findings on the importance of having fine-grained control over how IO is performed on emerging hardware media like Persistent Memory and CXL and our work on building an IO-efficient key-value store that achieves high bandwidth utilization to improve its end-to-end throughput and scalability.

teaching

TA for Undergraduate Virtualization Course

Undergrad Virtualization, UT Austin, CS Department, Prof. Vijay Chidambaram, 2020

<!– This is a description of a teaching experience. You can use markdown like any other post.

TA for Undergraduate Virtualization Course

Undergrad Virtualization, UT Austin, CS Department, Prof. Vijay Chidambaram, 2020

<!– This is a description of a teaching experience. You can use markdown like any other post.

TA for Masters Virtualization Course

Masters Virtualization, UT Austin, CS Department, Prof. Vijay Chidambaram, 2023

<!– This is a description of a teaching experience. You can use markdown like any other post.

TA for Masters Virtualization Course

Masters Virtualization, UT Austin, CS Department, Prof. Vijay Chidambaram, 2023

<!– This is a description of a teaching experience. You can use markdown like any other post.