Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Andy Warfield

dblp:70/5879 · also Andrew Warfield · DBLP profile ↗
← Back
38ranked-venue papers
4as first author
2since 2021 · last 2023
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 15 · 2 first-author · 1 since 2021Software engineering, systems software and programming languages · 11 · 2 first-author · 1 since 2021Computer networks · 8Databases, data management, data science and information retrieval · 6 · 1 first-author · 1 since 2021Security and privacy · 1Theory of computation · 1

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
20 papers
Storage systems · 38% Cloud and datacenter computing · 35% Distributed systems · 18%
Network and information security
4 papers
Authentication and access control · 36% Web and mobile security · 31% Usable security · 18%
Software engineering, system software, and programming languages
7 papers
Operating systems · 78% Program verification · 12% Software maintenance and evolution · 7%

Topics — the 30 heaviest of 64, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Cloud and datacenter computing
cloud storage
0.712023
Building and Operating a Pretty Big Storage System (My Adventures in Amazon S3) · FAST 2023
Storage systems › object storage
large object storage
0.712023
Building and Operating a Pretty Big Storage System (My Adventures in Amazon S3) · FAST 2023
Cloud and datacenter computing
virtualization
0.572015
Breaking up is hard to do: security and functionality in a commodity hypervisor · SOSP 2011
Remus: High Availability via Asynchronous Virtual Machine Replication. (Best Paper) · NSDI 2008
Parallax: virtual disks for virtual machines · EuroSys 2008
Storage systems
crash consistency
0.512021
Using Lightweight Formal Methods to Validate a Key-Value Storage Node in Amazon S3 · SOSP 2021
Storage systems
key-value storage
0.512021
Using Lightweight Formal Methods to Validate a Key-Value Storage Node in Amazon S3 · SOSP 2021
Storage systems
storage reliability
0.512021
Using Lightweight Formal Methods to Validate a Key-Value Storage Node in Amazon S3 · SOSP 2021
Distributed systems
fault tolerance
0.532015
Tardigrade: Leveraging Lightweight Virtual Machines to Easily and Efficiently Construct Fault-Tolerant Services · NSDI 2015
RemusDB: transparent high availability for database systems · VLDB J. 2013
Remus: High Availability via Asynchronous Virtual Machine Replication. (Best Paper) · NSDI 2008
Authentication and access control
access control
0.412020
Block public access: trust safety verification of access control policies · ESEC/SIGSOFT FSE 2020
Authentication and access control › access control
policy verification
0.412020
Block public access: trust safety verification of access control policies · ESEC/SIGSOFT FSE 2020
Usable security
trust and safety
0.412020
Block public access: trust safety verification of access control policies · ESEC/SIGSOFT FSE 2020
Web and mobile security › mobile application security
android permissions
0.412019
Permissions Plugins as Android Apps · MobiSys 2019
Web and mobile security
mobile security
0.412019
Permissions Plugins as Android Apps · MobiSys 2019
Operating systems
mobile systems
0.412019
Permissions Plugins as Android Apps · MobiSys 2019
Operating systems › system security › operating system security › protection mechanism › isolation
process isolation
0.412019
Permissions Plugins as Android Apps · MobiSys 2019
Distributed systems › replication
database replication
0.322013
RemusDB: transparent high availability for database systems · VLDB J. 2013
RemusDB: Transparent High Availability for Database Systems · Proc. VLDB Endow. 2011
Distributed systems
replication
0.322013
RemusDB: transparent high availability for database systems · VLDB J. 2013
RemusDB: Transparent High Availability for Database Systems · Proc. VLDB Endow. 2011
Cloud and datacenter computing
control plane
0.312017
Mirador: An Active Control Plane for Datacenter Storage · FAST 2017
Cloud and datacenter computing
datacenter storage
0.312017
Mirador: An Active Control Plane for Datacenter Storage · FAST 2017
Distributed systems › fault tolerance
high availability
0.222011
RemusDB: Transparent High Availability for Database Systems · Proc. VLDB Endow. 2011
Remus: High Availability via Asynchronous Virtual Machine Replication. (Best Paper) · NSDI 2008
Storage systems
i/o workload characterization
0.212014
Characterizing Storage Workloads with Counter Stacks · OSDI 2014
Memory systems
non-volatile memory
0.212014
Strata: scalable high-performance storage on virtualized non-volatile memory · FAST 2014
Distributed and cloud data management
high availability
0.212013
RemusDB: transparent high availability for database systems · VLDB J. 2013
Software-defined and programmable networks
network function virtualization
0.212013
Split/Merge: System Support for Elastic Execution in Virtual Middleboxes · NSDI 2013
Operating systems › resource management › memory management
cache management
0.212013
Whose cache line is it anyway?: operating system support for live detection and repair of false sharing · EuroSys 2013
Memory systems
cache coherence
0.212013
Whose cache line is it anyway?: operating system support for live detection and repair of false sharing · EuroSys 2013
Memory systems › cache coherence
false sharing
0.212013
Whose cache line is it anyway?: operating system support for live detection and repair of false sharing · EuroSys 2013
Program verification
lightweight formal methods
0.112021
Using Lightweight Formal Methods to Validate a Key-Value Storage Node in Amazon S3 · SOSP 2021
Cloud and datacenter computing › cloud security
access control policies
0.112020
Block public access: trust safety verification of access control policies · ESEC/SIGSOFT FSE 2020
Cloud and datacenter computing
cloud security
0.112020
Block public access: trust safety verification of access control policies · ESEC/SIGSOFT FSE 2020
Systems and software security
isolation
0.112011
Breaking up is hard to do: security and functionality in a commodity hypervisor · SOSP 2011

