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.

Doug Woos

dblp:149/9232 · DBLP profile ↗
← Back
9ranked-venue papers
1as first author
0since 2021 · last 2019
—ORCID · none

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

Software engineering, systems software and programming languages · 5 · 1 first-authorSystems, architecture and hardware · 3Computer networks · 1Theory of computation · 1 · 1 first-author

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
5 papers
Distributed systems · 72% Storage systems · 16% Electronic design automation · 8%
Computer networks
2 papers
Network management and operations · 59% Internet architecture and protocols · 30% Routing and switching · 12%
Software engineering, system software, and programming languages
5 papers
Operating systems · 55% Program verification · 45%

Topics — the 23 heaviest of 26, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Distributed systems
fault tolerance
0.622019
Teaching Rigorous Distributed Systems With Efficient Model Checking · EuroSys 2019
Verdi: a framework for implementing and formally verifying distributed systems · PLDI 2015
Storage systems
key-value storage
0.522019
Teaching Rigorous Distributed Systems With Efficient Model Checking · EuroSys 2019
Arrakis: The Operating System Is the Control Plane · ACM Trans. Comput. Syst. 2016
Operating systems › kernel
kernel design
0.422016
Arrakis: The Operating System Is the Control Plane · ACM Trans. Comput. Syst. 2016
Arrakis: The Operating System is the Control Plane · OSDI 2014
Distributed systems
distributed coordination
0.412019
Teaching Rigorous Distributed Systems With Efficient Model Checking · EuroSys 2019
Distributed systems › consistency models
linearizability
0.412019
Teaching Rigorous Distributed Systems With Efficient Model Checking · EuroSys 2019
Program verification
deductive verification
0.312018
Modularity for decidability of deductive verification with applications to distributed systems · PLDI 2018
Network management and operations › configuration verification
BGP configuration verification
0.212016
Scalable verification of border gateway protocol configurations with an SMT solver · OOPSLA 2016
Network management and operations
configuration verification
0.212016
Scalable verification of border gateway protocol configurations with an SMT solver · OOPSLA 2016
Network management and operations › network verification
SMT-based verification
0.212016
Scalable verification of border gateway protocol configurations with an SMT solver · OOPSLA 2016
Operating systems › virtualization
i/o virtualization
0.212016
Arrakis: The Operating System Is the Control Plane · ACM Trans. Comput. Syst. 2016
Distributed systems
distributed system verification
0.212015
Verdi: a framework for implementing and formally verifying distributed systems · PLDI 2015
Electronic design automation › hardware verification and test
fault modeling
0.212015
Verdi: a framework for implementing and formally verifying distributed systems · PLDI 2015
Distributed systems
replication
0.212015
Verdi: a framework for implementing and formally verifying distributed systems · PLDI 2015
Distributed systems › replication
state machine replication
0.212015
Verdi: a framework for implementing and formally verifying distributed systems · PLDI 2015
Internet architecture and protocols › network evolution
incremental deployment
0.212014
One tunnel is (often) enough · SIGCOMM 2014
Internet architecture and protocols
network resilience
0.212014
One tunnel is (often) enough · SIGCOMM 2014
Program verification
model checking
0.112019
Teaching Rigorous Distributed Systems With Efficient Model Checking · EuroSys 2019
Routing and switching › inter-domain routing
BGP
0.112016
Scalable verification of border gateway protocol configurations with an SMT solver · OOPSLA 2016
Routing and switching
inter-domain routing
0.112016
Scalable verification of border gateway protocol configurations with an SMT solver · OOPSLA 2016
Cloud and datacenter computing
virtualization
0.112016
Arrakis: The Operating System Is the Control Plane · ACM Trans. Comput. Syst. 2016
Program verification › proof assistants
coq
0.112015
Verdi: a framework for implementing and formally verifying distributed systems · PLDI 2015
Program verification
proof assistants
0.112015
Verdi: a framework for implementing and formally verifying distributed systems · PLDI 2015
Network security › attack strategy
denial-of-service attack
0.112014
One tunnel is (often) enough · SIGCOMM 2014

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

