EDBT 2026 Demo / reviewers in the wild / expert
William E. Weihl
dblp:16/6237
· DBLP profile ↗
47ranked-venue papers
11as first author
0since 2021 · last 2004
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 15 · 3 first-authorSoftware engineering, systems software and programming languages · 14 · 5 first-authorDatabases, data management, data science and information retrieval · 11 · 1 first-authorTheory of computation · 7 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 2Computer networks · 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
21 papers |
Performance modeling and evaluation · 35% Parallel and multicore computing · 23% Distributed systems · 19% | |
| Databases, data mining, and information retrieval
13 papers |
Transaction processing and concurrency control · 96% Distributed and cloud data management · 2% Data models and query languages · 1% | |
| Software engineering, system software, and programming languages
13 papers |
Operating systems · 34% Runtime systems and virtual machines · 29% Software testing · 15% |
Topics — the 30 heaviest of 76, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Performance modeling and evaluation
profiling |
0.1 | 3 | 2000 | Efficient and Flexible Value Sampling · ASPLOS 2000 Continuous Profiling: Where Have All the Cycles Gone? · ACM Trans. Comput. Syst. 1997 Continuous Profiling: Where Have All the Cycles Gone? · SOSP 1997 |
Transaction processing and concurrency control
concurrency control |
0.0 | 9 | 1990 | Linguistic Support for Atomic Data Types · ACM Trans. Program. Lang. Syst. 1990 A Serialization Graph Construction for Nested Transactions · PODS 1990 Local Atomicity Properties: Modular Concurrency Control for Abstract Data Types · ACM Trans. Program. Lang. Syst. 1989 |
Performance modeling and evaluation › profiling
continuous profiling |
0.0 | 2 | 1997 | Continuous Profiling: Where Have All the Cycles Gone? · ACM Trans. Comput. Syst. 1997 Continuous Profiling: Where Have All the Cycles Gone? · SOSP 1997 |
Performance modeling and evaluation › profiling
statistical profiling |
0.0 | 1 | 2000 | Efficient and Flexible Value Sampling · ASPLOS 2000 |
Distributed systems › remote execution
computation migration |
0.0 | 2 | 1996 | Dynamic Computation Migration in DSM Systems · SC 1996 Computation Migration: Enhancing Locality for Distributed-Memory Parallel Systems · PPoPP 1993 |
Transaction processing and concurrency control
atomicity |
0.0 | 5 | 1990 | Linguistic Support for Atomic Data Types · ACM Trans. Program. Lang. Syst. 1990 Local Atomicity Properties: Modular Concurrency Control for Abstract Data Types · ACM Trans. Program. Lang. Syst. 1989 Hybrid Concurrency Control for Abstract Data Types · PODS 1988 |
Parallel and multicore computing
concurrent data structures |
0.0 | 2 | 1996 | Algorithms for Search Trees on Message-Passing Architectures · IEEE Trans. Parallel Distributed Syst. 1996 Dynamic Computation Migration in DSM Systems · SC 1996 |
Distributed systems
fault tolerance |
0.0 | 4 | 1992 | On the Correctness of Orphan Management Algorithms · J. ACM 1992 Local Atomicity Properties: Modular Concurrency Control for Abstract Data Types · ACM Trans. Program. Lang. Syst. 1989 Implementation of Resilient, Atomic Data Types · ACM Trans. Program. Lang. Syst. 1985 |
Performance modeling and evaluation › profiling
instruction-level profiling |
0.0 | 1 | 1997 | ProfileMe: Hardware Support for Instruction-Level Profiling on Out-of-Order Processors · MICRO 1997 |
Processor architecture and microarchitecture › out-of-order execution
out-of-order processor |
0.0 | 1 | 1997 | ProfileMe: Hardware Support for Instruction-Level Profiling on Out-of-Order Processors · MICRO 1997 |
Transaction processing and concurrency control
nested transactions |
0.0 | 3 | 1990 | A Serialization Graph Construction for Nested Transactions · PODS 1990 A Theory of Timestamp-Based Concurrency Control for Nested Transactions · VLDB 1988 Nested Transactions and Read/Write Locking · PODS 1987 |
Runtime systems and virtual machines
garbage collection |
0.0 | 2 | 1993 | Atomic Incremental Garbage Collection and Recovery for a Large Stable Heap · SIGMOD Conference 1993 Atomic Garbage Collection: Managing a Stable Heap · SIGMOD Conference 1989 |
Parallel and multicore computing › concurrent data structures
concurrent search trees |
0.0 | 1 | 1996 | Algorithms for Search Trees on Message-Passing Architectures · IEEE Trans. Parallel Distributed Syst. 1996 |
Memory systems › shared memory
distributed shared memory |
0.0 | 1 | 1996 | Dynamic Computation Migration in DSM Systems · SC 1996 |
Parallel and multicore computing › parallel architecture
message-passing architecture |
0.0 | 1 | 1996 | Algorithms for Search Trees on Message-Passing Architectures · IEEE Trans. Parallel Distributed Syst. 1996 |
Parallel and multicore computing › parallel algorithms › parallel algorithm design
MIMD algorithms |
0.0 | 1 | 1996 | Algorithms for Search Trees on Message-Passing Architectures · IEEE Trans. Parallel Distributed Syst. 1996 |
Parallel and multicore computing › parallel programming runtimes
runtime systems and scheduling |
0.0 | 1 | 1996 | Dynamic Computation Migration in DSM Systems · SC 1996 |
Runtime systems and virtual machines › runtime environment
runtime scheduling |
0.0 | 1 | 1995 | Optimistic Active Messages: A Mechanism for Scheduling Communication with Computation · PPoPP 1995 |
Parallel and multicore computing › parallel programming runtimes
active messages |
0.0 | 1 | 1995 | Optimistic Active Messages: A Mechanism for Scheduling Communication with Computation · PPoPP 1995 |
Parallel and multicore computing › parallel programming models
message passing |
0.0 | 1 | 1995 | Optimistic Active Messages: A Mechanism for Scheduling Communication with Computation · PPoPP 1995 |
Distributed systems › distributed interactive applications › collaborative computing
distributed collaborative editing |
0.0 | 2 | 1992 | A Case Study Of CES: A Distributed Collaborative Editing System Implemented In Argus · IEEE Trans. Software Eng. 1992 Atomic Data Abstractions in a Distributed Collaborative Editing System · POPL 1986 |
Operating systems › resource management › process management › CPU scheduling
proportional share scheduling |
0.0 | 1 | 1994 | Lottery Scheduling: Flexible Proportional-Share Resource Management · OSDI 1994 |
Operating systems
resource management |
0.0 | 1 | 1994 | Lottery Scheduling: Flexible Proportional-Share Resource Management · OSDI 1994 |
Cloud and datacenter computing
cluster resource management and scheduling |
0.0 | 1 | 1994 | Lottery Scheduling: Flexible Proportional-Share Resource Management · OSDI 1994 |
Memory systems › memory management › virtual memory › address translation
TLB |
0.0 | 1 | 1994 | Software Prefetching and Caching for Translation Lookaside Buffers · OSDI 1994 |
Memory systems › memory management › virtual memory › address translation › TLB
TLB prefetching |
0.0 | 1 | 1994 | Software Prefetching and Caching for Translation Lookaside Buffers · OSDI 1994 |
Runtime systems and virtual machines › garbage collection
incremental garbage collection |
0.0 | 1 | 1993 | Atomic Incremental Garbage Collection and Recovery for a Large Stable Heap · SIGMOD Conference 1993 |
Software testing › performance testing
performance assertion |
0.0 | 1 | 1993 | Performance Assertion Checking · SOSP 1993 |
Software testing
performance testing |
0.0 | 1 | 1993 | Performance Assertion Checking · SOSP 1993 |
Distributed systems › transaction processing
atomic transactions |
0.0 | 1 | 1993 | Atomic Incremental Garbage Collection and Recovery for a Large Stable Heap · SIGMOD Conference 1993 |
Methods — techniques the papers use, named apart from their topics
sampling · 0.1interrupt-based profiling · 0.1sampling-based profiling · 0.0simulation · 0.0optimistic scheduling · 0.0message handlers · 0.0data migration · 0.0language feature analysis · 0.0correctness proof · 0.0software prefetching · 0.0algebraic commutativity analysis · 0.0register relocation · 0.0context partitioning · 0.0RPC-style access · 0.0formal verification · 0.0serialization graph · 0.0proof technique · 0.0timestamp ordering · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2004 | Beyond content delivery: applications to the edgeabstractCDNs have evolved beyond caching and delivery of web objects and streams. With services such as Akamai's EdgeComputing Powered by Websphere, distributed computing on a world-wide grid is now a reality for a wide range of business applications, providing subsecond response time to all users wherever they are, unprecedented levels of fault-tolerance, and massive scalability on-demand. Application resources can be provisioned in seconds, responding in real-time to changes in load on a given application. In some cases, an application can be deployed completely on the global platform without any central infrastructure. In other cases, core database and business logic remain in the enterprise data center, while the presentation layer and some database and business logic functionality can move onto the global platform. We will describe the evolution of CDNs and the challenges faced in distributing customer applications. William E. Weihl |
NOSSDAV | 1 |
| 2000 | Efficient and Flexible Value SamplingabstractThis paper presents novel sampling-based techniques for collecting statistical profiles of register contents, data values, and other information associated with instructions, such as memory latencies. Values of interest are sampled in response to periodic interrupts. The resulting value profiles can be analyzed by programmers and optimizers to improve the performance of production uniprocessor and multiprocessor systems.Our value sampling system extends the DCPI continuous profiling infrastructure, and inherits many of its desirable properties: our value profiler has low overhead (approximately 10% slowdown); it profiles all the code in the system, including the operating system kernel; and it operates transparently, without requiring any modifications to the profiled code. Michael Burrows, Úlfar Erlingsson, Shun-Tak Leung, Mark T. Vandevoorde, Carl A. Waldspurger, Kip Walker, William E. Weihl |
ASPLOS | 7 |
| 2000 | When does a correct mutual exclusion algorithm guarantee mutual exclusion?
Leslie Lamport, Sharon E. Perl, William E. Weihl |
Inf. Process. Lett. | 3 |
| 1998 | Dynamic Coscheduling on Workstation Clusters
Patrick Sobalvarro, Scott Pakin, William E. Weihl, Andrew A. Chien |
JSSPP | 3 |
| 1997 | ProfileMe: Hardware Support for Instruction-Level Profiling on Out-of-Order ProcessorsabstractProfile data is valuable for identifying performance bottlenecks and guiding optimizations. Periodic sampling of a processor's performance monitoring hardware is an effective, unobtrusive way to obtain detailed profiles. Unfortunately, existing hardware simply counts events, such as cache misses and branch mispredictions, and cannot accurately attribute these events to instructions, especially on out-of-order machines. We propose an alternative approach, called ProfileMe, that samples instructions. As a sampled instruction moves through the processor pipeline, a detailed record of all interesting events and pipeline stage latencies is collected. ProfileMe also supports paired sampling, which captures information about the interactions between concurrent instructions, revealing information about useful concurrency and the utilization of various pipeline stages while an instruction is in flight. We describe an inexpensive hardware implementation of ProfileMe, outline a variety of software techniques to extract useful profile information from the hardware, and explain several ways in which this information can provide valuable feedback for programmers and optimizers. Jeffrey Dean, James E. Hicks, Carl A. Waldspurger, William E. Weihl, George Z. Chrysos |
MICRO | 4 |
| 1997 | Continuous Profiling: Where Have All the Cycles Gone?abstractArticle Continuous profiling: where have all the cycles gone? Share on Authors: Jennifer M. Anderson View Profile , Lance M. Berc View Profile , Jeffrey Dean View Profile , Sanjay Ghemawat View Profile , Monika R. Henzinger View Profile , Shun-Tak A. Leung View Profile , Richard L. Sites View Profile , Mark T. Vandevoorde View Profile , Carl A. Waldspurger View Profile , William E. Weihl View Profile Authors Info & Claims SOSP '97: Proceedings of the sixteenth ACM symposium on Operating systems principlesOctober 1997 Pages 1–14https://doi.org/10.1145/268998.266637Published:01 October 1997 175citation1,209DownloadsMetricsTotal Citations175Total Downloads1,209Last 12 Months17Last 6 weeks3 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteGet Access Jennifer-Ann M. Anderson, Lance M. Berc, Jeffrey Dean, Sanjay Ghemawat, Monika Henzinger, Shun-Tak Leung, Richard L. Sites, Mark T. Vandevoorde, Carl A. Waldspurger, William E. Weihl |
SOSP | 10 |
| 1997 | Continuous Profiling: Where Have All the Cycles Gone?abstractThis article describes the Digital Continuous Profiling Infrastructure, a sampling-based profiling system designed to run continuously on production systems. The system supports multiprocessors, works on unmodified executables, and collects profiles for entire systems, including user programs, shared libraries, and the operating system kernel. Samples are collected at a high rate (over 5200 samples/sec. per 333MHz processor), yet with low overhead (1–3% slowdown for most workloads). Analysis tools supplied with the profiling system use the sample data to produce a precise and accurate accounting, down to the level of pipeline stalls incurred by individual instructions, of where time is bring spent. When instructions incur stalls, the tools identify possible reasons, such as cache misses, branch mispredictions, and functional unit contention. The fine-grained instruction-level analysis guides users and automated optimizers to the causes of performance problems and provides important insights for fixing them. Jennifer-Ann M. Anderson, Lance M. Berc, Jeffrey Dean, Sanjay Ghemawat, Monika Henzinger, Shun-Tak Leung, Richard L. Sites, Mark T. Vandevoorde, Carl A. Waldspurger, William E. Weihl |
ACM Trans. Comput. Syst. | 10 |
| 1996 | Dynamic Computation Migration in DSM SystemsabstractWe describe dynamic computation migration, the runtime choice between computation and data migration. Dynamic computation migration is useful for concurrent data structures with unpredictable read/write patterns. We implemented it in MCRL, a multithreaded DSM system that runs on the MIT Alewife machine and Thinking Machines' CM-5. We evaluate two dynamic migration heuristics relative to data migration. On a concurrent, distributed B-tree with 50% lookups and 50% inserts, the STATIC heuristic improves performance by about 17%, on both Alewife and the CM-5. The REPEAT heuristic generally performs better than the STATIC heuristic. On Alewife, with 80% lookups and 20% inserts, the REPEAT heuristic improves performance by 23%; on the CM-5, it improves performance by 46%. Our results apply to concurrent, dynamic data structures whose access patterns are only known at runtime. For regularly accessed data structures, static methods will always be applicable, but we expect future applications to be more dynamic. Wilson C. Hsieh, M. Frans Kaashoek, William E. Weihl |
SC | 3 |
| 1996 | Scalable Concurrent B-Trees Using Multi-Version Memory
William E. Weihl |
J. Parallel Distributed Comput. | 2 |
| 1996 | Algorithms for Search Trees on Message-Passing ArchitecturesabstractIn this paper we describe a new algorithm for maintaining a balanced search tree on a message-passing MIMD architecture; the algorithm is particularly well suited for implementation on a small number of processors. We introduce a (2/sup B-2/, 2/sup B/) search tree that uses a bidirectional ring of O(log n) processors to store n entries. Update operations use a bottom-up node-splitting scheme, which performs significantly better than top-down search tree algorithms. The bottom-up algorithm requires many fewer messages and results in less blocking due to synchronization than top-down algorithms. Additionally, for a given cost ratio of computation to communication the value of B may be varied to maximize performance. Implementations on a parallel-architecture simulator are described. Adrian Colbrook, Eric A. Brewer, Chrysanthos Dellarocas, William E. Weihl |
IEEE Trans. Parallel Distributed Syst. | 4 |
| 1995 | Demand-Based Coscheduling of Parallel Jobs on Multiprogrammed Multiprocessors
Patrick Sobalvarro, William E. Weihl |
JSSPP | 2 |
| 1995 | Optimistic Active Messages: A Mechanism for Scheduling Communication with ComputationabstractLow-overhead message passing is critical to the performance of many applications. Active Messages reduce the software overhead for message handling: messages are run as handlers instead of as threads, which avoids the overhead of thread management and the unnecessary data copying of other communication models. Scheduling the execution of Active Messages is typically done by disabling and enabling interrupts, or by polling the network. This primitive scheduling control, combined with the fact that handlers are not schedulable entities, puts severe restrictions on the code that can be run in a message handler. This paper describes a new software mechanism, Optimistic Active Messages (OAM), that eliminates these restrictions; OAMs allow arbitrary user code to execute in handlers, and also allow handlers to block. Despite this gain in expressiveness, OAMs perform as well as Active Messages. Deborah A. Wallach, Wilson C. Hsieh, Kirk L. Johnson, M. Frans Kaashoek, William E. Weihl |
PPoPP | 5 |
| 1995 | Specification and Verification of Object-Oriented Programs Using Supertype Abstraction
Gary T. Leavens, William E. Weihl |
Acta Informatica | 2 |
| 1995 | Deriving Global Virtual Time Algorithms from Conservative Simulation Protocols
George Varghese, Roger D. Chamberlain, William E. Weihl |
Inf. Process. Lett. | 3 |
| 1995 | Hybrid Atomicity for Nested Transactions
Alan D. Fekete, Nancy A. Lynch, William E. Weihl |
Theor. Comput. Sci. | 3 |
| 1994 | Software Prefetching and Caching for Translation Lookaside Buffers
Kavita Bala, M. Frans Kaashoek, William E. Weihl |
OSDI | 3 |
| 1994 | Lottery Scheduling: Flexible Proportional-Share Resource Management
Carl A. Waldspurger, William E. Weihl |
OSDI | 2 |
| 1993 | Register Relocation: Flexible Contexts for MultithreadingabstractMultithreading is an important technique that improves processor utilization by allowing computation to be overlapped with the long latency operations that commonly occur in multiprocessor systems. This paper presents register relocation, a new mechanism that efficiently supports flexible partitioning of the register file into variable-size contexts with minimal hardware support. Since the number of registers required by thread contexts varies, this flexibility permits a better utilization of scarce registers, allowing more contexts to be resident, which in turn allows applications to tolerate shorter run lengths and longer latencies. Our experiments show that compared to fixed-size hardware contexts, register relocation can improve processor utilization by a factor of two for many workloads. Carl A. Waldspurger, William E. Weihl |
ISCA | 2 |
| 1993 | Computation Migration: Enhancing Locality for Distributed-Memory Parallel SystemsabstractWe describe computation migration, a new technique that is based on compile-time program transformations, for accesing remote data in a distributed-memory parallel system. In contrast with RPC-style access, where the access is performed remotely, and with data migration, where the data is moved so that it is local, computation migration moves part of the current thread to the processor where the data resides. The access is performed at the remote processor, and the migrated thread portion continues to run on that same processor; this makes subsequent accesses in the thread portion local. Wilson C. Hsieh, William E. Weihl |
PPoPP | 3 |
| 1993 | Atomic Incremental Garbage Collection and Recovery for a Large Stable HeapabstractA stable heap is storage that is managed automatically using garbage collection, manipulated using atomic transactions, and accessed using a uniform storage model. These features enhance reliability and simplify programming by preventing errors due to explicit deallocation, by masking failures and concurrency using transactions, and by eliminating the distinction between accessing temporary storage and permanent storage. Stable heap management is useful for programming languages for reliable distributed computing, programming languages with persistent storage, and object-oriented database systems. Elliot K. Kolodner, William E. Weihl |
SIGMOD Conference | 2 |
| 1993 | Performance Assertion CheckingabstractPerformance assertion checking is an approach to automating the testing of performance properties of complex systems. System designers write assertions that capture expectations for performance; these assertions are checked automatically against monitoring data to detect potential performance bugs. Automatically checking expectations allows a designer to test a wide range of performance properties as a system evolves: data that meets expectations can be discarded automatically, focusing attention on data indicating potential problems.PSpec is a language for writing performance as sertions together with tools for testing assertions and estimating values for constants in assertions. The language is small and efficiently checkable, yet capable of expressing a wide variety of performance properties. Initial experience indicates that PSpec is a useful tool for performance testing and debugging; it helped uncover several performance bugs in the runtime system of a parallel programming language. Sharon E. Perl, William E. Weihl |
SOSP | 2 |
| 1993 | The Impact of Recovery on Concurrency Control
William E. Weihl |
J. Comput. Syst. Sci. | 1 |
| 1992 | Hybrid Atomicity for Nested Transactions
Alan D. Fekete, Nancy A. Lynch, William E. Weihl |
ICDT | 3 |
| 1992 | PROTEUS: A High-Performance Parallel-Architecture SimulatorabstractPROTEUS is a high-performance simulator for MIMD multiprocessors. It is fast, accurate, and flexible: it is one to two orders of magnitude faster than comparable simulators, it can reproduce results from real multiprocessors, and it is easily configured to simulate a wide range of architectures. PROTEUS provides a modular structure that simplifies customization and independent replacement of parts of architecture. There are typically multiple implementations of each module that provide different combinations of accuracy and performance; users pay for accuracy only when and where they need it. Finally, PROTEUS provides repeatability, nonintrusive monitoring and debugging, and integrated graphical output, which result in a development environment superior to those available on real multiprocessors. Eric A. Brewer, Chrysanthos Dellarocas, Adrian Colbrook, William E. Weihl |
SIGMETRICS | 4 |
| 1992 | On the Correctness of Orphan Management AlgorithmsabstractIn a distributed system, node failures, network delays, and other unpredictable occurences can result in orphan computations—subcomputations that continue to run but whose results are no longer needed. Several algorithms have been proposed to prevent such computations from seeing inconsistent states of the shared data. In this paper, two such orphan management algorithms are analyzed. The first is an algorithm implemented in the Argus distributed-computing system at MIT, and the second is an algorithm proposed at Carnegie-Mellon. The algorithms are described formally, and complete proofs of their correctness are given. The proofs show that the fundamental concepts underlying the two algorithms are very similar in that each can be regarded as an implementation of the same high-level algorithm. By exploiting properties of information flow within transaction management systems, the algorithms ensure that orphans only see states of the shared data that they could also see if they were not orphans. When the algorithms are used in combination with any correct concurrency control algorithm, they guarantee that all computations, orphan as well as nonorphan, see consistent states of the shared data. Maurice Herlihy, Nancy A. Lynch, Michael Merritt, William E. Weihl |
J. ACM | 4 |
| 1992 | A Case Study Of CES: A Distributed Collaborative Editing System Implemented In ArgusabstractExperience implementing CES, a distributed collaborative editing system, is described. CES was written in Argus, a language that was designed to support the construction of reliable distributed programs, and exhibits a number of requirements typical of distributed applications. The authors' experience illustrates numerous areas in which the support provided by Argus for meeting those requirements was quite helpful, but also identifies several areas in which the support provided by Argus was inadequate. Some of the problems arise because of the distinction in Argus (and in other systems) between locally and remotely accessible data and the mechanisms provided for implementing each. Others arise because of limitations of the mechanisms for building user-defined data types. The authors discuss the problems they encountered, including the implications for other systems. They also suggest solutions to the problems, or in some cases further research directed at finding solutions.> Irene Greif, Robert Seliger, William E. Weihl |
IEEE Trans. Software Eng. | 3 |
| 1991 | An Algorithm for Concurrent Search Trees
Adrian Colbrook, Eric A. Brewer, Chrysanthos Dellarocas, William E. Weihl |
ICPP (3) | 4 |
| 1991 | Hybrid Concurrency Control for Abstract Data Types
Maurice Herlihy, William E. Weihl |
J. Comput. Syst. Sci. | 2 |
| 1990 | A Serialization Graph Construction for Nested TransactionsabstractThis paper makes three contributions. First, we present a proof technique that offers system designers the same ease of reasoning about nested transaction systems as is given by the classical theory for systems without nesting, and yet can be used to verify that a system satisfies the robust “user view” definition of correctness of [10]. Second, as applications of the technique, we verify the correctness of Moss' read/write locking algorithm for nested transactions, and of an undo logging algorithm that has not previously been presented or proved for nested transaction systems. Third, we make explicit the assumptions used for this proof technique, assumptions that are usually made implicitly in the classical theory, and therefore we clarify the type of system for which the classical theory itself can reliably be used. Alan D. Fekete, Nancy A. Lynch, William E. Weihl |
PODS | 3 |
| 1990 | Commutativity-Based Locking for Nested Transactions
Alan D. Fekete, Nancy A. Lynch, Michael Merritt, William E. Weihl |
J. Comput. Syst. Sci. | 4 |
| 1990 | Linguistic Support for Atomic Data TypesabstractThe problems of concurrency and failures in distributed systems can be addressed by implementing applications in terms of atomic data types: data types whose objects provide serializability and recoverability for transactions using them. The specifications of the types can be used to permit high levels of concurrency among transactions while still ensuring atomicity. However, highly concurrent implementations can be quite complicated. In this paper we analyze the expressive power of existing proposals for language features intended to support the implementation of atomic types. We illustrate several limitations of existing proposals and propose a new approach that avoids these problems. William E. Weihl |
ACM Trans. Program. Lang. Syst. | 1 |
| 1989 | The Impact of Recovery on Concurrency ControlabstractIt is widely recognized by practitioners that concurrency control and recovery for transaction systems interact in subtle ways. In most theoretical work, however, concurrency control and recovery are treated as separate, largely independent problems. In this paper we investigate the interactions between concurrency control and recovery. We consider two general recovery methods for abstract data types, update-in-place and deferred-update. While each requires operations to conflict if they do not “commute,” the two recovery methods require subtly different notions of commutativity. We give a precise characterization of the conflict relations that work with each recovery method, and show that each permits conflict relations that the other does not. Thus, the two recovery methods place incomparable constraints on concurrency control. Our analysis applies to arbitrary abstract data types, including those with operations that may be partial or non-deterministic. William E. Weihl |
PODS | 1 |
| 1989 | Atomic Garbage Collection: Managing a Stable HeapabstractModern database systems use transactions to achieve a high degree of fault-tolerance. Many modern programming languages and systems provide garbage collected heap storage, which frees the programmer from the job of explicitly deallocating storage. In this paper we describe integrated garbage collection and recovery algorithms for managing a stable heap in which accessible objects survive both system crashes and media failures. Elliot K. Kolodner, Barbara Liskov, William E. Weihl |
SIGMOD Conference | 3 |
| 1989 | Local Atomicity Properties: Modular Concurrency Control for Abstract Data TypesabstractAtomic actions (or transactions) are useful for coping with concurrency and failures. One way of ensuring atomicity of actions is to implement applications in terms ofatomic data types: abstract data types whose objects ensure serializability and recoverability of actions using them. Many atomic types can be implemented to provide high levels of concurrency by taking advantage of algebraic properties of the type's operations, for example, that certain operations commute. In this paper we analyze the level of concurrency permitted by an atomic type. We introduce several local constraints on individual objects that suffice to ensure global atomicity of actions; we call these constraintslocal atomicity properties. We present three local atomicity properties, each of which isoptimal: no strictly weaker local constraint on objects suffices to ensure global atomicity for actions. Thus, the local atomicity properties define precise limits on the amount of concurrency that can be permitted by an atomic type. William E. Weihl |
ACM Trans. Program. Lang. Syst. | 1 |
| 1988 | A Theory of Atomic Transactions
Nancy A. Lynch, Michael Merritt, William E. Weihl, Alan D. Fekete |
ICDT | 3 |
| 1988 | Hybrid Concurrency Control for Abstract Data TypesabstractWe define a new locking protocol that permits more concurrency than existing commutativity-based protocols. The protocol uses timestamps generated when transactions commit to provide more information about the serialization order of transactions, and hence to weaken the constraints on conflicts. In addition, the protocol permits operations to be both partial and non-deterministic, and it permits results of operations to be used in choosing locks. The protocol exploits type-specific properties of objects, necessary and sufficient constraints on lock conflicts are defined directly from a data type specification. We give a complete formal description of the protocol, encompassing both concurrency control and recovery, and prove that the protocol satisfies hybrid atomicity, a local atomicity property that combines aspects of static and dynamic atomic protocols. We also show that the protocol is optimal in the sense that no hybrid atomic locking scheme can permit more concurrency. Maurice Herlihy, William E. Weihl |
PODS | 2 |
| 1988 | A Theory of Timestamp-Based Concurrency Control for Nested Transactions
James Aspnes, Alan D. Fekete, Nancy A. Lynch, Michael Merritt, William E. Weihl |
VLDB | 5 |
| 1988 | Commutativity-Based Concurrency Control for Abstract Data TypesabstractTwo novel concurrency algorithms for abstract data types are presented that ensure serializability of transactions. It is proved that both algorithms ensure a local atomicity property called dynamic atomicity. The algorithms are quite general, permitting operations to be both partial and nondeterministic. The results returned by operations can be used in determining conflicts, thus allowing higher levels of concurrency than otherwise possible. The descriptions and proofs encompass recovery as well as concurrency control. The two algorithms use different recovery methods: one uses intentions lists, and the other uses undo logs. It is shown that conflict relations that work with one recovery method do not necessarily work with the other. A general correctness condition that must be satisfied by the combination of a recovery method and a conflict relation is identified.> William E. Weihl |
IEEE Trans. Computers | 1 |
| 1987 | Nested Transactions and Read/Write LockingabstractWe give a clear yet rigorous correctness proof for Moss's algorithm for managing data in a nested transaction system. The algorithm, which is the basis of concurrency control and recovery in the Argus system, uses read- and write-locks and a stack of versions of each object to ensure the serializability and recoverability of transactions accessing the data. Our proof extends earlier work on exclusive locking to prove that Moss's algorithm generates serially correct executions in the presence of concurrency and transaction aborts. The key contribution is the identification of a simple property of cead operations, called transparency, that permits shared locks to be used for read operations. Alan D. Fekete, Nancy A. Lynch, Michael Merritt, William E. Weihl |
PODS | 4 |
| 1987 | Distributed Version Management for Read-Only ActionsabstractTypical concurrency control protocols for atomic actions, such as two-phase locking, perform poorly for long read-only actions. We present four new concurrency control protocols that eliminate all interference between read-only actions and update actions, and thus offer significantly improved performance for read-only actions. The protocols work by maintaining multiple versions of the system state; read-only actions read old versions, while update actions manipulate the most recent version. We focus on the problem of managing the storage required for old versions in a distributed system. One of the protocols uses relatively little space, but has a potentially significant communication cost. The other protocols use more space, but may be cheaper in terms of communication. William E. Weihl |
IEEE Trans. Software Eng. | 1 |
| 1986 | Atomic Data Abstractions in a Distributed Collaborative Editing SystemabstractThis paper describes our experience implementing CES, a distributed Collaborative Editing System written in Argus, a language that includes facilities for managing long-lived distributed data. Argus provides atomic actions, which simplify the handling of concurrency and failures, and mechanisms for implementing atomic data types, which ensure serializability and recoverability of actions that use them. This paper focuses on the support for atomicity in Argus, especially the support for building new atomic types. Overall the mechanisms in Argus made it relatively easy to build CES; however, we encountered interesting problems in several areas. For example, much of the processing of an atomic action in Argus is handled automatically by the run-time system; several examples are presented that illustrate areas where more explicit control in the implementations of atomic types would be useful. Irene Greif, Robert Seliger, William E. Weihl |
POPL | 3 |
| 1986 | Specifications of Distributed Programs
Barbara Liskov, William E. Weihl |
Distributed Comput. | 2 |
| 1986 | Reaching approximate agreement in the presence of faultsabstractThis paper considers a variant of the Byzantine Generals problem, in which processes start with arbitrary real values rather than Boolean values or values from some bounded range, and in which approximate, rather than exact, agreement is the desired goal. Algorithms are presented to reach approximate agreement in asynchronous, as well as synchronous systems. The asynchronous agreement algorithm is an interesting contrast to a result of Fischer et al, who show that exact agreement with guaranteed termination is not attainable in an asynchronous system with as few as one faulty process. The algorithms work by successive approximation, with a provable convergence rate that depends on the ratio between the number of faulty processes and the total number of processes. Lower bounds on the convergence rate for algorithms of this form are proved, and the algorithms presented are shown to be optimal. Danny Dolev, Nancy A. Lynch, Shlomit S. Pinter, Eugene W. Stark, William E. Weihl |
J. ACM | 5 |
| 1985 | Distributed Version Management for Read-Only Actions (Extended Abstract)abstractTypical concurrency control protocols for atomic actions, such as two-phase locking, perform poorly for long read-only actions.We present three new concurrency control protocols that eliminate all interference between read-only actions and update .actions,and thus offer significantly improved performance for read-only actions.The protocols work by maintaining multiple versions of the system state; read-only actions read old versions, while update actions manipulate the most recent version.We focus on the problem of managing the storage required for old versions in a distributed system.One of the protocols uses relatively little space, but has a potentially significant communication cost.The other protocols use more space, but may be cheaper in terms of communication. William E. Weihl |
PODC | 1 |
| 1985 | Implementation of Resilient, Atomic Data TypesabstractA major issue in many applications is how to preserve the consistency of data in the presence of concurrency and hardware failures. We suggest addressing this problem by implementing applications in terms of abstract data types with two properties: Their objects are atomic (they provide serializability and recoverability for activities using them) and resilient (they survive hardware failures with acceptably high probability). We define what it means for abstract data types to be atomic and resilient. We also discuss issues that arise in implementing such types, and describe a particular linguistic mechanism provided in the Argus programming language. William E. Weihl, Barbara Liskov |
ACM Trans. Program. Lang. Syst. | 1 |
| 1983 | Data-dependent Concurrency Control and Recovery (Extended Abstract)abstractMaintaining the consistency of long-lived, on-line data is a difficult task, particularly in a distributed system. A variety of researchers have suggested atomicity as a fundamental organizational concept for such systems. In this paper we present a formal treatment of atomicity. Our treatment is novel in three respects: First, we treat serializability and recoverability together, facilitating the precise analysis of online implementations. Second, we explore how to analyze user specified semantic information to achieve greater concurrency. Third, we focus on local properties of components of a system, thus supporting modular design. We present three local properties, verify that they ensure atomicity, and show that they are optimal. Previously published protocols are suboptimal. We show that these differences are the result of fundamental limitations in the model used to analyze those protocols; these limitations are not shared by our model. William E. Weihl |
PODC | 1 |
| 1980 | Interprocedural Data Flow Analysis in the Presence of Pointers, Procedure Variables and Label VariablesabstractInterprocedural data flow analysis is complicated by the use of procedure and label variables in programs and by the presence of aliasing among variables. In this paper we present an algorithm for computing possible values for procedure and label variables, thus providing a call graph and a control flow graph. The algorithm also computes the possible aliasing relationships in the program being analyzed.We assume that control flow information is not available to the algorithm; hence, this type of analysis may be termed "flow-free analysis." Given this assumption, we demonstrate the correctness of the algorithm, in the sense that the information it produces is conservative, and show that it is as precise as possible in certain cases. We also show that the problem of determining possible values for procedure variables is P-space hard. This fact indicates that any algorithm which is precise in all cases must also run very slowly for some programs. William E. Weihl |
POPL | 1 |