VLDB 2026 Research / reviewers in the wild / expert
Angela Demke Brown
dblp:b/AngelaDemkeBrown · also Angela K. Demke
· DBLP profile ↗
42ranked-venue papers
4as first author
4since 2021 · last 2025
0000-0002-3615-3442ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 22 · 3 first-author · 2 since 2021Databases, data management, data science and information retrieval · 12 · 1 since 2021Software engineering, systems software and programming languages · 10 · 1 first-author · 1 since 2021Artificial intelligence and machine learning · 4Applied, interdisciplinary, general and emerging computing · 4Computer networks · 3
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
14 papers |
Storage systems · 74% Distributed systems · 15% Memory systems · 5% | |
| Databases, data mining, and information retrieval
5 papers |
Transaction processing and concurrency control · 47% Indexing and storage engines · 19% Data integration and cleaning · 12% | |
| Software engineering, system software, and programming languages
9 papers |
Program verification · 29% Operating systems · 29% Runtime systems and virtual machines · 19% | |
| Computer networks
2 papers |
Transport protocols and congestion control · 73% Cellular and mobile networks · 22% Network measurement and analytics · 5% |
Topics — the 30 heaviest of 48, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Storage systems
file systems |
1.2 | 5 | 2020 | Spiffy: Enabling File-System Aware Storage Applications · ACM Trans. Storage 2020 Spiffy: Enabling File-System Aware Storage Applications · FAST 2018 Checking the Integrity of Transactional Mechanisms · ACM Trans. Storage 2014 |
Transaction processing and concurrency control › transaction processing architecture
deterministic databases |
0.7 | 1 | 2023 | Integrating Non-Volatile Main Memory in a Deterministic Database · EuroSys 2023 |
Indexing and storage engines › storage management
non-volatile memory integration |
0.7 | 1 | 2023 | Integrating Non-Volatile Main Memory in a Deterministic Database · EuroSys 2023 |
Transaction processing and concurrency control
contention management |
0.5 | 1 | 2021 | Caracal: Contention Management with Deterministic Concurrency Control · SOSP 2021 |
Transaction processing and concurrency control › concurrency control
deterministic concurrency control |
0.5 | 1 | 2021 | Caracal: Contention Management with Deterministic Concurrency Control · SOSP 2021 |
Data mining
pattern mining |
0.4 | 1 | 2020 | Pytheas: Pattern-based Table Discovery in CSV Files · Proc. VLDB Endow. 2020 |
Data integration and cleaning
table discovery |
0.4 | 1 | 2020 | Pytheas: Pattern-based Table Discovery in CSV Files · Proc. VLDB Endow. 2020 |
Transport protocols and congestion control › elastic traffic
file transfer optimization |
0.4 | 1 | 2020 | Deduplicating future data transfer using data exchanged in the past to decrease mobile bandwidth usage · MobiSys 2020 |
Storage systems › file systems
file-system metadata |
0.4 | 1 | 2020 | Spiffy: Enabling File-System Aware Storage Applications · ACM Trans. Storage 2020 |
Storage systems › data auditing
data integrity verification |
0.4 | 2 | 2014 | Checking the Integrity of Transactional Mechanisms · ACM Trans. Storage 2014 Checking the integrity of transactional mechanisms · FAST 2014 |
Storage systems
transaction support |
0.4 | 2 | 2014 | Checking the Integrity of Transactional Mechanisms · ACM Trans. Storage 2014 Checking the integrity of transactional mechanisms · FAST 2014 |
Storage systems
crash consistency |
0.3 | 2 | 2014 | Checking the Integrity of Transactional Mechanisms · ACM Trans. Storage 2014 Recon: Verifying file system consistency at runtime · ACM Trans. Storage 2012 |
Distributed systems
fault tolerance |
0.3 | 1 | 2017 | Scalable Replay-Based Replication For Fast Databases · Proc. VLDB Endow. 2017 |
Distributed systems › replication
primary-backup replication |
0.3 | 1 | 2017 | Scalable Replay-Based Replication For Fast Databases · Proc. VLDB Endow. 2017 |
Distributed systems
replication |
0.3 | 1 | 2017 | Scalable Replay-Based Replication For Fast Databases · Proc. VLDB Endow. 2017 |
Embedded and real-time systems › runtime monitoring
runtime verification |
0.3 | 2 | 2012 | Recon: Verifying file system consistency at runtime · ACM Trans. Storage 2012 Recon: verifying file system consistency at runtime · FAST 2012 |
Storage systems
storage reliability |
0.3 | 2 | 2015 | Opportunistic storage maintenance · SOSP 2015 Reliable Writeback for Client-side Flash Caches · USENIX ATC 2014 |
Operating systems
kernel instrumentation |
0.2 | 2 | 2012 | Comprehensive kernel instrumentation via dynamic binary translation · ASPLOS 2012 JIT instrumentation: a novel approach to dynamically instrument operating systems · EuroSys 2007 |
Memory systems › non-volatile memory
non-volatile main memory |
0.2 | 1 | 2023 | Integrating Non-Volatile Main Memory in a Deterministic Database · EuroSys 2023 |
Program verification
verification |
0.2 | 1 | 2014 | Checking the integrity of transactional mechanisms · FAST 2014 |
Storage systems
flash and SSD |
0.2 | 1 | 2014 | Reliable Writeback for Client-side Flash Caches · USENIX ATC 2014 |
Runtime systems and virtual machines › binary translation
dynamic binary translation |
0.1 | 1 | 2012 | Comprehensive kernel instrumentation via dynamic binary translation · ASPLOS 2012 |
Program verification › dynamic verification
runtime verification |
0.1 | 1 | 2012 | Recon: verifying file system consistency at runtime · FAST 2012 |
Storage systems › file systems
file system consistency |
0.1 | 1 | 2012 | Recon: verifying file system consistency at runtime · FAST 2012 |
Storage systems › file systems › distributed file system
metadata consistency |
0.1 | 1 | 2012 | Recon: Verifying file system consistency at runtime · ACM Trans. Storage 2012 |
Programming languages and type systems › specification language
annotation language |
0.1 | 1 | 2020 | Spiffy: Enabling File-System Aware Storage Applications · ACM Trans. Storage 2020 |
Spatial and temporal data management
spatial query processing |
0.1 | 1 | 2011 | Jackpine: A benchmark to evaluate spatial database performance · ICDE 2011 |
Program analysis › dynamic analysis
dynamic instrumentation |
0.1 | 1 | 2007 | JIT instrumentation: a novel approach to dynamically instrument operating systems · EuroSys 2007 |
Runtime systems and virtual machines › dynamic compilation
just-in-time compilation |
0.1 | 1 | 2007 | JIT instrumentation: a novel approach to dynamically instrument operating systems · EuroSys 2007 |
Systems and software security
memory safety |
0.0 | 1 | 2012 | Comprehensive kernel instrumentation via dynamic binary translation · ASPLOS 2012 |
Methods — techniques the papers use, named apart from their topics
epoch-based batching · 1.3deterministic execution · 1.3metadata parsing · 0.9annotation language · 0.9partitioning · 0.5client-server data deduplication · 0.4record/replay · 0.3record-replay · 0.3runtime checker · 0.2probe-based instrumentation · 0.1just-in-time compilation · 0.1runtime prefetch hints · 0.1compiler analysis · 0.1compiler instrumentation · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Metadata Unification in Open Data with Gnomon
Christina Christodoulakis, Moshe Gabel, Angela Demke Brown |
EDBT | 3 |
| 2023 | Integrating Non-Volatile Main Memory in a Deterministic DatabaseabstractDeterministic databases provide strong serializability while avoiding concurrency-control related aborts by establishing a serial ordering of transactions before their execution. Recent work has shown that they can also handle skewed and contended workloads effectively. These properties are achieved by batching transactions in epochs and then executing the transactions within an epoch concurrently and deterministically. However, the predetermined serial ordering of transactions makes these databases more vulnerable to long-latency transactions. As a result, they have mainly been designed as main-memory databases, which limits the size of the datasets that can be supported. Yu Chen Wang, Angela Demke Brown, Ashvin Goel |
EuroSys | 2 |
| 2022 | Introduction to the Special Section on USENIX OSDI 2021abstractNo abstract available. Angela Demke Brown, Jacob R. Lorch |
ACM Trans. Storage | 1 |
| 2021 | Caracal: Contention Management with Deterministic Concurrency ControlabstractDeterministic databases offer several benefits: they ensure serializable execution while avoiding concurrency-control related aborts, and they scale well in distributed environments. Today, most deterministic database designs use partitioning to scale up and avoid contention. However, partitioning requires significant programmer effort, leads to poor performance under skewed workloads, and incurs unnecessary overheads in certain uncontended workloads. Dai Qin, Angela Demke Brown, Ashvin Goel |
SOSP | 2 |
| 2020 | Deduplicating future data transfer using data exchanged in the past to decrease mobile bandwidth usageabstractIn client-server architectures, there are cases where there is a need to transfer large amounts of data from the server to the client (or less frequently, in the opposite direction). Mobile application markets are a notable example where the clients need to download large chunks of data in the order of megabytes at a time, compared to a typical RPC request which is in the order of kilobytes. Mohammad Nasirifar, Angela Demke Brown |
MobiSys | 2 |
| 2020 | Pytheas: Pattern-based Table Discovery in CSV Files
Christina Christodoulakis, Eric B. Munson, Moshe Gabel, Angela Demke Brown, Renée J. Miller |
Proc. VLDB Endow. | 4 |
| 2020 | Spiffy: Enabling File-System Aware Storage ApplicationsabstractMany file-system applications such as defragmentation tools, file-system checkers, or data recovery tools, operate at the storage layer. Today, developers of these file-system aware storage applications require detailed knowledge of the file-system format, which requires significant time to learn, often by trial and error, due to insufficient documentation or specification of the format. Furthermore, these applications perform ad-hoc processing of the file-system metadata, leading to bugs and vulnerabilities. We propose Spiffy, an annotation language for specifying the on-disk format of a file system. File-system developers annotate the data structures of a file system, and we use these annotations to generate a library that allows identifying, parsing, and traversing file-system metadata, providing support for both offline and online storage applications. This approach simplifies the development of storage applications that work across different file systems because it reduces the amount of file-system--specific code that needs to be written. We have written annotations for the Linux Ext4, Btrfs, and F2FS file systems, and developed several applications for these file systems, including a type-specific metadata corruptor, a file-system converter, an online storage layer cache that preferentially caches files for certain users, and a runtime file-system checker. Our experiments show that applications built with the Spiffy library for accessing file-system metadata can achieve good performance and are robust against file-system corruption errors. Kuei Sun, Daniel Fryer, Russell Wang, Joseph Chu, Matthew Lakier, Angela Demke Brown, Ashvin Goel |
ACM Trans. Storage | 7 |
| 2018 | Spiffy: Enabling File-System Aware Storage Applications
Kuei Sun, Daniel Fryer, Joseph Chu, Matthew Lakier, Angela Demke Brown, Ashvin Goel |
FAST | 5 |
| 2018 | Breaking Apart the VFS for Managing File Systems
Kuei Sun, Matthew Lakier, Angela Demke Brown, Ashvin Goel |
HotStorage | 3 |
| 2017 | Understanding Rack-Scale Disaggregated Storage
Sergey Legtchenko, Hugh Williams, Kaveh Razavi, Austin Donnelly, Richard Black, Andrew Douglas, Nathanael Cheriere, Daniel Fryer, Kai Mast, Angela Demke Brown, Ana Klimovic, Andy Slowey, Antony I. T. Rowstron |
HotStorage | 10 |
| 2017 | Scalable Replay-Based Replication For Fast DatabasesabstractPrimary-backup replication is commonly used for providing fault tolerance in databases. It is performed by replaying the database recovery log on a backup server. Such a scheme raises several challenges for modern, high-throughput multi-core databases. It is hard to replay the recovery log concurrently, and so the backup can become the bottleneck. Moreover, with the high transaction rates on the primary, the log transfer can cause network bottlenecks. Both these bottlenecks can significantly slow the primary database. In this paper, we propose using record-replay for replicating fast databases. Our design enables replay to be performed scalably and concurrently, so that the backup performance scales with the primary performance. At the same time, our approach requires only 15--20% of the network bandwidth required by traditional logging, reducing network infrastructure costs significantly. Dai Qin, Ashvin Goel, Angela Demke Brown |
Proc. VLDB Endow. | 3 |
| 2017 | Introduction to the Special Issue on USENIX FAST 2016abstractNo abstract available. Angela Demke Brown, Florentina I. Popovici |
ACM Trans. Storage | 1 |
| 2016 | Quartet: Harmonizing Task Scheduling and Caching for Cluster Computing
Francis Deslauriers, Peter McCormick, George Amvrosiadis, Ashvin Goel, Angela Demke Brown |
HotStorage | 5 |
| 2015 | Parallel in-memory trajectory-based spatiotemporal topological joinabstractThe rapid growth of spatiotemporal Big Data is fueling the emergence and growth of many applications. Many of these applications are characterized by complex spatiotemporal queries. An important category of such queries is the trajectory-based spatiotemporal topological join queries, which combine a trajectory dataset and a spatial objects dataset based on spatiotemporal predicates. Although these queries have many important use-cases, they have not received much attention from the research community. We systematically evaluate several feasible in-memory spatiotemporal topological join algorithms, using existing trajectory index (TB-tree) and spatial index (STR). We show that even the best among these algorithms is long running and not scalable. To address the performance problems of these algorithms we introduce PISTON, a parallel in-memory indexing system targeted for spatiotemporal topological join. With extensive evaluations, we demonstrate that even the single-threaded performance of PISTON is significantly better than the feasible approaches that use existing trajectory and spatial indexes. Moreover, the parallel performance of PISTON is orders of magnitude better than these approaches. Suprio Ray, Angela Demke Brown, Nick Koudas, Rolando Blanco, Anil K. Goel |
IEEE BigData | 2 |
| 2015 | Slingshot: A modular framework for designing data processing systemsabstractTraditional relational database engines have been losing ground to specialized data processing engines in virtually every market segment, from data warehousing, OLTP, and stream processing, to scientific applications. Although relational database engines are evolving to leverage new technologies and more efficient processing paradigms, the generality of a large monolithic engine often makes this a significant effort. Our aim is to delimit and decouple database engine components to design a more lightweight and flexible data processing engine that can support any application domain efficiently and without the effort of a complete redesign. We introduce Slingshot, a new data processing engine, where modularity and implementation flexibility are the top priority. Its core database engine is minimal and mainly handles inter-operation of the database components. Each component, abstracted by an interface, can be externally implemented and plugged into the framework as a module that handles the component's functionality. As a result, this allows designers the liberty to choose suitable features for their target applications, to drop excess functionality, and to optimize code independent of the rest of the engine. We compare Slingshot to a traditional RDBMS and to custom solutions on queries that are representative of three application types (spatial, OLAP, and OLTP). We show that Slingshot outperforms the RDBMS in most cases, while performing comparably in others. Furthermore, Slingshot performs better or comparable to custom solutions on most tests. Finally, Slingshot's flexibility allows us to efficiently leverage computer architectures such as GPUs for speeding up complex computational tasks. Bogdan Simion, Daniel N. Ilha, Suprio Ray, Leslie Barron, Angela Demke Brown, Ryan Johnson 0001 |
IEEE BigData | 5 |
| 2015 | Opportunistic storage maintenanceabstractStorage systems rely on maintenance tasks, such as backup and layout optimization, to ensure data availability and good performance. These tasks access large amounts of data and can significantly impact foreground applications. We argue that storage maintenance can be performed more efficiently by prioritizing processing of data that is currently cached in memory. Data can be cached either due to other maintenance tasks requesting it previously, or due to overlapping foreground I/O activity. George Amvrosiadis, Angela Demke Brown, Ashvin Goel |
SOSP | 2 |
| 2014 | An event-based language for dynamic binary translation frameworksabstractNo abstract available. Serguei Makarov, Angela Demke Brown, Ashvin Goel |
PACT | 2 |
| 2014 | Checking the integrity of transactional mechanisms
Daniel Fryer, Dai Qin, Jack Sun, Kah Wai Lee, Angela Demke Brown, Ashvin Goel |
FAST | 5 |
| 2014 | Robust Consistency Checking for Modern Filesystems
Kuei Sun, Daniel Fryer, Dai Qin, Angela Demke Brown, Ashvin Goel |
RV | 4 |
| 2014 | Skew-resistant parallel in-memory spatial joinabstractSpatial join is a crucial operation in many spatial analysis applications in scientific and geographical information systems. Due to the compute-intensive nature of spatial predicate evaluation, spatial join queries can be slow even with a moderate sized dataset. Efficient parallelization of spatial join is therefore essential to achieve acceptable performance for many spatial applications. Technological trends, including the rising core count and increasingly large main memory, hold great promise in this regard. Previous parallel spatial join approaches tried to partition the dataset so that the number of spatial objects in each partition was as equal as possible. They also focused only on the filter step. However, when the more compute-intensive refinement step is included, significant processing skew may arise due to the uneven size of the objects. This processing skew significantly limits the achievable parallel performance of the spatial join queries, as the longest-running spatial partition determines the overall query execution time. Suprio Ray, Bogdan Simion, Angela Demke Brown, Ryan Johnson 0001 |
SSDBM | 3 |
| 2014 | Reliable Writeback for Client-side Flash Caches
Dai Qin, Angela Demke Brown, Ashvin Goel |
USENIX ATC | 2 |
| 2014 | Checking the Integrity of Transactional MechanismsabstractData corruption is the most common consequence of file-system bugs. When such corruption occurs, offline check and recovery tools must be used, but they are error prone and cause significant downtime. Previously we showed that a runtime checker for the Ext3 file system can verify that metadata updates are consistent, helping detect corruption in metadata blocks at transaction commit time. However, corruption can still occur when a bug in the file system’s transactional mechanism loses, misdirects, or corrupts writes. We show that a runtime checker must enforce the atomicity and durability properties of the file system on every write, in addition to checking transactions at commit time, to provide the strong guarantee that every block write will maintain file system consistency. We identify the invariants that need to be enforced on journaling and shadow paging file systems to preserve the integrity of committed transactions. We also describe the key properties that make it feasible to check these invariants for a file system. Based on this characterization, we have implemented runtime checkers for Ext3 and Btrfs. Our evaluation shows that both checkers detect data corruption effectively, and they can be used during normal operation with low overhead. Daniel Fryer, Dai Qin, Jack Sun, Kah Wai Lee, Angela Demke Brown, Ashvin Goel |
ACM Trans. Storage | 5 |
| 2013 | A parallel spatial data analysis infrastructure for the cloudabstractSpatial data analysis applications are emerging from a wide range of domains such as building information management, environmental assessments and medical imaging. Time-consuming computational geometry algorithms make these applications slow, even for medium-sized datasets. At the same time, there is a rapid expansion in available processing cores, through multicore machines and Cloud computing. The confluence of these trends demands effective parallelization of spatial query processing. Unfortunately, traditional parallel spatial databases are ill-equipped to deal with the performance heterogeneity that is common in the Cloud. Suprio Ray, Bogdan Simion, Angela Demke Brown, Ryan Johnson 0001 |
SIGSPATIAL/GIS | 3 |
| 2013 | Annotation for automation: rapid generation of file system toolsabstractToday file system tools and file-system aware storage applications are tightly coupled with file system implementations. Developing these applications is challenging because it requires detailed knowledge of the file system format, and the code for interpreting file system metadata has to be written manually. This code is complex and file-system specific, and so the application requires significant re-engineering to support different file systems. Kuei Sun, Daniel Fryer, Angela Demke Brown, Ashvin Goel |
PLOS@SOSP | 3 |
| 2012 | Comprehensive kernel instrumentation via dynamic binary translationabstractDynamic binary translation (DBT) is a powerful technique that enables fine-grained monitoring and manipulation of an existing program binary. At the user level, it has been employed extensively to develop various analysis, bug-finding, and security tools. Such tools are currently not available for operating system (OS) binaries since no comprehensive DBT framework exists for the OS kernel. To address this problem, we have developed a DBT framework that runs as a Linux kernel module, based on the user-level DynamoRIO framework. Our approach is unique in that it controls all kernel execution, including interrupt and exception handlers and device drivers, enabling comprehensive instrumentation of the OS without imposing any overhead on user-level code. In this paper, we discuss the key challenges in designing and building an in-kernel DBT framework and how the design differs from user-space. We use our framework to build several sample instrumentations, including simple instruction counting as well as an implementation of shadow memory for the kernel. Using the shadow memory, we build a kernel stack overflow protection tool and a memory addressability checking tool. Qualitatively, the system is fast enough and stable enough to run the normal desktop workload of one of the authors for several weeks. Peter Feiner, Angela Demke Brown, Ashvin Goel |
ASPLOS | 2 |
| 2012 | Recon: verifying file system consistency at runtime
Daniel Fryer, Kuei Sun, Rahat Mahmood, Tinghao Cheng, Shaun Benjamin, Ashvin Goel, Angela Demke Brown |
FAST | 7 |
| 2012 | Surveying the landscape: an in-depth analysis of spatial database workloadsabstractSpatial databases are increasingly important for a wide variety of real-world applications, such as land surveying, urban planning, cartography and location-based services. However, spatial database workload properties are not well-understood. For example, it is unknown to what degree one spatial application resembles another in terms of resource demand, or how the demand will change as more concurrent queries (i.e., more users) are added. We show that spatial workloads have a different CPU execution profile than well-studied decision support workloads, as represented by TPC-H. Bogdan Simion, Suprio Ray, Angela Demke Brown |
SIGSPATIAL/GIS | 3 |
| 2012 | Recon: Verifying file system consistency at runtimeabstractFile system bugs that corrupt metadata on disk are insidious. Existing reliability methods, such as checksums, redundancy, or transactional updates, merely ensure that the corruption is reliably preserved. Typical workarounds, based on using backups or repairing the file system, are painfully slow. Worse, the recovery may result in further corruption. We present Recon, a system that protects file system metadata from buggy file system operations. Our approach leverages file systems that provide crash consistency using transactional updates. We define declarative statements called consistency invariants for a file system. These invariants must be satisfied by each transaction being committed to disk to preserve file system integrity. Recon checks these invariants at commit, thereby minimizing the damage caused by buggy file systems. The major challenges to this approach are specifying invariants and interpreting file system behavior correctly without relying on the file system code. Recon provides a framework for file-system specific metadata interpretation and invariant checking. We show the feasibility of interpreting metadata and writing consistency invariants for the Linux ext3 file system using this framework. Recon can detect random as well as targeted file-system corruption at runtime as effectively as the offline e2fsck file-system checker, with low overhead. Daniel Fryer, Kuei Sun, Rahat Mahmood, Tinghao Cheng, Shaun Benjamin, Ashvin Goel, Angela Demke Brown |
ACM Trans. Storage | 7 |
| 2011 | Jackpine: A benchmark to evaluate spatial database performanceabstractThe volume of spatial data generated and consumed is rising exponentially and new applications are emerging as the costs of storage, processing power and network bandwidth continue to decline. Database support for spatial operations is fast becoming a necessity rather than a niche feature provided by a few products. However, the spatial functionality offered by current commercial and open-source relational databases differs significantly in terms of available features, true geodetic support, spatial functions and indexing. Benchmarks play a crucial role in evaluating the functionality and performance of a particular database, both for application users and developers, and for the database developers themselves. In contrast to transaction processing, however, there is no standard, widely used benchmark for spatial database operations. In this paper, we present a spatial database benchmark called Jackpine. Our benchmark is portable (it can support any database with a JDBC driver implementation) and includes both micro benchmarks and macro workload scenarios. The micro benchmark component tests basic spatial operations in isolation; it consists of queries based on the Dimensionally Extended 9-intersection model of topological relations and queries based on spatial analysis functions. Each macro workload includes a series of queries that are based on a common spatial data application. These macro scenarios include map search and browsing, geocoding, reverse geocoding, flood risk analysis, land information management and toxic spill analysis. We use Jackpine to evaluate the spatial features in 2 open source databases and 1 commercial offering. Suprio Ray, Bogdan Simion, Angela Demke Brown |
ICDE | 3 |
| 2011 | Using declarative invariants for protecting file-system integrityabstractWe have been developing a framework, called Recon, that uses runtime checking to protect the integrity of file-system metadata on disk. Recon performs consistency checks at commit points in transaction-based file systems. We define declarative statements called consistency invariants for a file system, which must be satisfied by each transaction being committed to disk. By checking each transaction before it commits, we prevent any corruption to file-system metadata from reaching the disk. Jack Sun, Daniel Fryer, Ashvin Goel, Angela Demke Brown |
PLOS@SOSP | 4 |
| 2009 | Bunker: A Privacy-Oriented Platform for Network Tracing
Andrew G. Miklas, Stefan Saroiu, Alec Wolman, Angela Demke Brown |
NSDI | 4 |
| 2007 | JIT instrumentation: a novel approach to dynamically instrument operating systemsabstractAs modern operating systems become more complex, understanding their inner workings is increasingly difficult. Dynamic kernel instrumentation is a well established method of obtaining insight into the workings of an OS, with applications including debugging, profiling and monitoring, and security auditing. To date, all dynamic instrumentation systems for operating systems follow the probe-based instrumentation paradigm. While efficient on fixed-length instruction set architectures, probes are extremely expensive on variable-length ISAs such as the popular Intel x86 and AMD x86-64. We propose using just-in-time (JIT) instrumentation to overcome this problem. While common in user space, JIT instrumentation has not until now been attempted in kernel space. In this work, we show the feasibility and desirability of kernel-based JIT instrumentation for operating systems with our novel prototype, implemented as a Linux kernel module. The prototype is fully SMP capable. We evaluate our prototype against the popular Kprobes Linux instrumentation tool. Our prototype outperforms Kprobes, at both micro and macro levels, by orders of magnitude when applying medium- and fine-grained instrumentation. Marek Olszewski, Keir Mierle, Adam Czajkowski, Angela Demke Brown |
EuroSys | 4 |
| 2007 | Tamper Resistant Network Tracing
Andrew G. Miklas, Stefan Saroiu, Alec Wolman, Angela Demke Brown |
HotNets | 4 |
| 2007 | Path: page access tracking to improve memory managementabstractTraditionally, operating systems use a coarse approximation of memory accesses to implement memory management algorithms by monitoring page faults or scanning page table entries. With finer-grained memory access information, however, the operating system can manage memory muchmore effectively. Previous work has proposed the use of a software mechanism based on virtual page protection and soft faults to track page accesses at finer granularity. In this paper, we show that while this approach is effective for some applications, for many others it results in an unacceptably high overhead. We propose simple Page Access Tracking Hardware (PATH)to provide accurate page access information to the operating system. The suggested hardware support is generic andcan be used by various memory management algorithms. In this paper, we show how the information generated by PATH can be used to implement (i) adaptive page replacement policies, (ii) smart process memory allocation to improve performance or to provide isolation and better process prioritization, and (iii) effectively prefetch virtual memory pages when applications have non-trivial memory access patterns. Our simulation results show that these algorithms can dramatically improve performance (up to 500%) with PATH-provided information, especially when the system is under memory pressure. We show that the software overhead of processing PATH information is less than 6% acrossthe applications we examined (less than 3% in all but two applications), which is at least an order of magni. Livio B. Soares, Michael Stumm, Thomas Walsh 0002, Angela Demke Brown |
ISMM | 5 |
| 2007 | YETI: a graduallY extensible trace interpreterabstractThe design of new programming languages benefits from interpretation, which can provide a simple initial implementation, flexibility to explore new language features, and portability to many platforms. The only downside is speed of execution, as there remains a large performance gap between even efficient interpreters and mixed-mode systems that include a just-in-time compiler (or JIT for short). Augmenting an interpreter with a JIT, however, is not a small task. Today, JITs used for Java™ are loosely-coupled with the interpreter, with callsites of methods being the only transition point between interpreted and native code. To compile whole methods, the JIT must duplicate a sizable amount of functionality already provided by the interpreter, leading to a "big bang" development effort before the JIT can be deployed. Instead, adding a JIT to an interpreter would be easier if it were possible to leverage the existing functionality. Mathew Zaleski, Angela Demke Brown, Kevin Stoodley |
VEE | 2 |
| 2007 | Performance of memory reclamation for lockless synchronization
Thomas E. Hart, Paul E. McKenney, Angela Demke Brown, Jonathan Walpole |
J. Parallel Distributed Comput. | 3 |
| 2006 | Making lockless synchronization fast: performance implications of memory reclamationabstractAchieving high performance for concurrent applications on modern multiprocessors remains challenging. Many programmers avoid locking to improve performance, while others replace locks with non-blocking synchronization to protect against deadlock, priority inversion, and convoying. In both cases, dynamic data structures that avoid locking, require a memory reclamation scheme that reclaims nodes once they are no longer in use. The performance of existing memory reclamation schemes has not been thoroughly evaluated. We conduct the first fair and comprehensive comparison of three recent schemes -quiescent-state-based reclamation, epoch-based reclamation, and hazard-pointer-based reclamation - using a flexible microbenchmark. Our results show that there is no globally optimal scheme. When evaluating lockless synchronization, programmers and algorithm designers should thus carefully consider the data structure, the workload, and the execution environment, each of which can dramatically affect memory reclamation performance Thomas E. Hart, Paul E. McKenney, Angela Demke Brown |
IPDPS | 3 |
| 2005 | Context Threading: A Flexible and Efficient Dispatch Technique for Virtual Machine InterpretersabstractDirect-threaded interpreters use indirect branches to dispatch bytecodes, but deeply-pipelined architectures rely on branch prediction for performance. Due to the poor correlation between the virtual program's control flow and the hardware program counter, which we call the context problem, direct threading's indirect branches are poorly predicted by the hardware, limiting performance. Our dispatch technique, context threading, improves branch prediction and performance by aligning hardware and virtual machine state. Linear virtual instructions are dispatched with native calls and returns, aligning the hardware and virtual PC. Thus, sequential control flow is predicted by the hardware return stack. We convert virtual branching instructions to native branches, mobilizing the hardware's branch prediction resources. We evaluate the impact of context threading on both branch prediction and performance using interpreters for Java and OCaml on the Pentium and PowerPC architectures. On the Pentium IV our technique reduces mean mispredicted branches by 95%. On the PowerPC, it reduces mean branch stall cycles by 75% for OCaml and 82% for Java. Due to reduced branch hazards, context threading reduces mean execution time by 25% for Java and by 19% and 37% for OCaml on the P4 and PPC970, respectively. We also combine context threading with a conservative inlining technique and find its performance comparable to that of selective inlining. Marc Berndl, Benjamin Vitale, Mathew Zaleski, Angela Demke Brown |
CGO | 4 |
| 2005 | Inlining java native calls at runtimeabstractDespite the overheads associated with the Java Native Interface (JNI), its opaque and binary-compatible nature make it the preferred interoperability mechanism for Java applications that use legacy, high-performance and architecture-dependent native code. This thesis addresses the performance issues associated with the JNI by providing a strategy that transforms JNI callbacks into semantically equivalent but significantly cheaper operations at runtime. In order to do so, the strategy first inlines native functions into Java applications us-ing a Just-in-time (JIT) compiler. Native function inlining is performed by leveraging the abil-ity to store statically-generated intermediate language alongside native binaries. Once inlined, transformed native code can be further optimized due to the availability of runtime information to the JIT compiler. Preliminary evaluations on a prototype implementation of our strategy show that it can sub-stantially reduce the overhead of performing native calls and JNI callbacks, while preserving the opaque and binary-compatible characteristics of the JNI. ii Levon Stepanian, Angela Demke Brown, Allan Kielstra, Gita Koblents, Kevin Stoodley |
VEE | 2 |
| 2001 | Compiler-based I/O prefetching for out-of-core applicationsabstractCurrent operating systems offer poor performance when a numeric application's working set does not fit in main memory. As a result, programmers who wish to solve “out-of-core” problems efficiently are typically faced with the onerous task of rewriting an application to use explicit I/O operations (e.g., read/write). In this paper, we propose and evaluate a fully automatic technique which liberates the programmer from this task, provides high performance, and requires only minimal changes to current operating systems. In our scheme the compiler provides the crucial information on future access patterns without burdening the programmer; the operating system supports nonbindingprefetchandreleasehints for managing I/O; and the operating systems cooperates with a run-time layer to accelerate performance by adapting to dynamic behavior and minimizing prefetch overhead. This approach maintains the abstraction of unlimited virtual memory for the programmer, gives the compiler the flexibility to aggressively insert prefetches ahead of references, and gives the operating system the flexibility to arbitrate between the competing resource demands of multiple applications. We implemented our compiler analysis within the SUIF compiler, and used it to target implementations of our run-time and OS support on both research and commercial systems (Hurricane and IRIX 6.5, respectively). Our experimental results show large performance gains for out-of-core scientific applications on both systems: more than 50% of the I/O stall time has been eliminated in most cases, thus translating into overall speedups of roughly twofold in many cases. Angela Demke Brown, Todd C. Mowry, Orran Krieger |
ACM Trans. Comput. Syst. | 1 |
| 2000 | Taming the Memory Hogs: Using Compiler-Inserted Releases to Manage Physical Memory Intelligently
Angela Demke Brown, Todd C. Mowry |
OSDI | 1 |
| 1996 | Automatic Compiler-Inserted I/O Prefetching for Out-of-Core ApplicationsabstractNo abstract available. Todd C. Mowry, Angela Demke Brown, Orran Krieger |
OSDI | 2 |