David C. Steere
Carnegie Mellon University
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by David C. Steere.
IEEE Transactions on Computers | 1990
Mahadev Satyanarayanan; James J. Kistler; Puneet Kumar; Maria E. Okasaki; Ellen H. Siegel; David C. Steere
The design and implementation of Coda, a file system for a large-scale distributed computing environment composed of Unix workstations, is described. It provides resiliency to server and network failures through the use of two distinct but complementary mechanisms. One mechanism, server replication, stores copies of a file at multiple servers. The other mechanism, disconnected operation, is a mode of execution in which a caching site temporarily assumes the role of a replication site. The design of Coda optimizes for availability and performance and strives to provide the highest degree of consistency attainable in the light of these objectives. Measurements from a prototype show that the performance cost of providing high availability in Coda is reasonable. >
symposium on operating systems principles | 1994
Mahadev Satyanarayanan; Henry H. Mashburn; Puneet Kumar; David C. Steere; James J. Kistler
Recoverable virtual memory refers to regions of a virtual address space on which transactional guarantees are offered. This paper describes RVM, an efficient, portable, and easily used implementation of recoverable virtual memory for Unix environments. A unique characteristic of RVM is that it allows independent control over the transactional properties of atomicity, permanence, and serializability. This leads to considerable flexibility in the use of RVM, potentially enlarging the range of applications than can benefit from transactions. It also simplifies the layering of functionality such as nesting and distribution. The paper shows that RVM performs well over its intended range of usage even though it does not benefit from specialized operating system support. It also demonstrates the importance of intra- and intertransaction optimizations.Recoverable virtual memory refers to regions of a virtual address space on which transactional guarantees are offered. This paper describes RVM, an efficient, portable, and easily used implementation of recoverable virtual memory for Unix environments. A unique characteristic of RVM is that it allows independent control over the transactional properties of atomicity, permanence, and serializability. This leads to considerable flexibility in the use of RVM, potentially enlarging the range of applications than can benefit from transactions. It also simplifies the layering of functionality such as nesting and distribution. The paper shows that RVM performs well over its intended range of usage even though it does not benefit from specialized operating system support. It also demonstrates the importance of intra- and intertransaction optimizations.
workshop on mobile computing systems and applications | 1994
Maria R. Ebling; Lily B. Mummert; David C. Steere
System designers have traditionally treated the network as an inexhaustible resource, focusing their efforts on optimizing CPU and storage usage. For instance, the popular NFS file system [8] supports diskless operation, thereby avoiding use of local secondary storage at the expense of increased network usage. But in mobile computing, it is the network, rather than CPU or storage, that will be the scarce resource. The time has come when we must treat the network as a first-class resource, expending the CPU and storage resources necessary to use it intelligently. In this paper we argue that prescient caching and smart scheduling are key techniques/or overcoming the network bottleneck. We use the Coda file system [9] as a case study to substantiate our position.
acm sigops european workshop | 1992
Mahadev Satyanarayanan; David C. Steere; Masashi Kudo; Hank Mashburn
As any battle-scarred veteran will testify, debugging a distributed system in production use is an enterprise fraught with great difficulty and frustration. By the time the system is released for production use, most of the easy bugs have been found and fixed. The remaining bugs are typically non-deterministic in nature, and will only manifest themselves under conditions of heavy use. Although rare, such bugs cannot be ignored because they often have serious consequences.In this position paper, we put forth the thesis that logging is a flexible, powerful, and convenient tool for debugging complex distributed systems. We substantiate this thesis in three steps. First, we argue that logging is particularly well suited for debugging distributed systems. Next, we observe that logging is already used in distributed systems for reasons independent of debugging. Finally, we show that the latter uses of logging can be transparently extended to support debugging.
workshop on hot topics in operating systems | 1995
David C. Steere; Mahadev Satyanarayanan
Describes a single unifying abstraction called dynamic sets, which can offer substantial benefits to search applications. These benefits include greater opportunity in the I/O subsystem to aggressively exploit prefetching and parallelism, as well as support for associative naming to complement the hierarchical naming in typical file systems. This paper motivates dynamic sets and presents the design of a system that embodies this abstraction.
international conference on distributed computing systems | 1995
Jeannette M. Wing; David C. Steere
We present formal specifications of a new abstraction, weak sets, which can be used to alleviate high latencies when retrieving data from a wide-area information system like the World Wide Web. In the presence of failures, concurrency, and distribution, clients performing queries may observe behavior that is inconsistent with the stringent semantic requirements of mathematical sets. For example, an element retrieved and returned to the client may be subsequently deleted before the query terminates. We chose to specify formally the behavior of weak sets because we wanted to understand the varying degrees of inconsistency clients might be willing to tolerate and to understand the trade off between providing strong consistency guarantees and implementing weak sets efficiently. Our specification assertion language uses a novel construct that lets us model reachability explicitly; with it, we can distinguish between the existence of an object and its accessibility. The specifications were instrumental in understanding the design space, and we are currently implementing the most permissive of the specifications in several types of Unix systems.
principles of distributed computing | 1994
David C. Steere; Mahadev Satyanarayanan; Jeannette M. Wing
The success of the proposed information highway hinges partly on solving the problem of locating useful objects out of the terabytes of data available. Therefore, a wide area data storage system (WADSS) must provide supporl for search. We view search as a directed iterative process; at each stage a query is run on a set of objects to reduce the focus to a more interesting subset. Search through a WADSS differs from search through a (distributed) database in that users are willing to trade consistency for performance. For instance, a user would be satisfied if a query were to miss some relevant objects, include irrelevant ones, or obtain out-of-date objects as long as the objects are returned promptly. Moreover, queries in a WADSS maybe long-running, execute over geographically distant repositories, and may be prematurely aborted by the user. A key question is “What is the meaning of a set in this context?”
USENIX Summer | 1990
David C. Steere; James J. Kistler; Mahadev Satyanarayanan
Archive | 1997
David C. Steere; Mahadev Satyanarayanan
Archive | 1990
David C. Steere; James J. Kistler; Mahadev Satyanarayanan