Demo Data from SIGIR 2026 / reviewers in the wild / expert
Rob Johnson 0001
dblp:47/6172-1 · also Robert T. Johnson 0001
· DBLP profile ↗
64ranked-venue papers
1as first author
18since 2021 · last 2026
0000-0002-0784-7410ORCID · conflict
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 24 · 7 since 2021Databases, data management, data science and information retrieval · 18 · 7 since 2021Security and privacy · 10Theory of computation · 8 · 3 since 2021Software engineering, systems software and programming languages · 5 · 2 since 2021Applied, interdisciplinary, general and emerging computing · 5 · 1 since 2021
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Computer architecture, parallel and distributed computing, and storage systems
25 papers |
Storage systems · 53% Memory systems · 40% GPUs and heterogeneous computing · 3% | |
| Databases, data mining, and information retrieval
13 papers |
Indexing and storage engines · 51% Information retrieval · 29% Data stream processing · 13% | |
| Theoretical computer science
7 papers |
Algorithms and data structures · 64% Graph algorithms and graph theory · 26% Approximation and online algorithms · 10% | |
| Interdisciplinary, comprehensive, and emerging computing
5 papers |
Bioinformatics and computational biology · 100% | |
| Network and information security
5 papers |
Network security · 90% Systems and software security · 10% | |
| Software engineering, system software, and programming languages
3 papers |
Operating systems · 100% |
Topics — the 30 heaviest of 86, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Storage systems
file systems |
3.4 | 10 | 2022 | BetrFS: a compleat file system for commodity SSDs · EuroSys 2022 Copy-on-Abundant-Write for Nimble File System Clones · ACM Trans. Storage 2021 How to Copy Files · FAST 2020 |
Storage systems
key-value storage |
1.9 | 3 | 2024 | IONIA: High-Performance Replication for Modern Disk-based KV Stores · FAST 2024 SplinterDB and Maplets: Improving the Tradeoffs in Key-Value Store Compaction Policy · Proc. ACM Manag. Data 2023 SplinterDB: Closing the Bandwidth Gap for NVMe Key-Value Stores · USENIX ATC 2020 |
Indexing and storage engines
key-value store |
1.5 | 2 | 2025 | Focus! Fast On-disk Concurrency-control Using Sketches · Proc. ACM Manag. Data 2025 SplinterDB and Maplets: Improving the Tradeoffs in Key-Value Store Compaction Policy · Proc. ACM Manag. Data 2023 |
Memory systems › memory management › virtual memory
address translation |
1.5 | 2 | 2025 | Paging and the Address-Translation Problem · ACM Trans. Algorithms 2025 Mosaic Pages: Big TLB Reach with Small Pages · ASPLOS (3) 2023 |
Memory systems › memory management › virtual memory › address translation
TLB |
1.5 | 2 | 2025 | Paging and the Address-Translation Problem · ACM Trans. Algorithms 2025 Mosaic Pages: Big TLB Reach with Small Pages · ASPLOS (3) 2023 |
Memory systems › memory management
virtual memory |
1.5 | 2 | 2025 | Paging and the Address-Translation Problem · ACM Trans. Algorithms 2025 Mosaic Pages: Big TLB Reach with Small Pages · ASPLOS (3) 2023 |
Storage systems › file systems
write-optimized file system |
1.2 | 5 | 2017 | Writes Wrought Right, and Other Adventures in File System Optimization · ACM Trans. Storage 2017 Optimizing Every Operation in a Write-optimized File System · USENIX ATC 2016 Optimizing Every Operation in a Write-optimized File System · FAST 2016 |
Information retrieval › similarity search › nearest neighbor search › approximate nearest neighbor search
graph-based approximate nearest neighbor search |
1.0 | 1 | 2026 | Efficiently Constructing Sparse Navigable Graphs · SODA 2026 |
Information retrieval › similarity search
nearest neighbor search |
1.0 | 1 | 2026 | Efficiently Constructing Sparse Navigable Graphs · SODA 2026 |
Graph algorithms and graph theory › network analysis
navigable graphs |
1.0 | 1 | 2026 | Efficiently Constructing Sparse Navigable Graphs · SODA 2026 |
Data stream processing › frequency estimation
heavy hitter detection |
0.9 | 2 | 2021 | Timely Reporting of Heavy Hitters Using External Memory · ACM Trans. Database Syst. 2021 Timely Reporting of Heavy Hitters using External Memory · SIGMOD Conference 2020 |
Bioinformatics and computational biology › sequence analysis › sequence similarity search
sequence database search |
0.9 | 2 | 2022 | An incrementally updatable and scalable system for large-scale sequence search using the Bentley-Saxe transformation · Bioinform. 2022 Mantis: A Fast, Small, and Exact Large-Scale Sequence-Search Index · RECOMB 2018 |
Indexing and storage engines › membership query › approximate membership query
quotient filter |
0.9 | 2 | 2024 | Adaptive Quotient Filters · Proc. ACM Manag. Data 2024 Don't Thrash: How to Cache Your Hash on Flash · Proc. VLDB Endow. 2012 |
Transaction processing and concurrency control › concurrency control
timestamp-based concurrency control |
0.9 | 1 | 2025 | Focus! Fast On-disk Concurrency-control Using Sketches · Proc. ACM Manag. Data 2025 |
Operating systems › resource management › memory management
huge pages |
0.9 | 1 | 2025 | Paging and the Address-Translation Problem · ACM Trans. Algorithms 2025 |
Operating systems › resource management
memory management |
0.9 | 1 | 2025 | Paging and the Address-Translation Problem · ACM Trans. Algorithms 2025 |
Memory systems
cache |
0.9 | 1 | 2025 | Paging and the Address-Translation Problem · ACM Trans. Algorithms 2025 |
Memory systems › memory management › virtual memory
paging |
0.9 | 1 | 2025 | Paging and the Address-Translation Problem · ACM Trans. Algorithms 2025 |
Storage systems
flash and SSD |
0.8 | 3 | 2022 | BetrFS: a compleat file system for commodity SSDs · EuroSys 2022 Don't Thrash: How to Cache Your Hash on Flash · Proc. VLDB Endow. 2012 SplinterDB: Closing the Bandwidth Gap for NVMe Key-Value Stores · USENIX ATC 2020 |
Bioinformatics and computational biology
sequence analysis |
0.8 | 3 | 2019 | An Efficient, Scalable and Exact Representation of High-Dimensional Color Information Enabled via de Bruijn Graph Search · RECOMB 2019 Squeakr: an exact and approximate k-mer counting system · Bioinform. 2018 deBGR: an efficient and near-exact representation of the weighted de Bruijn graph · Bioinform. 2017 |
Indexing and storage engines › membership query
approximate membership query |
0.8 | 2 | 2021 | Vector Quotient Filters: Overcoming the Time/Space Trade-Off in Filter Design · SIGMOD Conference 2021 A General-Purpose Counting Filter: Making Every Bit Count · SIGMOD Conference 2017 |
Information retrieval › information filtering
adaptive filtering |
0.8 | 1 | 2024 | Adaptive Quotient Filters · Proc. ACM Manag. Data 2024 |
Information retrieval
filtering |
0.8 | 1 | 2024 | Adaptive Quotient Filters · Proc. ACM Manag. Data 2024 |
Distributed systems
replication |
0.8 | 1 | 2024 | IONIA: High-Performance Replication for Modern Disk-based KV Stores · FAST 2024 |
Indexing and storage engines
hash index |
0.7 | 1 | 2023 | IcebergHT: High Performance Hash Tables Through Stability and Low Associativity · Proc. ACM Manag. Data 2023 |
Storage systems › key-value storage
compaction strategy |
0.7 | 1 | 2023 | SplinterDB and Maplets: Improving the Tradeoffs in Key-Value Store Compaction Policy · Proc. ACM Manag. Data 2023 |
Memory systems
non-volatile memory |
0.7 | 1 | 2023 | IcebergHT: High Performance Hash Tables Through Stability and Low Associativity · Proc. ACM Manag. Data 2023 |
Memory systems › virtual memory management
page mapping |
0.7 | 1 | 2023 | Mosaic Pages: Big TLB Reach with Small Pages · ASPLOS (3) 2023 |
Memory systems › non-volatile memory
persistent memory |
0.7 | 1 | 2023 | IcebergHT: High Performance Hash Tables Through Stability and Low Associativity · Proc. ACM Manag. Data 2023 |
Memory systems › memory management › virtual memory
TLB reach |
0.7 | 1 | 2023 | Mosaic Pages: Big TLB Reach with Small Pages · ASPLOS (3) 2023 |
Methods — techniques the papers use, named apart from their topics
competitive analysis · 2.1quotient filter · 1.8online algorithm · 1.7auxiliary structure · 1.5linear probing · 1.3iceberg hashing · 1.3cuckoo hashing · 1.3sketching · 0.9approximate data structure · 0.9b-epsilon tree · 0.7targeted compaction · 0.7quotient maplet · 0.7lossy map · 0.7hashing · 0.7gem5 simulation · 0.7minimum spanning tree merging · 0.6bentley-saxe transformation · 0.6universal eviction policy · 0.4
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Efficiently Constructing Sparse Navigable GraphsabstractGraph-based nearest neighbor search methods have seen a surge of popularity in recent years, offering state-of-the-art performance across a wide variety of applications. Central to these methods is the task of constructing a sparse navigable search graph for a given dataset endowed with a distance function. Unfortunately, doing so is computationally expensive, so heuristics are universally used in practice. Alexander Conway 0001, Laxman Dhulipala, Martin Farach-Colton, Rob Johnson 0001, Benjamin Landrum, Christopher Musco, Yarin Shechter, Torsten Suel, Richard Wen |
SODA | 4 |
| 2026 | Fast Concurrent Primitives Despite ContentionabstractWe study the problem of constructing concurrent objects in a setting where $P$ processes run in parallel and interact through a shared memory that is subject to write contention. Our goal is to transform hardware primitives that are subject to write contention into ones that handle contention gracefully. We give contention-resolution algorithms for several basic primitives, and analyze them under a relaxed, roughly-synchronous stochastic scheduler, where processes run at roughly the same rate up to a constant factor with high probability. Specifically, we construct read/write registers and CAS registers that have latency $O(\log P)$ w.h.p. under our scheduler model, using $O(1)$ hardware read/write registers and, in the case of our CAS construction, one hardware CAS register. Our algorithms guarantee performance even when their operations are invoked by an adaptive adversary that is able to see the entire history of operations so far, including their timing and return values. This allows them to be used as building blocks inside larger programs; using this compositionality property, we obtain several other constructions (LL/SC, fetch-and-increment, bounded max registers, and counters). To complement our constructions, we give a trade-off showing that even under a perfectly synchronous schedule and even if each process only executes one operation, any algorithm that implements any of the primitives that we consider, uses space $M$, and has latency at most $L$ with high probability must have expected latency at least $Ω(\log_{ML} P)$. Michael A. Bender, Guy E. Blelloch, Martin Farach-Colton, Rob Johnson 0001, Rotem Oshman, Renfei Zhou |
SPAA | 5 |
| 2025 | Leveraging Software Fault Tolerance for Longer Flash Hardware LifespanabstractIn the context of data center computing, the carbon emission incurred during the manufacturing of solid-state drives (SSDs), called embodied carbon, is increasingly overtaking the emissions caused by powering these drives throughout their operational lifetime. Out of an abundance of caution, current SSDs are designed to fail long before the internal flash components are completely unusable. Although this choice may be appropriate for single-disk systems, distributed storage systems can already tolerate individual SSD failures through redundancy. Aviad Zuck, Rob Johnson 0001, Donald E. Porter, Dan Tsafrir |
HotOS | 2 |
| 2025 | Don't Melt Your Cache: Low-Associativity with Heat-SinkabstractPerhaps the most influential result in the theory of caches is the following theorem due to Sleator and Tarjan: With O(1) resource augmentation, the basic LRU eviction policy is guaranteed to be O(1)-competitive with the optimal offline policy. Michael A. Bender, Alexander Conway 0001, Daniel DeLayo, Martin Farach-Colton, Jaehyun Han, Linfeng He, Rob Johnson 0001, Sudarsun Kannan, William Kuszmaul, Donald E. Porter, Evan West |
SPAA | 7 |
| 2025 | Focus! Fast On-disk Concurrency-control Using SketchesabstractConcurrency-control (CC) mechanisms are essential for ensuring consistency in large-scale key-value stores, but traditional approaches face significant challenges. Mechanisms like 2PL and OCC incur high CPU overheads. Timestamp-based mechanisms are faster but require storing timestamps for every key, resulting in substantial space overhead and numerous I/O operations in disk-based systems. We address these challenges by decomposing timestamp-based CC schemes into two components: a timestamp storage system and a CC protocol. We then show that the timestamp storage system can approximate timestamps for keys not used by ongoing transactions, substantially reducing memory requirements and I/O while maintaining correctness for various protocols (STO, MVTO, and TicToc). We introduce FPSketch, an approximate timestamp storage system, and our evaluation with SplinterDB shows that FPSketch outperforms 2PL and OCC by up to 14× on some workloads and disk-based CC systems by up to 5.9×. Remarkably, FPSketch with just 32KiB of memory yields performance comparable to an idealized in-memory implementations in our evaluation. FPSketch makes timestamp-based concurrency control mechanisms practical for disk-based key-value stores. Deukyeon Hwang, Alexander Conway 0001, Carlos Garcia-Alvarado, Jun Yuan 0006, Naama Ben-David, Rob Johnson 0001, Adriana Szekeres |
Proc. ACM Manag. Data | 6 |
| 2025 | Paging and the Address-Translation ProblemabstractThe classical paging problem, introduced by Sleator and Tarjan in 1985, formalizes the problem of caching pages in RAM in order to minimize IOs. Their online formulation ignores the cost of address translation: Programs refer to data via virtual addresses, and these must be translated into physical locations in RAM. Although the cost of an individual address translation is much smaller than that of an IO, every memory access involves an address translation, whereas IOs can be infrequent. In practice, one can spend money to avoid paging by over-provisioning RAM; in contrast, address translation is effectively unavoidable. Thus address-translation costs can sometimes dominate paging costs, and systems must simultaneously optimize both. To mitigate the cost of address translation, all modern CPUs have translation lookaside buffers (TLBs), which are hardware caches of common address translations. What makes TLBs interesting is that a single TLB entry can potentially encode the address translation for many addresses. This is typically achieved via the use of huge pages, which translate runs of contiguous virtual addresses to runs of contiguous physical addresses. Huge pages reduce TLB misses at the cost of increasing the IOs needed to maintain contiguity in RAM. This tradeoff between TLB misses and IOs suggests that the classical paging problem does not tell the full story. This article introduces the Address-Translation Problem, which formalizes the problem of maintaining a TLB, a page table, and RAM in order to minimize the total cost of both TLB misses and IOs. We present an algorithm that achieves the benefits of huge pages for TLB misses without the downsides of huge pages for IOs. Michael A. Bender, Abhishek Bhattacharjee, Alexander Conway 0001, Martin Farach-Colton, Rob Johnson 0001, Sudarsun Kannan, William Kuszmaul, Nirjhar Mukherjee, Donald E. Porter, Guido Tagliavini, Janet Vorobyeva, Evan West |
ACM Trans. Algorithms | 5 |
| 2024 | IONIA: High-Performance Replication for Modern Disk-based KV Stores
Henry Zhu, Prashant Pandey 0001, Alexander Conway 0001, Rob Johnson 0001, Aishwarya Ganesan, Ramnatthan Alagappan |
FAST | 5 |
| 2024 | Adaptive Quotient FiltersabstractFilters trade off accuracy for space and occasionally return false positive matches with a bounded error. Numerous systems use filters in fast memory to avoid performing expensive I/Os to slow storage. A fundamental limitation in traditional filters is that they do not change their representation upon seeing a false positive match. Therefore, the maximum false positive rate is only guaranteed for a single query, not for an arbitrary set of queries. We can improve the filter's performance on a stream of queries, especially on a skewed distribution, if we can adapt after encountering false positives. Adaptive filters, such as telescoping quotient filters and adaptive cuckoo filters, update their representation upon detecting a false positive to avoid repeating the same error in the future. Adaptive filters require an auxiliary structure, typically much larger than the main filter and often residing on slow storage, to facilitate adaptation. However, existing adaptive filters are not practical and have not been adopted in real-world systems for two main reasons. First, they offer weak adaptivity guarantees, meaning that fixing a new false positive can cause a previously fixed false positive to come back. Secondly, the sub-optimal design of the auxiliary structure results in adaptivity overheads so substantial that they can actually diminish overall system performance compared to a traditional filter. In this paper, we design and implement the \sysname, the first practical adaptive filter with minimal adaptivity overhead and strong adaptivity guarantees, which means that the performance and false-positive guarantees continue to hold even for adversarial workloads. The \sysname is based on the state-of-the-art quotient filter design and preserves all the critical features of the quotient filter such as cache efficiency and mergeability. Furthermore, we employ a new auxiliary structure design which results in considerably low adaptivity overhead and makes the \sysname practical in real systems. We evaluate the \sysname by using it to filter queries to an on-disk B-tree database and find no negative impact on insert or query performance compared to traditional filters. Against adversarial workloads, the \sysname preserves system performance, whereas traditional filters incur 2× slowdown from adversaries representing as low as 1% of the workload. Finally, we show that on skewed query workloads, the \sysname can reduce the false-positive rate 100× using negligible (1/1000th of a bit per item) space overhead. Richard Wen, Hunter McCoy, David Tench, Guido Tagliavini, Michael A. Bender, Alexander Conway 0001, Martin Farach-Colton, Rob Johnson 0001, Prashant Pandey 0001 |
Proc. ACM Manag. Data | 8 |
| 2023 | Mosaic Pages: Big TLB Reach with Small PagesabstractThe TLB is increasingly a bottleneck for big data applications. In most designs, the number of TLB entries are highly constrained by latency requirements, and growing much more slowly than the working sets of applications. Many solutions to this problem, such as huge pages, perforated pages, or TLB coalescing, rely on physical contiguity for performance gains, yet the cost of defragmenting memory can easily nullify these gains. This paper introduces mosaic pages, which increase TLB reach by compressing multiple, discrete translations into one TLB entry. Mosaic leverages virtual contiguity for locality, but does not use physical contiguity. Mosaic relies on recent advances in hashing theory to constrain memory mappings, in order to realize this physical address compression without reducing memory utilization or increasing swapping. This paper presents a full-system prototype of Mosaic, in gem5 and modified Linux. In simulation and with comparable hardware to a traditional design, mosaic reduces TLB misses in several workloads by 6-81%. Our results show that Mosaic’s constraints on memory mappings do not harm performance, we never see conflicts before memory is 98% full in our experiments — at which point, a traditional design would also likely swap. Once memory is over-committed, Mosaic swaps fewer pages than Linux in most cases. Finally, we present timing and area analysis for a verilog implementation of the hashing function required on the critical path for the TLB, and show that on a commercial 28nm CMOS process; the circuit runs at a maximum frequency of 4 GHz, indicating that a mosaic TLB is unlikely to affect clock frequency. Krishnan Gosakan, Jaehyun Han, William Kuszmaul, Ibrahim N. Mubarek, Nirjhar Mukherjee, Karthik Sriram, Guido Tagliavini, Evan West, Michael A. Bender, Abhishek Bhattacharjee, Alexander Conway 0001, Martin Farach-Colton, Jayneel Gandhi, Rob Johnson 0001, Sudarsun Kannan, Donald E. Porter |
ASPLOS (3) | 14 |
| 2023 | IcebergHT: High Performance Hash Tables Through Stability and Low AssociativityabstractModern hash table designs for DRAM and PMEM strive to minimize space while maximizing speed. The most important factor in speed is the number of cache lines accessed during updates and queries. On PMEM, there is an additional consideration, which is to minimize the number of writes, because on PMEM writes are more expensive than reads. This paper proposes two design objectives, stability and low-associativity, that enable us to build hash tables that minimize cache-line accesses for all operations. A hash table is stable if it does not move items around, and a hash table has low associativity if there are only a few locations where an item can be stored. Low associativity ensures that queries need to examine only a few memory locations, and stability ensures that insertions write to very few cache lines. Stability also simplifies concurrency and, on PMEM, crash safety. We present IcebergHT, a fast, concurrent, space-efficient, and crash-safe (for PMEM) hash table based on the design principles of stability and low associativity. IcebergHT combines in-memory metadata with a new hashing technique, iceberg hashing, that is (1) space efficient, (2) stable, and (3) supports low associativity. In contrast, existing hash-tables either modify numerous cache lines during insertions (e.g. cuckoo hashing), access numerous cache lines during queries (e.g. linear probing), or waste space (e.g. chaining). Moreover, the combination of (1)-(3) yields several emergent benefits: IcebergHT scales better than other hash tables, has excellent performance, and supports crash-safety on PMEM. Our benchmarks show that IcebergHT has excellent performance both in DRAM and PMEM. In PMEM, IcebergHT insertions are 50% to 3× faster than state-of-the-art PMEM hash tables, such as Dash and CLHT, and queries are 20% to 2× faster. IcebergHT space overhead is 17%, whereas Dash and CLHT have space overheads of 2× and 3×, respectively. IcebergHT also scaled linearly throughout our experiments and is crash safe. In DRAM, IcebergHT outperforms state-of-the-art hash tables libcuckoo and CLHT by almost 2× on insertions while offering good query throughput and much better space efficiency. Prashant Pandey 0001, Michael A. Bender, Alexander Conway 0001, Martin Farach-Colton, William Kuszmaul, Guido Tagliavini, Rob Johnson 0001 |
Proc. ACM Manag. Data | 7 |
| 2023 | SplinterDB and Maplets: Improving the Tradeoffs in Key-Value Store Compaction PolicyabstractA critical aspect of modern key-value stores is the interaction between compaction policy and filters. Aggressive compaction reduces the on-disk footprint of a key-value store and can improve query performance, but can reduce insertion throughput because it is I/O and CPU expensive. Filters can mitigate the query costs of lazy compaction, but only if they fit in RAM, limiting the scalability of queries with lazy compaction. And, with fast storage devices, the CPU costs of querying filters in a lazy compacting system can be significant. In this work, we present Mapped SplinterDB, a key-value store that achieves excellent insertion performance, query performance, space efficiency, and scalability by replacing filters with maplets, space-efficient data structures that act as lossy maps with false positives. Critically, we use quotient maplets, which can be merged and resized without access to the underlying data, enabling us to decouple compaction of the data from compaction of the quotient maplets. Thus Mapped SplinterDB can compact data lazily and quotient maplets aggressively, so that each level has multiple sorted runs of data but only one quotient maplet. Quotient maplets are so small that compacting them aggressively is still cheaper than compacting the (much larger) data lazily, so overall we get the insertion performance of a lazily compacted system. And, since there is only one quotient maplet to query on each level, we get the query performance of an aggressively compacted system. Furthermore, quotient maplets can accelerate queries even when they don't fit in RAM, improving scalability to huge datasets. We also show how to use quotient maplets to estimate when a compaction could resolve a high density of updates, enabling Mapped SplinterDB to perform targeted compactions for space recovery. In our benchmarks, Mapped SplinterDB matches the insertion performance of SplinterDB, a state-of-the-art lazily compacted system, and beats RocksDB, an aggressive compacting system, by up to 9×. On queries, Mapped SplinterDB outperforms SplinterDB and RocksDB by up to 89% and 83%, respectively, and scales gracefully to huge datasets. Mapped SplinterDB is able to dynamically trade update performance for space efficiency, resulting in space overheads on update-heavy workloads as low as 15-61%, whereas RocksDB had 80-117% and SplinterDB had up to 137% space overhead. Alexander Conway 0001, Martin Farach-Colton, Rob Johnson 0001 |
Proc. ACM Manag. Data | 3 |
| 2022 | When Are Cache-Oblivious Algorithms Cache Adaptive? A Case Study of Matrix Multiplication and Sorting
Arghya Bhattacharya, Abiyaz Chowdhury, Helen Xu 0001, Rathish Das, Rezaul Alam Chowdhury, Rob Johnson 0001, Rishab Nithyanand, Michael A. Bender |
ESA | 6 |
| 2022 | BetrFS: a compleat file system for commodity SSDsabstractDespite the existence of file systems tailored for flash and over a decade of research into flash file systems, this paper shows that no single Linux file system performs consistently well on a commodity SSD across different workloads. We define a compleat file system as one where no workloads realize less than 30% of the best file system's performance, and most, if not all, workloads realize at least 85% of the best file system's performance, across a diverse set of microbenchmarks and applications. No file system is compleat on commodity SSDs. This paper demonstrates that one can construct a single compleat file system for commodity SSDs by introducing a set of optimizations over BetrFS. BetrFS is a compleat file system on HDDs, matching the fastest Linux file systems in its worst cases, and, in its best cases, improving performance by up to two orders of magnitude. Yizheng Jiao, Simon Bertron, Luke Zeller, Rory Bennett, Nirjhar Mukherjee, Michael A. Bender, Michael Condict, Alexander Conway 0001, Martin Farach-Colton, Xiongzi Ge, William Jannen, Rob Johnson 0001, Donald E. Porter, Jun Yuan 0006 |
EuroSys | 13 |
| 2022 | An incrementally updatable and scalable system for large-scale sequence search using the Bentley-Saxe transformationabstractMOTIVATION: In the past few years, researchers have proposed numerous indexing schemes for searching large datasets of raw sequencing experiments. Most of these proposed indexes are approximate (i.e. with one-sided errors) in order to save space. Recently, researchers have published exact indexes-Mantis, VariMerge and Bifrost-that can serve as colored de Bruijn graph representations in addition to serving as k-mer indexes. This new type of index is promising because it has the potential to support more complex analyses than simple searches. However, in order to be useful as indexes for large and growing repositories of raw sequencing data, they must scale to thousands of experiments and support efficient insertion of new data. RESULTS: In this paper, we show how to build a scalable and updatable exact raw sequence-search index. Specifically, we extend Mantis using the Bentley-Saxe transformation to support efficient updates, called Dynamic Mantis. We demonstrate Dynamic Mantis's scalability by constructing an index of ≈40K samples from SRA by adding samples one at a time to an initial index of 10K samples. Compared to VariMerge and Bifrost, Dynamic Mantis is more efficient in terms of index-construction time and memory, query time and memory and index size. In our benchmarks, VariMerge and Bifrost scaled to only 5K and 80 samples, respectively, while Dynamic Mantis scaled to more than 39K samples. Queries were over 24× faster in Mantis than in Bifrost (VariMerge does not immediately support general search queries we require). Dynamic Mantis indexes were about 2.5× smaller than Bifrost's indexes and about half as big as VariMerge's indexes. AVAILABILITY AND IMPLEMENTATION: Dynamic Mantis implementation is available at https://github.com/splatlab/mantis/tree/mergeMSTs. SUPPLEMENTARY INFORMATION: Supplementary data are available at Bioinformatics online. Fatemeh Almodaresi, Jamshed Khan, Sergey Madaminov, Michael Ferdman, Rob Johnson 0001, Prashant Pandey 0001, Rob Patro |
Bioinform. | 5 |
| 2021 | Vector Quotient Filters: Overcoming the Time/Space Trade-Off in Filter DesignabstractToday's filters, such as quotient, cuckoo, and Morton, have a trade-off between space and speed; even when moderately full (e.g., 50%-75% full), their performance degrades nontrivially. The result is that today's systems designers are forced to choose between speed and space usage. In this paper, we present the vector quotient filter (VQF). Locally, the VQF is based on Robin Hood hashing, like the quotient filter, but uses power-of-two-choices hashing to reduce the variance of runs, and thus offers consistent, high throughput across load factors. Power-of-two-choices hashing also makes it more amenable to concurrent updates, compared to the cuckoo filter and variants. Finally, the vector quotient filter is designed to exploit SIMD instructions so that all operations have O (1) cost, independent of the size of the filter or its load factor. We show that the vector quotient filter is 2× faster for inserts compared to the Morton filter (a cuckoo filter variant and state-of-the-art for inserts) and has similar lookup and deletion performance as the cuckoo filter (which is fastest for queries and deletes), despite having a simpler design and implementation. The vector quotient filter has minimal performance decline at high load factors, a problem that has plagued modern filters, including quotient, cuckoo, and Morton. Furthermore, we give a thread-safe version of the vector quotient filter and show that insertion throughput scales 3× with four threads compared to a single thread. Prashant Pandey 0001, Alexander Conway 0001, Joe Durie, Michael A. Bender, Martin Farach-Colton, Rob Johnson 0001 |
SIGMOD Conference | 6 |
| 2021 | Paging and the Address-Translation ProblemabstractThe classical paging problem, introduced by Sleator and Tarjan in 1985, formalizes the problem of caching pages in RAM in order to minimize IOs. Their online formulation ignores the cost of address translation: programs refer to data via virtual addresses, and these must be translated into physical locations in RAM. Although the cost of an individual address translation is much smaller than that of an IO, every memory access involves an address translation, whereas IOs can be infrequent. In practice, one can spend money to avoid paging by over-provisioning RAM; in contrast, address translation is effectively unavoidable. Thus address-translation costs can sometimes dominate paging costs, and systems must simultaneously optimize both. Michael A. Bender, Abhishek Bhattacharjee, Alexander Conway 0001, Martin Farach-Colton, Rob Johnson 0001, Sudarsun Kannan, William Kuszmaul, Nirjhar Mukherjee, Donald E. Porter, Guido Tagliavini, Janet Vorobyeva, Evan West |
SPAA | 5 |
| 2021 | Timely Reporting of Heavy Hitters Using External MemoryabstractGiven an input stream S of size N , a ɸ-heavy hitter is an item that occurs at least ɸN times in S . The problem of finding heavy-hitters is extensively studied in the database literature. We study a real-time heavy-hitters variant in which an element must be reported shortly after we see its T = ɸ N-th occurrence (and hence it becomes a heavy hitter). We call this the Timely Event Detection ( TED ) Problem. The TED problem models the needs of many real-world monitoring systems, which demand accurate (i.e., no false negatives) and timely reporting of all events from large, high-speed streams with a low reporting threshold (high sensitivity). Like the classic heavy-hitters problem, solving the TED problem without false-positives requires large space (Ω (N) words). Thus in-RAM heavy-hitters algorithms typically sacrifice accuracy (i.e., allow false positives), sensitivity, or timeliness (i.e., use multiple passes). We show how to adapt heavy-hitters algorithms to external memory to solve the TED problem on large high-speed streams while guaranteeing accuracy, sensitivity, and timeliness. Our data structures are limited only by I/O-bandwidth (not latency) and support a tunable tradeoff between reporting delay and I/O overhead. With a small bounded reporting delay, our algorithms incur only a logarithmic I/O overhead. We implement and validate our data structures empirically using the Firehose streaming benchmark. Multi-threaded versions of our structures can scale to process 11M observations per second before becoming CPU bound. In comparison, a naive adaptation of the standard heavy-hitters algorithm to external memory would be limited by the storage device’s random I/O throughput, i.e., ≈100K observations per second. Shikha Singh 0002, Prashant Pandey 0001, Michael A. Bender, Jonathan W. Berry, Martin Farach-Colton, Rob Johnson 0001, Tom M. Kroeger, Cynthia A. Phillips |
ACM Trans. Database Syst. | 6 |
| 2021 | Copy-on-Abundant-Write for Nimble File System ClonesabstractMaking logical copies, or clones, of files and directories is critical to many real-world applications and workflows, including backups, virtual machines, and containers. An ideal clone implementation meets the following performance goals: (1) creating the clone has low latency; (2) reads are fast in all versions (i.e., spatial locality is always maintained, even after modifications); (3) writes are fast in all versions; (4) the overall system is space efficient. Implementing a clone operation that realizes all four properties, which we call a nimble clone , is a long-standing open problem. This article describes nimble clones in B-ϵ-tree File System (BetrFS), an open-source, full-path-indexed, and write-optimized file system. The key observation behind our work is that standard copy-on-write heuristics can be too coarse to be space efficient, or too fine-grained to preserve locality. On the other hand, a write-optimized key-value store, such as a Bε-tree or an log-structured merge-tree (LSM)-tree, can decouple the logical application of updates from the granularity at which data is physically copied. In our write-optimized clone implementation, data sharing among clones is only broken when a clone has changed enough to warrant making a copy, a policy we call copy-on-abundant-write . We demonstrate that the algorithmic work needed to batch and amortize the cost of BetrFS clone operations does not erode the performance advantages of baseline BetrFS; BetrFS performance even improves in a few cases. BetrFS cloning is efficient; for example, when using the clone operation for container creation, BetrFS outperforms a simple recursive copy by up to two orders-of-magnitude and outperforms file systems that have specialized Linux Containers (LXC) backends by 3--4×. Yang Zhan 0001, Alexander Conway 0001, Yizheng Jiao, Nirjhar Mukherjee, Ian Groombridge, Michael A. Bender, Martin Farach-Colton, William Jannen, Rob Johnson 0001, Donald E. Porter, Jun Yuan 0006 |
ACM Trans. Storage | 9 |
| 2020 | How to Copy Files
Yang Zhan 0001, Alexander Conway 0001, Yizheng Jiao, Nirjhar Mukherjee, Ian Groombridge, Michael A. Bender, Martin Farach-Colton, William Jannen, Rob Johnson 0001, Donald E. Porter, Jun Yuan 0006 |
FAST | 9 |
| 2020 | Storage Systems are Distributed Systems (So Verify Them That Way!)
Travis Hance, Andrea Lattuada 0001, Chris Hawblitzel, Jon Howell, Rob Johnson 0001, Bryan Parno |
OSDI | 5 |
| 2020 | Timely Reporting of Heavy Hitters using External MemoryabstractGiven an input stream of size N, a φ-heavy hitter is an item that occurs at least φ N times in S. The problem of finding heavy-hitters is extensively studied in the database literature. We study a real-time heavy-hitters variant in which an element must be reported shortly after we see its T = φ N-th occurrence (and hence becomes a heavy hitter). We call this the Timely Event Detection (TED) Problem. The TED problem models the needs of many real-world monitoring systems, which demand accurate (i.e., no false negatives) and timely reporting of all events from large, high-speed streams, and with a low reporting threshold (high sensitivity). Like the classic heavy-hitters problem, solving the TED problem without false-positives requires large space (Ω(N) words). Thus in-RAM heavy-hitters algorithms typically sacrifice accuracy (i.e., allow false positives), sensitivity, or timeliness (i.e., use multiple passes). We show how to adapt heavy-hitters algorithms to external memory to solve the TED problem on large high-speed streams while guaranteeing accuracy, sensitivity, and timeliness. Our data structures are limited only by I/O-bandwidth (not latency) and support a tunable trade-off between reporting delay and I/O overhead. With a small bounded reporting delay, our algorithms incur only a logarithmic I/O overhead. We implement and validate our data structures empirically using the Firehose streaming benchmark. Multi-threaded versions of our structures can scale to process 11M observations per second before becoming CPU bound. In comparison, a naive adaptation of the standard heavy-hitters algorithm to external memory would be limited by the storage device's random I/O throughput, i.e., ~100K observations per second. Prashant Pandey 0001, Shikha Singh 0002, Michael A. Bender, Jonathan W. Berry, Martin Farach-Colton, Rob Johnson 0001, Tom M. Kroeger, Cynthia A. Phillips |
SIGMOD Conference | 6 |
| 2020 | Flushing Without CascadesabstractBuffer-and-flush is a technique for transforming standard external-memory search trees into write-optimized search trees. In exchange for faster amortized insertions, buffer-and-flush can sometimes significantly increase the latency of operations by causing cascades of flushes. In this paper, we show that flushing cascades are not a fundamental consequence of the buffer-flushing technique, and can be removed entirely using randomization techniques. The underlying implementation of buffer flushing relies on a buffer-eviction strategy at each node in the tree. The ability for the user to select the buffer eviction strategy based on the workload has been shown to be important for performance, both in theory and in practice. In order to support arbitrary buffer-eviction strategies, we introduce the notion of a universal flush, which uses a universal eviction policy that can simulate any other eviction policy. This abstracts away the underlying eviction strategy, even allowing for workload-specific strategies that change dynamically. Our deamortization preserves the amortized throughput of the underlying flushing strategy on all workloads. In particular, with our deamortization and a node cache of size poly-logarithmic in the number of insertions performed on the tree, the amortized insertion cost matches the lower bound of Brodal and Fagerberg. For typical parameters, the lower bound is less than 1 I/O per insertion. For such parameters, our worst-case insertion cost is O(1) I/Os. Michael A. Bender, Rathish Das, Martin Farach-Colton, Rob Johnson 0001, William Kuszmaul |
SODA | 4 |
| 2020 | Closing the Gap Between Cache-oblivious and Cache-adaptive AnalysisabstractCache-adaptive analysis was introduced to analyze the performance of an algorithm when the cache (or internal memory) available to the algorithm dynamically changes size. These memory-size fluctuations are, in fact, the common case in multi-core machines, where threads share cache and RAM. An algorithm is said to be efficiently cache-adaptive if it achieves optimal utilization of the dynamically changing cache. Cache-adaptive analysis was inspired by cache-oblivious analysis. Many (or even most) optimal cache-oblivious algorithms have an $(a,b,c)$-regular recursive structure. Such $(a, b, c)$-regular algorithms include Longest Common Subsequence, All Pairs Shortest Paths, Matrix Multiplication, Edit Distance, Gaussian Elimination Paradigm, etc. Bender et al. (2016) showed that some of these optimal cache-oblivious algorithms remain optimal even when cache changes size dynamically, but that in general they can be as much as logarithmic factor away from optimal. However, their analysis depends on constructing a highly structured, worst-case memory profile, or sequences of fluctuations in cache size. These worst-case profiles seem fragile, suggesting that the logarithmic gap may be an artifact of an unrealistically powerful adversary. We close the gap between cache-oblivious and cache-adaptive analysis by showing how to make a smoothed analysis of cache-adaptive algorithms via random reshuffling of memory fluctuations. Remarkably, we also show the limits of several natural forms of smoothing, including random perturbations of the cache size and randomizing the algorithm's starting time. Nonetheless, we show that if one takes an arbitrary profile and performs a random shuffle on when "significant events'' occur within the profile, then the shuffled profile becomes optimally cache-adaptive in expectation, even when the initial profile is adversarially constructed. These results suggest that cache-obliviousness is a solid foundation for achieving cache-adaptivity when the memory profile is not overly tailored to the algorithm structure. Michael A. Bender, Rezaul Alam Chowdhury, Rathish Das, Rob Johnson 0001, William Kuszmaul, Andrea Lincoln, Quanquan C. Liu, Jayson Lynch, Helen Xu 0001 |
SPAA | 4 |
| 2020 | SplinterDB: Closing the Bandwidth Gap for NVMe Key-Value Stores
Alexander Conway 0001, Vijay Chidambaram, Martin Farach-Colton, Richard P. Spillane, Amy Tai, Rob Johnson 0001 |
USENIX ATC | 7 |
| 2019 | Filesystem Aging: It's more Usage than Fullness
Alexander Conway 0001, Eric Knorr, Yizheng Jiao, Michael A. Bender, William Jannen, Rob Johnson 0001, Donald E. Porter, Martin Farach-Colton |
HotStorage | 6 |
| 2019 | Engineering a high-performance GPU B-TreeabstractWe engineer a GPU implementation of a B-Tree that supports concurrent queries (point, range, and successor) and updates (insertions and deletions). Our B-tree outperforms the state of the art, a GPU log-structured merge tree (LSM) and a GPU sorted array. In particular, point and range queries are significantly faster than in a GPU LSM (the GPU LSM does not implement successor queries). Furthermore, B-Tree insertions are also faster than LSM and sorted array insertions unless insertions come in batches of more than roughly 100k. Because we cache the upper levels of the tree, we achieve lookup throughput that exceeds the DRAM bandwidth of the GPU. We demonstrate that the key limiter of performance on a GPU is contention and describe the design choices that allow us to achieve this high performance. Muhammad A. Awad, Saman Ashkiani, Rob Johnson 0001, Martin Farach-Colton, John D. Owens |
PPoPP | 3 |
| 2019 | An Efficient, Scalable and Exact Representation of High-Dimensional Color Information Enabled via de Bruijn Graph Search
Fatemeh Almodaresi, Prashant Pandey 0001, Michael Ferdman, Rob Johnson 0001, Rob Patro |
RECOMB | 4 |
| 2019 | Optimal Ball RecyclingabstractBalls-and-bins games have been a successful tool for modeling load balancing problems. In this paper, we study a new scenario, which we call the ball-recycling game, defined as follows: Throw m balls into n bins i.i.d. according to a given probability distribution p. Then, at each time step, pick a non-empty bin and recycle its balls: take the balls from the selected bin and re-throw them according to p. This balls-and-bins game closely models memory-access heuristics in databases. The goal is to have a bin-picking method that maximizes the recycling rate, defined to be the expected number of balls recycled per step in the stationary distribution. We study two natural strategies for ball recycling: Fullest Bin, which greedily picks the bin with the maximum number of balls, and Random Ball, which picks a ball at random and recycles its bin. We show that for general p, random Ball is Θ(1)-optimal, whereas Fullest Bin can be pessimal. However, when p = u, the uniform distribution, Fullest Bin is optimal to within an additive constant. Michael A. Bender, Jake Christensen, Alexander Conway 0001, Martin Farach-Colton, Rob Johnson 0001, Meng-Tsung Tsai |
SODA | 5 |
| 2019 | Small Refinements to the DAM Can Have Big Consequences for Data-Structure DesignabstractStorage devices have complex performance profiles, including costs to initiate IOs (e.g., seek times in hard drives), parallelism and bank conflicts (in SSDs), costs to transfer data, and firmware-internal operations. The Disk-Access Machine (DAM) model simplifies reality by assuming that storage devices transfer data in blocks of size B and that all transfers have unit cost. Despite its simplifications, the DAM model is reasonably accurate. In fact, if B is set to the half-bandwidth point, where the latency and bandwidth of the hardware are equal, the DAM approximates the IO cost on any hardware to within a factor of 2. Furthermore, the DAM explains the popularity of B-trees in the 70s and the current popularity of B-trees and log-structured merge trees. But it fails to explain why some B-trees use small nodes, whereas all B-trees use large nodes. In a DAM, all IOs, and hence all nodes, are the same size. In this paper, we show that the affine and PDAM models, which are small refinements of the DAM model, yield a surprisingly large improvement in predictability without sacrificing ease of use. We present benchmarks on a large collection of storage devices showing that the affine and PDAM models give good approximations of the performance characteristics of hard drives and SSDs, respectively. We show that the affine model explains node-size choices in B-trees and B+-trees. Furthermore, the models predict that the B-tree is highly sensitive to variations in the node size whereas B-trees are much less sensitive. These predictions are born out empirically. Finally, we show that in both the affine and PDAM models, it pays to organize data structures to exploit varying IO size. In the affine model, B-trees can be optimized so that all operations are simultaneously optimal, even up to lower order terms. In the PDAM model, B-trees (or B+-trees) can be organized so that both sequential and concurrent workloads are handled efficiently. We conclude that the DAM model is useful as a first cut when designing or analyzing an algorithm or data structure but the affine and PDAM models enable the algorithm designer to optimize parameter choices and fill in design details. Michael A. Bender, Alexander Conway 0001, Martin Farach-Colton, William Jannen, Yizheng Jiao, Rob Johnson 0001, Eric Knorr, Sara McAllister, Nirjhar Mukherjee, Prashant Pandey 0001, Donald E. Porter, Jun Yuan 0006, Yang Zhan 0001 |
SPAA | 6 |
| 2018 | The Full Path to Full-Path Indexing
Yang Zhan 0001, Alexander Conway 0001, Yizheng Jiao, Eric Knorr, Michael A. Bender, Martin Farach-Colton, William Jannen, Rob Johnson 0001, Donald E. Porter, Jun Yuan 0006 |
FAST | 8 |
| 2018 | Bloom Filters, Adaptivity, and the Dictionary ProblemabstractAn approximate membership query data structure (AMQ)-such as a Bloom, quotient, or cuckoo filter-maintains a compact, probabilistic representation of a set S of keys from a universe U. It supports lookups and inserts. Some AMQs also support deletes. A query for x ∈ S returns PRESENT. A query for x ∉ S returns PRESENT with a tunable false-positive probability ε, and otherwise returns ABSENT. AMQs are widely used to speed up dictionaries that are stored remotely (e.g., on disk or across a network). The AMQ is stored locally (e.g., in memory). The remote dictionary is only accessed when the AMQ returns PRESENT. Thus, the primary performance metric of an AMQ is how often it returns ABSENT for negative queries. Existing AMQs offer weak guarantees on the number of false positives in a sequence of queries. The false-positive probability ε holds only for a single query. It is easy for an adversary to drive an AMQ's false-positive rate towards 1 by simply repeating false positives. This paper shows what it takes to get strong guarantees on the number of false positives. We say that an AMQ is adaptive if it guarantees a false-positive probability of ε for every query, regardless of answers to previous queries. We establish upper and lower bounds for adaptive AMQs. Our lower bound shows that it is impossible to build a small adaptive AMQ, even when the AMQ is immediately told whenever a query is a false positive. On the other hand, we show that it is possible to maintain an AMQ that uses the same amount of local space as a non-adaptive AMQ (up to lower order terms), performs all queries and updates in constant time, and guarantees that each negative query to the dictionary accesses remote storage with probability ε, independent of the results of past queries. Thus, we show that adaptivity can be achieved effectively for free. Michael A. Bender, Martin Farach-Colton, Mayank Goswami 0001, Rob Johnson 0001, Samuel McCauley, Shikha Singh 0002 |
FOCS | 4 |
| 2018 | Mantis: A Fast, Small, and Exact Large-Scale Sequence-Search Index
Prashant Pandey 0001, Fatemeh Almodaresi, Michael A. Bender, Michael Ferdman, Rob Johnson 0001, Rob Patro |
RECOMB | 5 |
| 2018 | Squeakr: an exact and approximate k-mer counting systemabstractMotivation: k-mer-based algorithms have become increasingly popular in the processing of high-throughput sequencing data. These algorithms span the gamut of the analysis pipeline from k-mer counting (e.g. for estimating assembly parameters), to error correction, genome and transcriptome assembly, and even transcript quantification. Yet, these tasks often use very different k-mer representations and data structures. In this article, we show how to build a k-mer-counting and multiset-representation system using the counting quotient filter, a feature-rich approximate membership query data structure. We introduce the k-mer-counting/querying system Squeakr (Simple Quotient filter-based Exact and Approximate Kmer Representation), which is based on the counting quotient filter. This off-the-shelf data structure turns out to be an efficient (approximate or exact) representation for sets or multisets of k-mers. Results: Squeakr takes 2×-4.3× less time than the state-of-the-art to count and perform a random-point-query workload. Squeakr is memory-efficient, consuming 1.5×-4.3× less memory than the state-of-the-art. It offers competitive counting performance. In fact, it is faster for larger k-mers, and answers point queries (i.e. queries for the abundance of a particular k-mer) over an order-of-magnitude faster than other systems. The Squeakr representation of the k-mer multiset turns out to be immediately useful for downstream processing (e.g. de Bruijn graph traversal) because it supports fast queries and dynamic k-mer insertion, deletion, and modification. Availability and implementation: https://github.com/splatlab/squeakr available under BSD 3-Clause License. Contact: [email protected]. Supplementary information: Supplementary data are available at Bioinformatics online. Prashant Pandey 0001, Michael A. Bender, Rob Johnson 0001, Rob Patro |
Bioinform. | 3 |
| 2018 | Efficient Directory Mutations in a Full-Path-Indexed File SystemabstractFull-path indexing can improve I/O efficiency for workloads that operate on data organized using traditional, hierarchical directories, because data is placed on persistent storage in scan order. Prior results indicate, however, that renames in a local file system with full-path indexing are prohibitively expensive. This article shows how to use full-path indexing in a file system to realize fast directory scans, writes, and renames. The article introduces a range-rename mechanism for efficient key-space changes in a write-optimized dictionary. This mechanism is encapsulated in the key-value Application Programming Interface (API) and simplifies the overall file system design. We implemented this mechanism in B ε -trees File System (BetrFS), an in-kernel, local file system for Linux. This new version, BetrFS 0.4, performs recursive greps 1.5x faster and random writes 1.2x faster than BetrFS 0.3, but renames are competitive with indirection-based file systems for a range of sizes. BetrFS 0.4 outperforms BetrFS 0.3, as well as traditional file systems, such as ext4, Extents File System (XFS), and Z File System (ZFS), across a variety of workloads. Yang Zhan 0001, Yizheng Jiao, Donald E. Porter, Alexander Conway 0001, Eric Knorr, Martin Farach-Colton, Michael A. Bender, Jun Yuan 0006, William Jannen, Rob Johnson 0001 |
ACM Trans. Storage | 10 |
| 2017 | File Systems Fated for Senescence? Nonsense, Says Science!
Alexander Conway 0001, Ainesh Bakshi, Yizheng Jiao, William Jannen, Yang Zhan 0001, Jun Yuan 0006, Michael A. Bender, Rob Johnson 0001, Bradley C. Kuszmaul, Donald E. Porter, Martin Farach-Colton |
FAST | 8 |
| 2017 | Write-Optimized Skip ListsabstractThe skip list is an elegant dictionary data structure that is commonly deployed in RAM. A skip list with N elements supports searches, inserts, and deletes in O(log N) operations with high probability (w.h.p.) and range queries returning K elements in O(log N + K) operations w.h.p. Michael A. Bender, Martin Farach-Colton, Rob Johnson 0001, Simon Mauras, Tyler Mayer, Cynthia A. Phillips, Helen Xu 0001 |
PODS | 3 |
| 2017 | A General-Purpose Counting Filter: Making Every Bit CountabstractApproximate Membership Query (AMQ) data structures, such as the Bloom filter, quotient filter, and cuckoo filter, have found numerous applications in databases, storage systems, networks, computational biology, and other domains. However, many applications must work around limitations in the capabilities or performance of current AMQs, making these applications more complex and less performant. For example, many current AMQs cannot delete or count the number of occurrences of each input item, take up large amounts of space, are slow, cannot be resized or merged, or have poor locality of reference and hence perform poorly when stored on SSD or disk. This paper proposes a new general-purpose AMQ, the counting quotient filter (CQF). The CQF supports approximate membership testing and counting the occurrences of items in a data set. This general-purpose AMQ is small and fast, has good locality of reference, scales out of RAM to SSD, and supports deletions, counting (even on skewed data sets), resizing, merging, and highly concurrent access. The paper reports on the structure's performance on both manufactured and application-generated data sets. Prashant Pandey 0001, Michael A. Bender, Rob Johnson 0001, Rob Patro |
SIGMOD Conference | 3 |
| 2017 | deBGR: an efficient and near-exact representation of the weighted de Bruijn graphabstractMOTIVATION: Almost all de novo short-read genome and transcriptome assemblers start by building a representation of the de Bruijn Graph of the reads they are given as input. Even when other approaches are used for subsequent assembly (e.g. when one is using 'long read' technologies like those offered by PacBio or Oxford Nanopore), efficient k -mer processing is still crucial for accurate assembly, and state-of-the-art long-read error-correction methods use de Bruijn Graphs. Because of the centrality of de Bruijn Graphs, researchers have proposed numerous methods for representing de Bruijn Graphs compactly. Some of these proposals sacrifice accuracy to save space. Further, none of these methods store abundance information, i.e. the number of times that each k -mer occurs, which is key in transcriptome assemblers. RESULTS: We present a method for compactly representing the weighted de Bruijn Graph (i.e. with abundance information) with essentially no errors. Our representation yields zero errors while increasing the space requirements by less than 18-28% compared to the approximate de Bruijn graph representation in Squeakr. Our technique is based on a simple invariant that all weighted de Bruijn Graphs must satisfy, and hence is likely to be of general interest and applicable in most weighted de Bruijn Graph-based systems. AVAILABILITY AND IMPLEMENTATION: https://github.com/splatlab/debgr . CONTACT: [email protected]. SUPPLEMENTARY INFORMATION: Supplementary data are available at Bioinformatics online. Prashant Pandey 0001, Michael A. Bender, Rob Johnson 0001, Rob Patro |
Bioinform. | 3 |
| 2017 | Writes Wrought Right, and Other Adventures in File System OptimizationabstractFile systems that employ write-optimized dictionaries (WODs) can perform random-writes, metadata updates, and recursive directory traversals orders of magnitude faster than conventional file systems. However, previous WOD-based file systems have not obtained all of these performance gains without sacrificing performance on other operations, such as file deletion, file or directory renaming, or sequential writes. Using three techniques, late-binding journaling , zoning , and range deletion , we show that there is no fundamental trade-off in write-optimization. These dramatic improvements can be retained while matching conventional file systems on all other operations. BetrFS 0.2 delivers order-of-magnitude better performance than conventional file systems on directory scans and small random writes and matches the performance of conventional file systems on rename, delete, and sequential I/O. For example, BetrFS 0.2 performs directory scans 2.2 × faster, and small random writes over two orders of magnitude faster, than the fastest conventional file system. But unlike BetrFS 0.1, it renames and deletes files commensurate with conventional file systems and performs large sequential I/O at nearly disk bandwidth. The performance benefits of these techniques extend to applications as well. BetrFS 0.2 continues to outperform conventional file systems on many applications, such as as rsync, git-diff, and tar, but improves git-clone performance by 35% over BetrFS 0.1, yielding performance comparable to other file systems. Jun Yuan 0006, Yang Zhan 0001, William Jannen, Prashant Pandey 0001, Amogh Akshintala, Kanchan Chandnani, Pooja Deo, Zardosht Kasheff, Leif Walsh, Michael A. Bender, Martin Farach-Colton, Rob Johnson 0001, Bradley C. Kuszmaul, Donald E. Porter |
ACM Trans. Storage | 12 |
| 2016 | Games without Frontiers: Investigating Video Games as a Covert ChannelabstractThe Internet has become a critical communication infrastructure for citizens to organize protests and express dissatisfaction with their governments. This fact has not gone unnoticed, with governments clamping down on this medium via censorship, and circumvention researchers working to stay one step ahead. In this paper, we explore video games as a new avenue for covert channels. Two features make video games attractive for use as a cover protocol in censorship circumvention tools: First, games within a genre share many common features. Second, there are many different games, each with their own protocols and server infrastructures. These features allow circumvention tool developers to build a single framework that can be adapted to work with many different games within a genre; therefore allowing quick response to censor created blockades. In addition, censored users can diversify their covert communications across many different games, making it difficult for a censor to respond by simply blocking a single covert channel. We demonstrate the feasibility of this approach by implementing our circumvention scheme over three real-time strategy games (including two best-selling closed-source games). We evaluate the security of our system prototype, Castle, by quantifying its resilience to a censor-adversary, similarity to real game traffic, and ability to avoid common pitfalls in covert channel design. We use our prototype to demonstrate that our approach can provide the throughput necessary for bootstrapping higher bandwidth channels and also the transfer of textual data, such as web articles, e-mail, SMS messages, and tweets, which are commonly used to organize political actions. Bridger Hahn, Rishab Nithyanand, Phillipa Gill, Rob Johnson 0001 |
EuroS&P | 4 |
| 2016 | Optimizing Every Operation in a Write-optimized File System
Jun Yuan 0006, Yang Zhan 0001, William Jannen, Prashant Pandey 0001, Amogh Akshintala, Kanchan Chandnani, Pooja Deo, Zardosht Kasheff, Leif Walsh, Michael A. Bender, Martin Farach-Colton, Rob Johnson 0001, Bradley C. Kuszmaul, Donald E. Porter |
FAST | 12 |
| 2016 | Lazy Analytics: Let Other Queries Do the Work For You
William Jannen, Michael A. Bender, Martin Farach-Colton, Rob Johnson 0001, Bradley C. Kuszmaul, Donald E. Porter |
HotStorage | 4 |
| 2016 | The I/O Complexity of Computing Prime Tables
Michael A. Bender, Rezaul Alam Chowdhury, Alexander Conway 0001, Martin Farach-Colton, Pramod Ganapathi, Rob Johnson 0001, Samuel McCauley, Bertrand Simon 0001, Shikha Singh 0002 |
LATIN | 6 |
| 2016 | Anti-Persistence on Persistent Storage: History-Independent Sparse Tables and DictionariesabstractWe present history-independent alternatives to a B-tree, the primary indexing data structure used in databases. A data structure is history independent (HI) if it is impossible to deduce any information by examining the bit representation of the data structure that is not already available through the API. We show how to build a history-independent cache-oblivious B-tree and a history-independent external-memory skip list. One of the main contributions is a data structure we build on the way---a history-independent packed-memory array (PMA). The PMA supports efficient range queries, one of the most important operations for answering database queries. Michael A. Bender, Jonathan W. Berry, Rob Johnson 0001, Tom M. Kroeger, Samuel McCauley, Cynthia A. Phillips, Bertrand Simon 0001, Shikha Singh 0002, David Zage |
PODS | 3 |
| 2016 | Cache-Adaptive AnalysisabstractMemory efficiency and locality have substantial impact on the performance of programs, particularly when operating on large data sets. Thus, memory- or I/O-efficient algorithms have received significant attention both in theory and practice. The widespread deployment of multicore machines, however, brings new challenges. Specifically, since the memory (RAM) is shared across multiple processes, the effective memory-size allocated to each process fluctuates over time. This paper presents techniques for designing and analyzing algorithms in a cache-adaptive setting, where the RAM available to the algorithm changes over time. These techniques make analyzing algorithms in the cache-adaptive model almost as easy as in the external memory, or DAM model. Our techniques enable us to analyze a wide variety of algorithms --- Master-Method-style algorithms, Akra-Bazzi-style algorithms, collections of mutually recursive algorithms, and algorithms, such as FFT, that break problems of size N into subproblems of size Theta(Nc). Michael A. Bender, Erik D. Demaine, Roozbeh Ebrahimi, Jeremy T. Fineman, Rob Johnson 0001, Andrea Lincoln, Jayson Lynch, Samuel McCauley |
SPAA | 5 |
| 2016 | Optimizing Every Operation in a Write-optimized File System
Jun Yuan 0006, Yang Zhan 0001, William Jannen, Prashant Pandey 0001, Amogh Akshintala, Kanchan Chandnani, Pooja Deo, Zardosht Kasheff, Leif Walsh, Michael A. Bender, Martin Farach-Colton, Rob Johnson 0001, Bradley C. Kuszmaul, Donald E. Porter |
USENIX ATC | 12 |
| 2015 | Fixing Races For Good: Portable and Reliable UNIX File-System Race DetectionabstractWe present a system for performing arbitrary sequences of filesystem operations and provably detecting any violation of serializable isolation semantics, i.e. any interleaving of attacker and defender actions is equivalent to a non-interleaved sequence of attacker and defender actions. Thus, our system provides a provably secure defense against all UNIX file-name race conditions, including the infamous access/open race. Our solution operates entirely in user-space and is portable to any POSIX.1-2008 system, making it usable today. Developers can adopt our solution selectively, using it for security-critical code and using the standard POSIX interface for non-security-critical parts of their programs. Furthermore, the proofs of correctness suggest several simple improvements to the POSIX standard. Xiang Cai, Rucha Lale, Xin Cheng Zhang, Rob Johnson 0001 |
AsiaCCS | 4 |
| 2015 | BetrFS: A Right-Optimized Write-Optimized File System
William Jannen, Jun Yuan 0006, Yang Zhan 0001, Amogh Akshintala, John Esmet, Yizheng Jiao, Ankur Mittal, Prashant Pandey 0001, Phaneendra Reddy, Leif Walsh, Michael A. Bender, Martin Farach-Colton, Rob Johnson 0001, Bradley C. Kuszmaul, Donald E. Porter |
FAST | 13 |
| 2015 | BetrFS: Write-Optimization in a Kernel File SystemabstractThe B ε -tree File System , or B e trFS (pronounced “better eff ess”), is the first in-kernel file system to use a write-optimized data structure (WODS). WODS are promising building blocks for storage systems because they support both microwrites and large scans efficiently. Previous WODS-based file systems have shown promise but have been hampered in several ways, which B e trFS mitigates or eliminates altogether. For example, previous WODS-based file systems were implemented in user space using FUSE, which superimposes many reads on a write-intensive workload, reducing the effectiveness of the WODS. This article also contributes several techniques for exploiting write-optimization within existing kernel infrastructure. B e trFS dramatically improves performance of certain types of large scans, such as recursive directory traversals, as well as performance of arbitrary microdata operations, such as file creates, metadata updates, and small writes to files. B e trFS can make small, random updates within a large file 2 orders of magnitude faster than other local file systems. B e trFS is an ongoing prototype effort and requires additional data-structure tuning to match current general-purpose file systems on some operations, including deletes, directory renames, and large sequential writes. Nonetheless, many applications realize significant performance improvements on B e trFS. For instance, an in-place rsync of the Linux kernel source sees roughly 1.6--22 × speedup over commodity file systems. William Jannen, Jun Yuan 0006, Yang Zhan 0001, Amogh Akshintala, John Esmet, Yizheng Jiao, Ankur Mittal, Prashant Pandey 0001, Phaneendra Reddy, Leif Walsh, Michael A. Bender, Martin Farach-Colton, Rob Johnson 0001, Bradley C. Kuszmaul, Donald E. Porter |
ACM Trans. Storage | 13 |
| 2014 | A Systematic Approach to Developing and Evaluating Website Fingerprinting DefensesabstractFingerprinting attacks have emerged as a serious threat against privacy mechanisms, such as SSL, Tor, and encrypting tunnels. Researchers have proposed numerous attacks and defenses, and the Tor project now includes both network- and browser-level defenses against these attacks, but published defenses have high overhead, poor security, or both. Xiang Cai, Rishab Nithyanand, Tao Wang 0012, Rob Johnson 0001, Ian Goldberg 0001 |
CCS | 4 |
| 2014 | Cache-Adaptive AlgorithmsabstractWe introduce the cache-adaptive model, which generalizes the external-memory model to apply to environments in which the amount of memory available to an algorithm can fluctuate. The cache-adaptive model applies to operating systems, databases, and other systems where the allocation of memory to processes changes over time. We prove that if an optimal cache-oblivious algorithm has a particular recursive structure, then it is also an optimal cache-adaptive algorithm. Cache-oblivious algorithms having this form include Floyd-Warshall all pairs shortest paths, naïve recursive matrix multiplication, matrix transpose, and Gaussian elimination. While the cache-oblivious sorting algorithm Lazy Funnel Sort does not have this recursive structure, we prove that it is nonetheless optimally cache-adaptive. We also establish that if a cache-oblivious algorithm is optimal on “square”” (well-behaved) memory profiles then, given resource augmentation it is optimal on all memory profiles. We give paging algorithms for the case where the cache size changes dynamically. We prove that LRU with 4-memory and 4-speed augmentation is competitive with optimal. Moreover, Belady's algorithm remains optimal even when the cache size changes. Cache-obliviousness is distinct from cache-adaptivity. We exhibit a cache-oblivious algorithm that is not cache-adaptive and a cache-adaptive algorithm for a problem having no optimal cache-oblivious solution. Michael A. Bender, Roozbeh Ebrahimi, Jeremy T. Fineman, Golnaz Ghasemiesfeh, Rob Johnson 0001, Samuel McCauley |
SODA | 5 |
| 2014 | Effective Attacks and Provable Defenses for Website Fingerprinting
Tao Wang 0012, Xiang Cai, Rishab Nithyanand, Rob Johnson 0001, Ian Goldberg 0001 |
USENIX Security Symposium | 4 |
| 2012 | Types and Access Controls for Cross-Domain Security in Flash
Aseem Rastogi, Avik Chaudhuri, Rob Johnson 0001 |
APLAS | 3 |
| 2012 | Touching from a distance: website fingerprinting attacks and defensesabstractWe present a novel web page fingerprinting attack that is able to defeat several recently proposed defenses against traffic analysis attacks, including the application-level defenses HTTPOS and randomized pipelining over Tor. Regardless of the defense scheme, our attack was able to guess which of 100 web pages a victim was visiting at least 50% of the time and, with some defenses, over 90% of the time. Our attack is based on a simple model of network behavior and out-performs previously proposed ad hoc attacks. We then build a web site fingerprinting attack that is able to identify whether a victim is visiting a particular web site with over 90% accuracy in our experiments. Xiang Cai, Xin Cheng Zhang, Brijesh Joshi, Rob Johnson 0001 |
CCS | 4 |
| 2012 | CAWDOR: Compiler Assisted Worm DefenseabstractThis paper explores how much the source code analysis can assist worm defense system. Previously-proposed worm defense systems have used disparate mechanisms to detect worms, analyze exploits, verify alerts, and apply mitigations. Furthermore, previous systems have not offered predictability, i.e. it is not possible to verify, in advance, that the defense system will never generate a mitigation that breaks the program. This paper describes a program transformation technique that makes collaborative worm defense systems easy to build, predictable and fast-responsive. Our transformation provides a single building block that can be used to perform worm detection, exploit analysis, alert verification, and mitigation application. In fact, our transformation makes most of these tasks trivial. Furthermore, software vendors and users can test, in advance, that the defense system will very unlikely apply a mitigation that breaks their software. Mitigations are vulnerability-specific not exploit-specific. Finally, our system can respond extremely quickly to a new worm. The exploit analysis becomes trivial so sentinel hosts can issue an alert the instant they detect a worm. We have implemented a prototype of our system based on the Jones and Kelly program transformation for memory safety. During normal operation, our system incurs only 5% overhead. We take advantage of static analysis to develop several optimizations and make the Jones and Kelly approach to memory safety efficient and practical. Jun Yuan 0006, Rob Johnson 0001 |
SCAM | 2 |
| 2012 | Don't Thrash: How to Cache Your Hash on FlashabstractThis paper presents new alternatives to the well-known Bloom filter data structure. The Bloom filter, a compact data structure supporting set insertion and membership queries, has found wide application in databases, storage systems, and networks. Because the Bloom filter performs frequent random reads and writes, it is used almost exclusively in RAM, limiting the size of the sets it can represent. This paper first describes the quotient filter, which supports the basic operations of the Bloom filter, achieving roughly comparable performance in terms of space and time, but with better data locality. Operations on the quotient filter require only a small number of contiguous accesses. The quotient filter has other advantages over the Bloom filter: it supports deletions, it can be dynamically resized, and two quotient filters can be efficiently merged. The paper then gives two data structures, the buffered quotient filter and the cascade filter, which exploit the quotient filter advantages and thus serve as SSD-optimized alternatives to the Bloom filter. The cascade filter has better asymptotic I/O performance than the buffered quotient filter, but the buffered quotient filter outperforms the cascade filter on small to medium data sets. Both data structures significantly outperform recently-proposed SSD-optimized Bloom filter variants, such as the elevator Bloom filter, buffered Bloom filter, and forest-structured Bloom filter. In experiments, the cascade filter and buffered quotient filter performed insertions 8.6--11 times faster than the fastest Bloom filter variant and performed lookups 0.94--2.56 times faster. Michael A. Bender, Martin Farach-Colton, Rob Johnson 0001, Russell Kraner, Bradley C. Kuszmaul, Dzejla Medjedovic, Pablo Montes, Pradeep Shetty, Richard P. Spillane, Erez Zadok |
Proc. VLDB Endow. | 3 |
| 2011 | PhorceField: a phish-proof password ceremonyabstractMany widely deployed phishing defense schemes, such as SiteKey, use client-side secrets to help users confirm that they are visiting the correct website before entering their passwords. Unfortunately, studies have demonstrated that up to 92% of users can be convinced to ignore missing client-side secrets and enter their passwords into phishing pages. However, since client-side secrets have already achieved industry acceptance, they are an attractive building block for creating better phishing defenses. We present PhorceField, a phishing resistant password ceremony that combines client-side secrets and graphical passwords in a novel way that provides phishing resistance that neither achieves on its own. PhorceField enables users to login easily, but forces phishers to present victims with a fundamentally unfamiliar and onerous user interface. Victims that try to use the phisher's interface to enter their password find the task so difficult that they give up without revealing their password. We have evaluated PhorceField's phishing resistance in a user study in which 21 participants used PhorceField for a week and were then subjected to a simulated phishing attack. On average, participants were only able to reveal 20% of the entropy in their password, and none of them revealed their entire password. This is a substantial improvement over previous research that demonstrated that 92% of users would reveal their entire password to a phisher, even if important security indicators were missing[27]. Michael Hart, Claude Castille, Manoj Harpalani, Jonathan Toohill, Rob Johnson 0001 |
ACSAC | 5 |
| 2011 | Implementing a key recovery attack on the High-Bandwidth Digital Content Protection ProtocolabstractWe describe our experiences implementing the master-key recovery attack[9] against the High-Bandwidth Digital Content Protection Protocol (HDCP)[10]. We recovered the private keys from 41 HDCP-capable monitors using the key extraction attack of Irwin[12]. We then used the master-key recovery attack of Crosby, et al.[9] to compute the HDCP global secret. The attack used commodity hardware and did not damage the monitors in any observable way. We derive several lessons for DRM producers and consumers from our experience. We propose that DRM systems should have strong renewability in order to manage risks for all parties: content-producers, device manufacturers, and consumers. Rob Johnson 0001, Mikhail Rubnich, Andres DelaCruz |
CCNC | 1 |
| 2011 | Don't Thrash: How to Cache Your Hash on Flash
Michael A. Bender, Martin Farach-Colton, Rob Johnson 0001, Bradley C. Kuszmaul, Dzejla Medjedovic, Pablo Montes, Pradeep Shetty, Richard P. Spillane, Erez Zadok |
HotStorage | 3 |
| 2011 | Text Classification for Data Loss Prevention
Michael Hart, Pratyusa K. Manadhata, Rob Johnson 0001 |
PETS | 3 |
| 2009 | iTag: a personalized blog taggerabstractWe present iTag, a personalized tag recommendation system for blogs. iTag improves on current tag recommendation systems in two ways. First, iTag has much higher precision and recall than previously proposed tagging algorithms. For example, iTag achieved over 60% precision and recall on a set of 1000 blog posts selected at random from a WordPress RSS feed in April 2009, whereas the previously developed TagAssist achieved less than 10% precision and recall on our data. Second, iTag performs just as well when trained on a single user's blog as when trained on a large corpus of blogs. Thus, iTag can be deployed as a global, non-personalized tag recommendation system, or as a personalized tag recommender. Our experiments and survey of tagging behavior suggest that bloggers use tags idiosyncratically, so personalized tagging is an important option. Michael Hart, Rob Johnson 0001, Amanda Stent |
RecSys | 2 |
| 2009 | Exploiting Unix File-System Races via Algorithmic Complexity AttacksabstractWe defeat two proposed Unix file-system race condition defense mechanisms. First, we attack the probabilistic defense mechanism of Tsafrir, et al., published at USENIX FAST 2008. We then show that the same attack breaks the kernel-based dynamic race detector of Tsyrklevich and Yee, published at USENIX Security 2003. We then argue that all kernel-based dynamic race detectors must have a model of the programs they protect or provide imperfect protection. The techniques we develop for performing these attacks work on multiple Unix operating systems, on uni- and multi-processors, and are useful for exploiting most Unix file-system races. We conclude that programmers should use provably-secure methods for avoiding race conditions when accessing the file-system. Xiang Cai, Yuwei Gui, Rob Johnson 0001 |
SP | 3 |
| 2008 | A practical mimicry attack against powerful system-call monitorsabstractSystem-call monitoring has become the basis for many hostbased intrusion detection as well as policy enforcement techniques. Mimicry attacks attempt to evade system-call monitoring IDS by executing innocuous-looking sequences of system calls that accomplish the attacker’s goals. Mimicry attacks may execute a sequence of dozens of system calls in order to evade detection. Finding such a sequence is difficult, so researchers have focused on tools for automating mimicry attacks and extending them to gray-box IDS 1. In this paper, we describe an alternative approach for building mimicry attacks using only skills and technologies that hackers possess today, making this attack a more immediate and realistic threat. These attacks, which we call persistent interposition attacks, are not as powerful as traditional mimicry attacks — an adversary cannot obtain a root shell using a persistent interposition attack — but are sufficient to accomplish the goals of today’s cyber-criminals. Persistent interposition attacks are stealthier than standard mimicry attacks and are amenable to covert information-harvesting attacks, features that are likely to be attractive to profitmotivated criminals. Persistent interposition attacks are not IDS specific — they can evade a large class of systemcall-monitoring intrusion-detection systems, which we call I/O-data-oblivious. I/O-data-oblivious monitors have perfect knowledge of the values of all system call arguments as well as their relationships, with the exception of data buffer arguments to read and write. Many of today’s black-box and gray-box IDS are I/O-data-oblivious and hence vulnerable to persistent interposition attacks. Chetan Parampalli, R. Sekar 0001, Rob Johnson 0001 |
AsiaCCS | 3 |
| 2007 | RICH: Automatically Protecting Against Integer-Based Vulnerabilities
David Brumley, Dawn Song, Tzi-cker Chiueh, Rob Johnson 0001, Huijia Lin |
NDSS | 4 |