Methods — techniques the papers use, named apart from their topics

model checking · 1.0lightweight formal methods · 1.0residual policy computation · 0.9formal verification · 0.9SMT solving · 0.9process isolation · 0.8permission plugins · 0.8runtime repair · 0.3live detection · 0.3data tainting · 0.2storage deduplication · 0.1demand emulation · 0.1asynchronous replication · 0.1paravirtualization · 0.0
YearPublicationVenuePosition
2023 Building and Operating a Pretty Big Storage System (My Adventures in Amazon S3)
Andy Warfield
FAST1
2021 Using Lightweight Formal Methods to Validate a Key-Value Storage Node in Amazon S3
abstract
This paper reports our experience applying lightweight formal methods to validate the correctness of ShardStore, a new key-value storage node implementation for the Amazon S3 cloud object storage service. By "lightweight formal methods" we mean a pragmatic approach to verifying the correctness of a production storage node that is under ongoing feature development by a full-time engineering team. We do not aim to achieve full formal verification, but instead emphasize automation, usability, and the ability to continually ensure correctness as both software and its specification evolve over time. Our approach decomposes correctness into independent properties, each checked by the most appropriate tool, and develops executable reference models as specifications to be checked against the implementation. Our work has prevented 16 issues from reaching production, including subtle crash consistency and concurrency problems, and has been extended by non-formal-methods experts to check new features and properties as ShardStore has evolved.
James Bornholt, Rajeev Joshi, Vytautas Astrauskas, Brendan Cully, Bernhard Kragl, Seth Markle, Kyle Sauri, Drew Schleit, Grant Slatton, Serdar Tasiran, Jacob Van Geffen, Andy Warfield
SOSP12
2020 Block public access: trust safety verification of access control policies
abstract
Data stored in cloud services is highly sensitive and so access to it is controlled via policies written in domain-specific languages (DSLs). The expressiveness of these DSLs provides users flexibility to cover a wide variety of uses cases, however, unintended misconfigurations can lead to potential security issues. We introduce Block Public Access, a tool that formally verifies policies to ensure that they only allow access to trusted principals, i.e. that they prohibit access to the general public. To this end, we formalize the notion of Trust Safety that formally characterizes whether or not a policy allows unconstrained (public) access. Next, we present a method to compile the policy down to a logical formula whose unsatisfiability can be (1) checked by SMT and (2) ensures Trust Safety. The constructs of the policy DSLs render unsatisfiability checking PSPACE-complete, which precludes verifying the millions of requests per second seen at cloud scale. Hence, we present an approach that leverages the structure of the policy DSL to compute a much smaller residual policy that corresponds only to untrusted accesses. Our approach allows Block Public Access to, in the common case, syntactically verify Trust Safety without having to query the SMT solver. We have implemented Block Public Access and present an evaluation showing how the above optimization yields a low-latency policy verifier that the S3 team at AWS has integrated into their authorization system, where it is currently in production, analyzing millions of policies everyday to ensure that client buckets do not grant unintended public access.
Malik Bouchet, Byron Cook, Bryant Cutler, Anna Druzkina, Andrew Gacek, Liana Hadarean, Ranjit Jhala, Brad Marshall, Daniel Peebles, Neha Rungta, Cole Schlesinger, Chriss Stephens, Carsten Varming, Andy Warfield
ESEC/SIGSOFT FSE14
2019 Permissions Plugins as Android Apps
abstract
The permissions framework for Android is frustratingly inflexible. Once granted a permission, Android will always allow an app to access the resource until the user manually revokes the app's permission. Prior work has proposed extensible plugin frameworks, but they have struggled to support flexible authorization and isolate apps and plugins from each other. In this paper, we propose DALF, a framework for extensible permissions plugins that provides both flexibility and isolation. The insight underlying DALF is that permissions plugins should be treated as apps themselves. This approach allows plugins to maintain state and access system resources such as a device's location while being restricted by Android's process-isolation mechanisms. Experiments with microbenchmarks and case studies with real third-party apps show promising results: plugins are easy to develop and impose acceptable overhead for most resources.
Nisarg Raval, Ali Razeen, Ashwin Machanavajjhala, Landon P. Cox, Andy Warfield
MobiSys5
2017 Sketches of space: ownership accounting for shared storage
abstract
Efficient snapshots are an important feature of modern storage systems. However, the implicit sharing underlying most snapshot implementations makes it difficult to answer basic questions about the storage costs of individual snapshots. Traditional techniques for answering these questions incur significant performance penalties due to expensive metadata overheads. We present a novel probabilistic data structure, compatible with existing storage systems, that can provide approximate answers about snapshot costs with very low computational and storage overheads while achieving better than 95% accuracy for real-world data sets.
Jake Wires, Pradeep Ganesan, Andy Warfield
SoCC3
2017 Mirador: An Active Control Plane for Datacenter Storage
Jake Wires, Andy Warfield
FAST2
2017 Decibel: Isolation and Sharing in Disaggregated Rack-Scale Storage
Mihir Nanavati, Jake Wires, Andy Warfield
NSDI3
2015 Approximating Hit Rate Curves using Streaming Algorithms
abstract
A hit rate curve is a function that maps cache size to the proportion of requests that can be served from the cache. (The caching policy and sequence of requests are assumed to be fixed.) Hit rate curves have been studied for decades in the operating system, database and computer architecture communities. They are useful tools for designing appropriate cache sizes, dynamically allocating memory between competing caches, and for summarizing locality properties of the request sequence. In this paper we focus on the widely-used LRU caching policy. Computing hit rate curves is very efficient from a runtime standpoint, but existing algorithms are not efficient in their space usage. For a stream of m requests for n cacheable objects, all existing algorithms that provably compute the hit rate curve use space linear in n. In the context of modern storage systems, n can easily be in the billions or trillions, so the space usage of these algorithms makes them impractical. We present the first algorithm for provably approximating hit rate curves for the LRU policy with sublinear space. Our algorithm uses O( p^2 * log(n) * log^2(m) / epsilon^2 ) bits of space and approximates the hit rate curve at p uniformly-spaced points to within additive error epsilon. This is not far from optimal. Any single-pass algorithm with the same guarantees must use Omega(p^2 + epsilon^{-2} + log(n)) bits of space. Furthermore, our use of additive error is necessary. Any single-pass algorithm achieving multiplicative error requires Omega(n) bits of space.
Zachary Drudi, Nicholas J. A. Harvey, Stephen Ingram, Andy Warfield, Jake Wires
APPROX-RANDOM4
2015 Tardigrade: Leveraging Lightweight Virtual Machines to Easily and Efficiently Construct Fault-Tolerant Services
Jacob R. Lorch, Andrew Baumann, Lisa Glendenning, Dutch T. Meyer, Andy Warfield
NSDI5
2014 Strata: scalable high-performance storage on virtualized non-volatile memory
Brendan Cully, Jake Wires, Dutch T. Meyer, Kevin Jamieson 0002, Keir Fraser, Tim Deegan, Daniel Stodden, Geoffrey Lefebvre, Daniel Ferstay, Andy Warfield
FAST10
2014 Characterizing Storage Workloads with Counter Stacks
Jake Wires, Stephen Ingram, Zachary Drudi, Nicholas J. A. Harvey, Andy Warfield
OSDI5
2013 Tolerating business failures in hosted applications
abstract
Users of hosted web-based applications implicitly trust that those applications, and the data that is within them, will remain active and available indefinitely into the future. When a service is terminated, for reasons such as the insolvency of the business that is providing it, users risk the immediate loss of software functionality and may face the permanent loss of their own data. This paper presents Micasa, a runtime for hosted applications that allows a significant subset of application logic and user data to remain available even in the event of the failure of a provider's business. By allowing users to audit application dependence on hosted components, and maintain externalized and private copies of their own data and the logic that allows access to it, we believe that Micasa is a first step in the direction of a more balanced degree of trust and investment between application providers and their users.
Jean-Sébastien Légaré, Dutch T. Meyer, Mark Spear, Alexandru Totolici, Sara Bainbridge, Kalan MacRow, Róbert Sumi, Quinlan Jung, Dennis Tjandra, David Williams-King, William Aiello, Andy Warfield
SoCC12
2013 Whose cache line is it anyway?: operating system support for live detection and repair of false sharing
abstract
As hardware parallelism continues to increase, CPU caches can no longer be considered as a transparent, hardware-level performance optimization. Cache impact on performance, in particular in the face of false sharing, is completely dependent on the software that is executing. To effectively support parallel workloads on cache coherent hardware, the operating system must begin to treat the CPU cache like other shared hardware resources, and manage it appropriately.
Mihir Nanavati, Mark Spear, Nathan Taylor, Shriram Rajagopalan, Dutch T. Meyer, William Aiello, Andy Warfield
EuroSys7
2013 Escape Capsule: Explicit State Is Robust and Scalable
Shriram Rajagopalan, Dan Williams 0001, Hani Jamjoom, Andy Warfield
HotOS4
2013 Split/Merge: System Support for Elastic Execution in Virtual Middleboxes
Shriram Rajagopalan, Dan Williams 0001, Hani Jamjoom, Andy Warfield
NSDI4
2013 RemusDB: transparent high availability for database systems
Umar Farooq Minhas, Shriram Rajagopalan, Brendan Cully, Ashraf Aboulnaga, Kenneth Salem, Andy Warfield
VLDB J.6
2012 PACMan: Coordinated Memory Caching for Parallel Jobs
Ganesh Ananthanarayanan, Ali Ghodsi 0002, Andy Warfield, Dhruba Borthakur, Srikanth Kandula, Scott Shenker, Ion Stoica
NSDI3
2012 Execution mining
abstract
Operating systems represent large pieces of complex software that are carefully tested and broadly deployed. Despite this, developers frequently have little more than their source code to understand how they behave. This static representation of a system results in limited insight into execution dynamics, such as what code is important, how data flows through a system, or how threads interact with one another. We describe Tralfamadore, a system that preserves complete traces of machine execution as an artifact that can be queried and analyzed with a library of simple, reusable operators, making it easy to develop and run new dynamic analyses. We demonstrate the benefits of this approach with several example applications, including a novel unified source and execution browser.
Geoffrey Lefebvre, Brendan Cully, Christopher Head, Mark Spear, Norman C. Hutchinson, Michael J. Feeley, Andy Warfield
VEE7
2012 SecondSite: disaster tolerance as a service
abstract
This paper describes the design and implementation of SecondSite, a cloud-based service for disaster tolerance. SecondSite extends the Remus virtualization-based high availability system by allowing groups of virtual machines to be replicated across data centers over wide-area Internet links. The goal of the system is to commodify the property of availability, exposing it as a simple tick box when configuring a new virtual machine. To achieve this in the wide area, we have had to tackle the related issues of replication traffic bandwidth, reliable failure detection across geographic regions and traffic redirection over a wide-area network without compromising on transparency and consistency.
Shriram Rajagopalan, Brendan Cully, Ryan O'Connor, Andy Warfield
VEE4
2011 Capo: Recapitulating Storage for Virtual Desktops
Mohammad Shamma, Dutch T. Meyer, Jake Wires, Maria Ivanova, Norman C. Hutchinson, Andy Warfield
FAST6
2011 Exposing File System Mappings with MapFS
Jake Wires, Mark Spear, Andy Warfield
HotStorage3
2011 Breaking up is hard to do: security and functionality in a commodity hypervisor
abstract
Cloud computing uses virtualization to lease small slices of large-scale datacenter facilities to individual paying customers. These multi-tenant environments, on which numerous large and popular web-based applications run today, are founded on the belief that the virtualization platform is sufficiently secure to prevent breaches of isolation between different users who are co-located on the same host. Hypervisors are believed to be trustworthy in this role because of their small size and narrow interfaces.
Patrick Colp, Mihir Nanavati, William Aiello, George Coker, Tim Deegan, Peter A. Loscocco, Andy Warfield
SOSP8
2011 Herbert West - Deanonymizer
Mihir Nanavati, Nathan Taylor, William Aiello, Andy Warfield
HotSec4
2011 RemusDB: Transparent High Availability for Database Systems
Umar Farooq Minhas, Shriram Rajagopalan, Brendan Cully, Ashraf Aboulnaga, Kenneth Salem, Andy Warfield
Proc. VLDB Endow.6
2010 Fast and Cautious Evolution of Cloud Storage
Dutch T. Meyer, Mohammad Shamma, Jake Wires, Norman C. Hutchinson, Andy Warfield
HotStorage6
2009 Tralfamadore: unifying source code and execution experience
abstract
Program source is an intermediate representation of software; it lies between a developer's intention and the hardware's execution. Despite advances in languages and development tools, source itself and the applications we use to view it remain an essentially static representation of software, from which developers can spend considerable energy postulating actual behavior.
Geoffrey Lefebvre, Brendan Cully, Michael J. Feeley, Norman C. Hutchinson, Andy Warfield
EuroSys5
2008 Parallax: virtual disks for virtual machines
abstract
Parallax is a distributed storage system that uses virtualization to provide storage facilities specifically for virtual environments. The system employs a novel architecture in which storage features that have traditionally been implemented directly on high-end storage arrays and switches are relocated into a federation of storage VMs, sharing the same physical hosts as the VMs that they serve. This architecture retains the single administrative domain and OS agnosticism achieved by array- and switch-based approaches, while lowering the bar on hardware requirements and facilitating the development of new features. Parallax offers a comprehensive set of storage features including frequent, low-overhead snapshot of virtual disks, the 'gold-mastering' of template images, and the ability to use local disks as a persistent cache to dampen burst demand on networked storage.
Dutch T. Meyer, Gitika Aggarwal, Brendan Cully, Geoffrey Lefebvre, Michael J. Feeley, Norman C. Hutchinson, Andy Warfield
EuroSys7
2008 Remus: High Availability via Asynchronous Virtual Machine Replication. (Best Paper)
Brendan Cully, Geoffrey Lefebvre, Dutch T. Meyer, Michael J. Feeley, Norman C. Hutchinson, Andy Warfield
NSDI6
2007 Compatibility Is Not Transparency: VMM Detection Myths and Realities
Tal Garfinkel, Keith Adams, Andy Warfield, Jason Franklin
HotOS3
2006 Practical taint-based protection using demand emulation
abstract
Many software attacks are based on injecting malicious code into a target host. This paper demonstrates the use of a well-known technique, data tainting, to track data received from the network as it propagates through a system and to prevent its execution. Unlike past approaches to taint tracking, which track tainted data by running the system completely in an emulator or simulator, resulting in considerable execution overhead, our work demonstrates the ability to dynamically switch a running system between virtualized and emulated execution. Using this technique, we are able to explore hardware support for taint-based protection that is deployable in real-world situations, as emulation is only used when tainted data is being processed by the CPU. By modifying the CPU, memory, and I/O devices to support taint tracking and protection, we guarantee that data received from the network may not be executed, even if it is written to, and later read from disk. We demonstrate near native speeds for workloads where little taint data is present.
Alex Ho, Michael A. Fetterman, Andy Warfield, Steven Hand 0001
EuroSys4
2005 Falling Off the Cliff: When Systems Go Nonlinear
Yvonne Coady, Russ Cox, John DeTreville, Peter Druschel, Joseph L. Hellerstein, Andrew Hume, Kimberly Keeton, Christopher Small 0001, Lex Stein, Andy Warfield
HotOS11
2005 Are Virtual Machine Monitors Microkernels Done Right?
Steven Hand 0001, Andy Warfield, Keir Fraser, Evangelos Kotsovinos, Daniel J. Magenheimer
HotOS2
2005 Parallax: Managing Storage for a Million Machines
Andy Warfield, Russ Ross, Keir Fraser, Christian Limpach, Steven Hand 0001
HotOS1
2005 Live Migration of Virtual Machines
Keir Fraser, Steven Hand 0001, Jacob Gorm Hansen, Eric Jul, Christian Limpach, Ian Pratt 0001, Andy Warfield
NSDI8
2005 Facilitating the Development of Soft Devices
Andy Warfield, Steven Hand 0001, Keir Fraser, Tim Deegan
USENIX ATC, General Track1
2004 A data synchronization service for ad hoc groups
abstract
The emergence of wireless ad hoc networking has opened the way for a new style of distributed computing. Ad hoc networks operate without infrastructure such as routers or access points. Software designed for this environment faces new challenges. In traditional networks, partitioning is typically treated as an exceptional and transient condition. The situation in ad hoc wireless networks is completely reversed. Each ad hoc group is an isolated network, partitioned from all other ad hoc networks. As computers move from one ad hoc group to another, the set of partitions changes. This paper presents the design and implementation of a data synchronization service intended specifically for ad hoc wireless networks. It describes the underlying factors affecting the design, the protocol used to achieve synchronization, and some performance measurements from the actual implementation.
Terry Coatta, Norman C. Hutchinson, Andy Warfield, Joseph H. T. Won
WCNC3
2003 Xen and the art of virtualization
abstract
Numerous systems have been designed which use virtualization to subdivide the ample resources of a modern computer. Some require specialized hardware, or cannot support commodity operating systems. Some target 100% binary compatibility at the expense of performance. Others sacrifice security or functionality for speed. Few offer resource isolation or performance guarantees; most provide only best-effort provisioning, risking denial of service.This paper presents Xen, an x86 virtual machine monitor which allows multiple commodity operating systems to share conventional hardware in a safe and resource managed fashion, but without sacrificing either performance or functionality. This is achieved by providing an idealized virtual machine abstraction to which operating systems such as Linux, BSD and Windows XP, can be ported with minimal effort.Our design is targeted at hosting up to 100 virtual machine instances simultaneously on a modern server. The virtualization approach taken by Xen is extremely efficient: we allow operating systems such as Linux and Windows XP to be hosted simultaneously for a negligible performance overhead --- at most a few percent compared with the unvirtualized case. We considerably outperform competing commercial and freely available solutions in a range of microbenchmarks and system-wide tests.
Paul Barham 0001, Boris Dragovic, Keir Fraser, Steven Hand 0001, Tim Harris 0001, Alex Ho, Rolf Neugebauer, Ian Pratt 0001, Andy Warfield
SOSP9
2001 The Importance of Good Plumbing-Reconsidering Infrastructure in Distributed Systems
abstract
Summary form only given. Our work to date has been in the design and development of a stream-centric model for communications which we have called the flow. A flow is a uniquely named, message-based, multicast communications stream. Flows are named by FlowIDs which represent a collection of resources used to provide a communications stream in the same manner that process IDs represent resources associated with a computational task. By providing distinct names for these multicast streams, services become decoupled from network endpoints. This single property provides sweeping benefits for mobility, fault tolerance, and resource location. In addition to naming, we have implemented three properties of flows which we feel are beneficial to distributed applications. We have finished an initial implementation of flows as a network middleware and have become convinced that they are an interesting and useful communications abstraction.
Andy Warfield, Norman C. Hutchinson
HotOS1