EDBT 2026 Demo / reviewers in the wild / expert
David Detlefs
dblp:61/724
· DBLP profile ↗
17ranked-venue papers
9as first author
0since 2021 · last 2006
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 8 · 3 first-authorSystems, architecture and hardware · 5 · 2 first-authorTheory of computation · 2 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 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.
| Software engineering, system software, and programming languages
5 papers |
Concurrent programming · 35% Runtime systems and virtual machines · 34% Program verification · 20% | |
| Theoretical computer science
1 paper |
Automated reasoning and model checking · 100% |
Topics — the 14 heaviest of 15, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Concurrent programming
synchronization |
0.1 | 2 | 2006 | Eliminating synchronization-related atomic operations with biased locking and bulk rebiasing · OOPSLA 2006 An Efficient Meta-Lock for Implementing Ubiquitous Synchronization · OOPSLA 1999 |
Runtime systems and virtual machines › virtual machine implementation
java virtual machine |
0.1 | 3 | 2006 | Eliminating synchronization-related atomic operations with biased locking and bulk rebiasing · OOPSLA 2006 An Efficient Meta-Lock for Implementing Ubiquitous Synchronization · OOPSLA 1999 Garbage Collection and Local Variable Type-Precision and Liveness in Java Virtual Machines · PLDI 1998 |
Debugging and program repair
error localization |
0.1 | 1 | 2005 | Simplify: a theorem prover for program checking · J. ACM 2005 |
Program verification › deductive verification
extended static checking |
0.1 | 1 | 2005 | Simplify: a theorem prover for program checking · J. ACM 2005 |
Program verification
theorem proving |
0.1 | 1 | 2005 | Simplify: a theorem prover for program checking · J. ACM 2005 |
Automated reasoning and model checking
decision procedures |
0.1 | 1 | 2005 | Simplify: a theorem prover for program checking · J. ACM 2005 |
Automated reasoning and model checking › deduction
quantified reasoning |
0.1 | 1 | 2005 | Simplify: a theorem prover for program checking · J. ACM 2005 |
Runtime systems and virtual machines
garbage collection |
0.1 | 2 | 2001 | Lock-free reference counting · PODC 2001 Garbage Collection and Local Variable Type-Precision and Liveness in Java Virtual Machines · PLDI 1998 |
Concurrent programming
concurrent data structures |
0.0 | 1 | 2001 | Lock-free reference counting · PODC 2001 |
Concurrent programming › non-blocking algorithms
lock-free data structures |
0.0 | 1 | 2001 | Lock-free reference counting · PODC 2001 |
Runtime systems and virtual machines › garbage collection
reference counting |
0.0 | 1 | 2001 | Lock-free reference counting · PODC 2001 |
Concurrent programming › synchronization
locking |
0.0 | 1 | 1999 | An Efficient Meta-Lock for Implementing Ubiquitous Synchronization · OOPSLA 1999 |
Concurrent programming › synchronization
synchronization primitives |
0.0 | 1 | 2006 | Eliminating synchronization-related atomic operations with biased locking and bulk rebiasing · OOPSLA 2006 |
Program analysis
type analysis |
0.0 | 1 | 1998 | Garbage Collection and Local Variable Type-Precision and Liveness in Java Virtual Machines · PLDI 1998 |
Methods — techniques the papers use, named apart from their topics
nelson-oppen method · 0.1e-graph matching · 0.1store-free biased locking · 0.1epoch-based bulk rebiasing · 0.1double compare-and-swap · 0.0thread-safe class libraries · 0.0monitors · 0.0type analysis · 0.0live variable analysis · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2006 | Eliminating synchronization-related atomic operations with biased locking and bulk rebiasingabstractThe Java TM programming language contains built-in synchronization primitives for use in constructing multithreaded programs. Efficient implementation of these synchronization primitives is necessary in order to achieve high performance. Recent research [9, 12, 10, 3, 7] has focused on the run-time elimination of the atomic operations required to implement object monitor synchronization primitives. This paper describes a novel technique called store-free biased locking which eliminates all synchronization-related atomic operations on uncontended object monitors. The technique supports the bulk transfer of object ownership from one thread to another, and the selective disabling of the optimization where unprofitable, using epoch-based bulk rebiasing and revocation. It has been implemented in the production version of the Java HotSpot TM VM and has yielded significant performance improvements on a range of benchmarks and applications. The technique is applicable to any virtual machine-based programming language implementation with mostly block-structured locking primitives. Kenneth B. Russell, David Detlefs |
OOPSLA | 2 |
| 2005 | Compile-Time Concurrent Marking Write Barrier RemovalabstractGarbage collectors incorporating concurrent marking to cope with large live data sets and stringent pause time constraints have become common in recent years. The snapshot-at-the-beginning style of concurrent marking has several advantages over the incremental update alternative, but one main disadvantage: it requires the mutator to execute a significantly more expensive write barrier. This paper demonstrates that a large fraction of these write barriers are unnecessary, and may be eliminated by static analysis. V. Krishna Nandivada, David Detlefs |
CGO | 2 |
| 2005 | Simplify: a theorem prover for program checkingabstractThis article provides a detailed description of the automatic theorem prover Simplify, which is the proof engine of the Extended Static Checkers ESC/Java and ESC/Modula-3. Simplify uses the Nelson--Oppen method to combine decision procedures for several important theories, and also employs a matcher to reason about quantifiers. Instead of conventional matching in a term DAG, Simplify matches up to equivalence in an E-graph, which detects many relevant pattern instances that would be missed by the conventional approach. The article describes two techniques, error context reporting and error localization, for helping the user to determine the reason that a false conjecture is false. The article includes detailed performance figures on conjectures derived from realistic program-checking problems. David Detlefs, Greg Nelson, James B. Saxe |
J. ACM | 1 |
| 2004 | A Hard Look at Hard Real-Time Garbage CollectionabstractThe author reviews the literature on the use of garbage collection in real-time systems. The author concentrates on hard real-time systems, where we ideally construct mathematical proofs of correctness and of timing properties. In particular, the author examines the interaction of overheads imposed on mutator operations by garbage collection algorithms on worst-case execution time analyses of real-time threads performing those operations. In recent years there has been a shift from work-based to time-based approaches. This paper explains and motivates this shift, and reviews examples, problems, and advantages of example algorithms from each approach. Finally, the author examines what extensions to programming verification technology might be necessary to prove that sufficient memory space exists to run a real-time system with the same rigor that one proves that sufficient time exists in a real-time schedule David Detlefs |
ISORC | 1 |
| 2004 | Garbage-first garbage collectionabstractGarbage-First is a server-style garbage collector, targeted for multi-processors with large memories, that meets a soft real-time goal with high probability, while achieving high throughput. Whole-heap operations, such as global marking, are performed concurrently with mutation, to prevent interruptions proportional to heap or live-data size. Concurrent marking both provides collection ”completeness ” and identifies regions ripe for reclamation via compacting evacuation. This evacuation is performed in parallel on multiprocessors, to increase throughput. David Detlefs, Christine H. Flood, Steve Heller, Tony Printezis |
ISMM | 1 |
| 2004 | DCAS is not a silver bullet for nonblocking algorithm designabstractDespite years of research, the design of efficient nonblocking algorithms remains difficult. A key reason is that current shared-memory multiprocessor architectures support only single-location synchronisation primitives such as compare-and-swap (CAS) and load-linked/store-conditional (LL/SC). Recently researchers have investigated the utility of double-compare-and-swap (DCAS)--a generalisation of CAS that supports atomic access to two memory locations -- in overcoming these problems. We summarise recent research in this direction and present a detailed case study concerning a previously published nonblocking DCAS-based double-ended queue implementation. Our summary and case study clearly show that DCAS does not provide a silver bullet for nonblocking synchronisation. That is, it does not make the design and verification of even mundane nonblocking data structures with desirable properties easy. Therefore, our position is that while slightly more powerful synchronisation primitives can ave a profound effect on ease of algorithm design and verification, DCAS does not provide sufficient additional power over CAS to justify supporting it in hardware. Simon Doherty, David Detlefs, Lindsay Groves, Christine H. Flood, Victor Luchangco, Paul Alan Martin, Mark Moir, Nir Shavit, Guy L. Steele Jr. |
SPAA | 2 |
| 2002 | Lock-free reference counting
David Detlefs, Paul Alan Martin, Mark Moir, Guy L. Steele Jr. |
Distributed Comput. | 1 |
| 2002 | DCAS-Based Concurrent Deques
Ole Agesen, David Detlefs, Christine H. Flood, Alex Garthwaite, Paul Alan Martin, Mark Moir, Nir Shavit, Guy L. Steele Jr. |
Theory Comput. Syst. | 2 |
| 2001 | Lock-free reference countingabstractAssuming the existence of garbage collection makes it easier to design implementations of concurrent data structures. However, this assumption limits their applicability. We present a methodology that, for a significant class of data structures, allows designers to first tackle the easier problem of designing a garbage-collection-dependent implementation, and then apply our methodology to achieve a garbage-collection-independent one. Our methodology is based on the well-known reference counting technique, and employs the double compare-and-swap operation. David Detlefs, Paul Alan Martin, Mark Moir, Guy L. Steele Jr. |
PODC | 1 |
| 2000 | A Generational Mostly-Concurrent Garbage CollectorabstractThis paper reports our experiences with a mostly-concurrent incremental garbage collector, implemented in the context of a high performance virtual machine for the Java™ programming language. The garbage collector is based on the “mostly parallel” collection algorithm of Boehm et al. and can be used as the old generation of a generational memory system. It overloads efficient write-barrier code already generated to support generational garbage collection to also identify objects that were modified during concurrent marking. These objects must be rescanned to ensure that the concurrent marking phase marks all live objects. This algorithm minimises maximum garbage collection pause times, while having only a small impact on the average garbage collection pause time and overall execution time. We support our claims with experimental results, for both a synthetic benchmark and real programs. Tony Printezis, David Detlefs |
ISMM | 2 |
| 2000 | DCAS-based concurrent dequesabstractThe computer industry is currently examining the use of strong synchronization operations such as double compare-and-swap (DCAS) as a means of supporting non-blocking synchronization on tomorrow's multiprocessor machines. However, before such a strong primitive will be incorporated into hardware design, its utility needs to be proven by developing a body of effective non-blocking data structures using DCAS. As part of this effort, we present two new linearizable non-blocking implementations of concurrent deques using the DCAS operation. The first uses an array representation, and improves on former algorithms by allowing uninterrupted concurrent access to both ends of the deque while correctly handling the difficult boundary cases when the deque is empty or full. The second uses a linked-list representation, and is the first non-blocking unbounded-memory deque implementation. It too allows uninterrupted concurrent access to both ends of the deque. Ole Agesen, David Detlefs, Christine H. Flood, Alex Garthwaite, Paul Alan Martin, Nir Shavit, Guy L. Steele Jr. |
SPAA | 2 |
| 2000 | Even Better DCAS-Based Concurrent Deques
David Detlefs, Christine H. Flood, Alex Garthwaite, Paul Alan Martin, Nir Shavit, Guy L. Steele Jr. |
DISC | 1 |
| 1999 | Inlining of Virtual Methods
David Detlefs, Ole Agesen |
ECOOP | 1 |
| 1999 | An Efficient Meta-Lock for Implementing Ubiquitous SynchronizationabstractPrograms written in concurrent object-oriented languages, especially ones that employ thread-safe reusable class libraries, can execute synchronization operations (lock, notify, etc.) at an amazing rate. Unless implemented with utmost care, synchronization can become a performance bottleneck. Furthermore, in languages where every object may have its own monitor, per-object space overhead must be minimized. To address these concerns, we have developed a meta-lock to mediate access to synchronization data. The meta-lock is fast (lock + unlock executes in 11 SPARC™ architecture instructions), compact (uses only two bits of space), robust under contention (no busy-waiting), and flexible (supports a variety of higher-level synchronization operations). We have validated the meta-lock with an implementation of the synchronization operations in a high-performance product-quality Java™ virtual machine and report performance data for several large programs. Ole Agesen, David Detlefs, Alex Garthwaite, Ross C. Knippel, Y. S. Ramakrishna, Derek White |
OOPSLA | 2 |
| 1998 | Garbage Collection and Local Variable Type-Precision and Liveness in Java Virtual MachinesabstractFull precision in garbage collection implies retaining only those heap allocated objects that will actually be used in the future. Since full precision is not computable in general, garbage collectors use safe (i.e., conservative) approximations such as reachability from a set of root references. Ambiguous roots collectors (commonly called "conservative") can be overly conservative because they overestimate the root set, and thereby retain unexpectedly large amounts of garbage. We consider two more precise collection schemes for Java virtual machines (JVMs). One uses a type analysis to obtain a type-precise root set (only those variables that contain references); the other adds a live variable analysis to reduce the root set to only the live reference variables. Even with the Java programming language's strong typing, it turns out that the JVM specification has a feature that makes type-precise root sets difficult to compute. We explain the problem and ways in which it can be solved.Our experimental results include measurements of the costs of the type and liveness analyses at load time, of the incremental benefits at run time of the liveness analysis over the type analysis alone, and of various map sizes and counts. We find that the liveness analysis often produces little or no improvement in heap size, sometimes modest improvements, and occasionally the improvement is dramatic. While further study is in order, we conclude that the main benefit of the liveness analysis is preventing bad surprises. Ole Agesen, David Detlefs, J. Eliot B. Moss |
PLDI | 2 |
| 1994 | Memory Allocation Costs in Large C and C++ ProgramsabstractAbstract Dynamic storage allocation is an important part of a large class of computer programs written in C and C + +. High‐performance algorithms for dynamic storage allocation have been, and will continue to be, of considerable interest. This paper presents detailed measurements of the cost of dynamic storage allocation in 11 diverse C and C + + programs using five very different dynamic storage allocation implementations, including a conservative garbage collection algorithm. Four of the allocator implementations measured are publicly available on the Internet. A number of the programs used in these measurements are also available on the Internet to facilitate further research in dynamic storage allocation. Finally, the data presented in this paper is an abbreviated version of more extensive statistics that are also publicly available on the Internet. David Detlefs, Al Dosser, Benjamin G. Zorn |
Softw. Pract. Exp. | 1 |
| 1985 | A Procedure for Automatically Proving the Termination of a Set of Rewrite Rules
David Detlefs, Randy Forgaard |
RTA | 1 |