visual debugging · 1.1model checking · 1.1modular reasoning · 0.7automated theorem proving · 0.7kernel bypass · 0.5direct device access · 0.5mechanical proof · 0.4linearizability proof · 0.4coq · 0.4tunneling · 0.4symbolic execution · 0.2predicate abstraction · 0.2SMT solving · 0.2
YearPublicationVenuePosition
2019 Teaching Rigorous Distributed Systems With Efficient Model Checking
abstract
Writing correct distributed systems code is difficult, especially for novice programmers. The inherent asynchrony and need for fault-tolerance make errors almost inevitable. Industrial-strength testing and model checking have been shown to be effective at uncovering bugs, but they come at a cost --- in both time and effort --- that is far beyond what students can afford. To address this, we have developed an efficient model checking framework and visual debugger for distributed systems, with the goal of helping students find and fix bugs in near real-time. We identify two novel techniques for reducing the search state space to more efficiently find bugs in student implementations. We report our experiences using these tools to help over two hundred students build a correct, linearizable, fault-tolerant, dynamically-sharded key--value store.
Ellis Michael, Doug Woos, Thomas E. Anderson, Michael D. Ernst, Zachary Tatlock
EuroSys2
2018 Modularity for decidability of deductive verification with applications to distributed systems
abstract
Proof automation can substantially increase productivity in formal verification of complex systems. However, unpredictablility of automated provers in handling quantified formulas presents a major hurdle to usability of these tools. We propose to solve this problem not by improving the provers, but by using a modular proof methodology that allows us to produce decidable verification conditions. Decidability greatly improves predictability of proof automation, resulting in a more practical verification approach. We apply this methodology to develop verified implementations of distributed protocols, demonstrating its effectiveness.
Marcelo Taube, Giuliano Losa, Kenneth L. McMillan, Oded Padon, Shmuel Sagiv, Sharon Shoham, James R. Wilcox, Doug Woos
PLDI8
2016 Planning for change in a formal verification of the raft consensus protocol
abstract
We present the first formal verification of state machine safety for the Raft consensus protocol, a critical component of many distributed systems. We connected our proof to previous work to establish an end-to-end guarantee that our implementation provides linearizable state machine replication. This proof required iteratively discovering and proving 90 system invariants. Our verified implementation is extracted to OCaml and runs on real networks. The primary challenge we faced during the verification process was proof maintenance, since proving one invariant often required strengthening and updating other parts of our proof. To address this challenge, we propose a methodology of planning for change during verification. Our methodology adapts classical information hiding techniques to the context of proof assistants, factors out common invariant-strengthening patterns into custom induction principles, proves higher-order lemmas that show any property proved about a particular component implies analogous properties about related components, and makes proofs robust to change using structural tactics. We also discuss how our methodology may be applied to systems verification more broadly.
Doug Woos, James R. Wilcox, Steve Anton, Zachary Tatlock, Michael D. Ernst, Thomas E. Anderson
CPP1
2016 Scalable verification of border gateway protocol configurations with an SMT solver
abstract
Internet Service Providers (ISPs) use the Border Gateway Protocol (BGP) to announce and exchange routes for de- livering packets through the internet. ISPs must carefully configure their BGP routers to ensure traffic is routed reli- ably and securely. Correctly configuring BGP routers has proven challenging in practice, and misconfiguration has led to worldwide outages and traffic hijacks. This paper presents Bagpipe, a system that enables ISPs to declaratively express BGP policies and that automatically verifies that router configurations implement such policies. The novel initial network reduction soundly reduces policy verification to a search for counterexamples in a finite space. An SMT-based symbolic execution engine performs this search efficiently. Bagpipe reduces the size of its search space using predicate abstraction and parallelizes its search using symbolic variable hoisting. Bagpipe's policy specification language is expressive: we expressed policies inferred from real AS configurations, policies from the literature, and policies for 10 Juniper TechLibrary configuration scenarios. Bagpipe is efficient: we ran it on three ASes with a total of over 240,000 lines of Cisco and Juniper BGP configuration. Bagpipe is effective: it revealed 19 policy violations without issuing any false positives.
Konstantin Weitz, Doug Woos, Emina Torlak, Michael D. Ernst, Arvind Krishnamurthy, Zachary Tatlock
OOPSLA2
2016 Arrakis: The Operating System Is the Control Plane
abstract
Recent device hardware trends enable a new approach to the design of network server operating systems. In a traditional operating system, the kernel mediates access to device hardware by server applications to enforce process isolation as well as network and disk security. We have designed and implemented a new operating system, Arrakis, that splits the traditional role of the kernel in two. Applications have direct access to virtualized I/O devices, allowing most I/O operations to skip the kernel entirely, while the kernel is re-engineered to provide network and disk protection without kernel mediation of every operation. We describe the hardware and software changes needed to take advantage of this new abstraction, and we illustrate its power by showing improvements of 2 to 5 × in latency and 9 × throughput for a popular persistent NoSQL store relative to a well-tuned Linux implementation.
Simon Peter 0001, Jialin Li 0001, Irene Zhang, Dan R. K. Ports, Doug Woos, Arvind Krishnamurthy, Thomas E. Anderson, Timothy Roscoe
ACM Trans. Comput. Syst.5
2015 Verdi: a framework for implementing and formally verifying distributed systems
abstract
Distributed systems are difficult to implement correctly because they must handle both concurrency and failures: machines may crash at arbitrary points and networks may reorder, drop, or duplicate packets. Further, their behavior is often too complex to permit exhaustive testing. Bugs in these systems have led to the loss of critical data and unacceptable service outages. We present Verdi, a framework for implementing and formally verifying distributed systems in Coq. Verdi formalizes various network semantics with different faults, and the developer chooses the most appropriate fault model when verifying their implementation. Furthermore, Verdi eases the verification burden by enabling the developer to first verify their system under an idealized fault model, then transfer the resulting correctness guarantees to a more realistic fault model without any additional proof burden. To demonstrate Verdi's utility, we present the first mechanically checked proof of linearizability of the Raft state machine replication algorithm, as well as verified implementations of a primary-backup replication system and a key-value store. These verified systems provide similar performance to unverified equivalents.
James R. Wilcox, Doug Woos, Pavel Panchekha, Zachary Tatlock, Xi Wang 0005, Michael D. Ernst, Thomas E. Anderson
PLDI2
2014 Towards High-Performance Application-Level Storage Management
Simon Peter 0001, Jialin Li 0001, Irene Zhang, Dan R. K. Ports, Thomas E. Anderson, Arvind Krishnamurthy, Mark Zbikowski, Doug Woos
HotStorage8
2014 Arrakis: The Operating System is the Control Plane
Simon Peter 0001, Jialin Li 0001, Irene Zhang, Dan R. K. Ports, Doug Woos, Arvind Krishnamurthy, Thomas E. Anderson, Timothy Roscoe
OSDI5
2014 One tunnel is (often) enough
abstract
A longstanding problem with the Internet is that it is vulnerable to outages, black holes, hijacking and denial of service. Although architectural solutions have been proposed to address many of these issues, they have had difficulty being adopted due to the need for widespread adoption before most users would see any benefit. This is especially relevant as the Internet is increasingly used for applications where correct and continuous operation is essential.
Simon Peter 0001, Umar Javed, Qiao Zhang 0001, Doug Woos, Thomas E. Anderson, Arvind Krishnamurthy
SIGCOMM4