Barbara Liskov

dblp:l/BarbaraLiskov · also Barbara H. Liskov · DBLP profile ↗
← Back
97ranked-venue papers
28as first author
4since 2021 · last 2022
—ORCID · none

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

Software engineering, systems software and programming languages · 45 · 17 first-author · 1 since 2021Systems, architecture and hardware · 29 · 7 first-authorDatabases, data management, data science and information retrieval · 10 · 2 first-author · 3 since 2021Computer networks · 8 · 1 first-authorSecurity and privacy · 4Theory of computation · 2 · 1 first-author · 1 since 2021
YearPublicationVenuePosition
2022 Reflections on a Career in Computer Science
abstract
Computer Science is a wonderful field with many interesting and important problems to work on. This is true today and was also true in the past; of course what is considered interesting changes as a field matures. In this talk I will discuss some of the problems that I found intriguing. In each case I will discuss the state of the field at the time I did this work to provide an historical context for my work and that of others doing related work. I will also discuss how I selected problems, what I brought to the table, and where the ideas for my solutions came from.
Barbara Liskov
SIGMOD Conference1
2022 Cross-chain deals and adversarial commerce
abstract
Abstract Modern distributed data management systems face a new challenge: how can autonomous, mutually distrusting parties cooperate safely and effectively? Addressing this challenge brings up familiar questions from classical distributed systems: how to combine multiple steps into a single atomic action, how to recover from failures, and how to synchronize concurrent access to data. Nevertheless, each of these issues requires rethinking when participants are autonomous and potentially adversarial. We propose the notion of a cross-chain deal, a new way to structure complex distributed computations that manage assets in an adversarial setting. Deals are inspired by classical atomic transactions, but are necessarily different, in important ways, to accommodate the decentralized and untrusting nature of the exchange. We describe novel safety and liveness properties, along with two alternative protocols for implementing cross-chain deals in a system of independent blockchain ledgers. One protocol, based on synchronous communication, is fully decentralized, while the other, based on semi-synchronous communication, requires a globally shared ledger. We also prove that some degree of centralization is required in the semi-synchronous communication model.
Maurice Herlihy, Barbara Liskov, Liuba Shrira
VLDB J.2
2022 Opportunities for optimism in contended main-memory multicore transactions
Yihe Huang, William Qian 0001, Eddie Kohler, Barbara Liskov, Liuba Shrira
VLDB J.4
2021 From Viewstamped Replication to Blockchains
Barbara Liskov
FMCAD1
2020 Opportunities for Optimism in Contended Main-Memory Multicore Transactions
abstract
Optimistic concurrency control, or OCC, can achieve excellent performance on uncontended workloads for main-memory transactional databases. Contention causes OCC's performance to degrade, however, and recent concurrency control designs, such as hybrid OCC/locking systems and variations on multiversion concurrency control (MVCC), have claimed to outperform the best OCC systems. We evaluate several concurrency control designs under varying contention and varying workloads, including TPCC, and find that implementation choices unrelated to concurrency control may explain much of OCC's previously-reported degradation. When these implementation choices are made sensibly, OCC performance does not collapse on high-contention TPC-C. We also present two optimization techniques, commit-time updates and timestamp splitting , that can dramatically improve the high-contention performance of both OCC and MVCC. Though these techniques are known, we apply them in a new context and highlight their potency: when combined, they lead to performance gains of 3.4X for MVCC and 3.6X for OCC in a TPC-C workload.
Yihe Huang, William Qian 0001, Eddie Kohler, Barbara Liskov, Liuba Shrira
Proc. VLDB Endow.4
2019 Keynote: Multicore Programming
abstract
This talk describes a new approach to implementing efficient concurrent programs that run on multicore computers. The approach is inspired by work on software transactional memory, and like that work aims to make it easier to write correct concurrent programs through the use of atomic transactions. A conventional STM tracks reads and writes of memory words, which can lead to high overhead. Our approach, called STO (software transactional objects), is based on data abstraction instead. Implementations of transactionaware datatypes can take advantage of datatype semantics to reduce bookkeeping, limit false conficts, and implement efficient concurrency control. This way we can provide both good performance and correctness based on modularity and encapsulation.
Barbara Liskov
ASPLOS1
2019 Cross-chain Deals and Adversarial Commerce
abstract
Modern distributed data management systems face a new challenge: how can autonomous, mutually-distrusting parties cooperate safely and effectively? Addressing this challenge brings up questions familiar from classical distributed systems: how to combine multiple steps into a single atomic action, how to recover from failures, and how to synchronize concurrent access to data. Nevertheless, each of these issues requires rethinking when participants are autonomous and potentially adversarial. We propose the notion of a cross-chain deal , a new way to structure complex distributed computations that manage assets in an adversarial setting. Deals are inspired by classical atomic transactions, but are necessarily different, in important ways, to accommodate the decentralized and untrusting nature of the exchange. We describe novel safety and liveness properties, along with two alternative protocols for implementing cross-chain deals in a system of independent blockchain ledgers. One protocol, based on synchronous communication, is fully decentralized, while the other, based on semi-synchronous communication, requires a globally shared ledger.
Maurice Herlihy, Liuba Shrira, Barbara Liskov
Proc. VLDB Endow.3
2016 Type-aware transactions for faster concurrent code
abstract
It is often possible to improve a concurrent system's performance by leveraging the semantics of its datatypes. We build a new software transactional memory (STM) around this observation. A conventional STM tracks read- and write-sets of memory words; even simple operations can generate large sets. Our STM, which we call STO, tracks abstract operations on transactional datatypes instead. Parts of the transactional commit protocol are delegated to these datatypes' implementations, which can use datatype semantics, and new commit protocol features, to reduce bookkeeping, limit false conflicts, and implement efficient concurrency control. We test these ideas on the STAMP benchmark suite for STM applications and on our own prior work, the Silo high-performance in-memory database, observing large performance improvements in both systems.
Nathaniel Herman, Jeevana Priya Inala, Yihe Huang, Lillian L. Tsai, Eddie Kohler, Barbara Liskov, Liuba Shrira
EuroSys6
2016 Accepting blame for safe tunneled exceptions
abstract
Unhandled exceptions crash programs, so a compile-time check that exceptions are handled should in principle make software more reliable. But designers of some recent languages have argued that the benefits of statically checked exceptions are not worth the costs. We introduce a new statically checked exception mechanism that addresses the problems with existing checked-exception mechanisms. In particular, it interacts well with higher-order functions and other design patterns. The key insight is that whether an exception should be treated as a "checked" exception is not a property of its type but rather of the context in which the exception propagates. Statically checked exceptions can "tunnel" through code that is oblivious to their presence, but the type system nevertheless checks that these exceptions are handled. Further, exceptions can be tunneled without being accidentally caught, by expanding the space of exception identifiers to identify the exception-handling context. The resulting mechanism is expressive and syntactically light, and can be implemented efficiently. We demonstrate the expressiveness of the mechanism using significant codebases and evaluate its performance. We have implemented this new exception mechanism as part of the new Genus programming language, but the mechanism could equally well be applied to other programming languages.
Yizhou Zhang 0001, Guido Salvaneschi, Quinn Beightol, Barbara Liskov, Andrew C. Myers
PLDI4
2015 Lightweight, flexible object-oriented generics
abstract
The support for generic programming in modern object-oriented programming languages is awkward and lacks desirable expressive power. We introduce an expressive genericity mechanism that adds expressive power and strengthens static checking, while remaining lightweight and simple in common use cases. Like type classes and concepts, the mechanism allows existing types to model type constraints retroactively. For expressive power, we expose models as named constructs that can be defined and selected explicitly to witness constraints; in common uses of genericity, however, types implicitly witness constraints without additional programmer effort. Models are integrated into the object-oriented style, with features like model generics, model-dependent types, model enrichment, model multimethods, constraint entailment, model inheritance, and existential quantification further extending expressive power in an object-oriented setting. We introduce the new genericity features and show that common generic programming idioms, including current generic libraries, can be expressed more precisely and concisely. The static semantics of the mechanism and a proof of a key decidability property can be found in an associated technical report.
Yizhou Zhang 0001, Matthew C. Loring, Guido Salvaneschi, Barbara Liskov, Andrew C. Myers
PLDI4
2014 Fast Databases with Fast Durability and Recovery Through Multicore Parallelism
Wenting Zheng, Stephen Tu, Eddie Kohler, Barbara Liskov
OSDI4
2014 A Modular and Efficient Past State System for Berkeley DB
Ross Shaull, Liuba Shrira, Barbara Liskov
USENIX ATC3
2013 IFDB: decentralized information flow control for databases
abstract
Numerous sensitive databases are breached every year due to bugs in applications. These applications typically handle data for many users, and consequently, they have access to large amounts of confidential information.
David A. Schultz, Barbara Liskov
EuroSys2
2013 Speedy transactions in multicore in-memory databases
abstract
Silo is a new in-memory database that achieves excellent performance and scalability on modern multicore machines. Silo was designed from the ground up to use system memory and caches efficiently. For instance, it avoids all centralized contention points, including that of centralized transaction ID assignment. Silo's key contribution is a commit protocol based on optimistic concurrency control that provides serializability while avoiding all shared-memory writes for records that were only read. Though this might seem to complicate the enforcement of a serial order, correct logging and recovery is provided by linking periodically-updated epochs with the commit protocol. Silo provides the same guarantees as any serializable database without unnecessary scalability bottlenecks or much additional latency. Silo achieves almost 700,000 transactions per second on a standard TPC-C workload mix on a 32-core machine, as well as near-linear scalability. Considered per core, this is several times higher than previously reported results.
Stephen Tu, Wenting Zheng, Eddie Kohler, Barbara Liskov, Samuel Madden 0001
SOSP4
2012 Abstractions for Usable Information Flow Control in Aeolus
Winnie Cheng, Dan R. K. Ports, David A. Schultz, Victoria Popic, Aaron Blankstein, James A. Cowling, Dorothy Curtis, Liuba Shrira, Barbara Liskov
USENIX ATC9
2012 Granola: Low-Overhead Distributed Transaction Coordination
James A. Cowling, Barbara Liskov
USENIX ATC2
2012 Automatic Reconfiguration for Large-Scale Reliable Storage Systems
abstract
Byzantine-fault-tolerant replication enhances the availability and reliability of Internet services that store critical state and preserve it despite attacks or software errors. However, existing Byzantine-fault-tolerant storage systems either assume a static set of replicas, or have limitations in how they handle reconfigurations (e.g., in terms of the scalability of the solutions or the consistency levels they provide). This can be problematic in long-lived, large-scale systems where system membership is likely to change during the system lifetime. In this paper, we present a complete solution for dynamically changing system membership in a large-scale Byzantine-fault-tolerant system. We present a service that tracks system membership and periodically notifies other system nodes of membership changes. The membership service runs mostly automatically, to avoid human configuration errors; is itself Byzantine-fault-tolerant and reconfigurable; and provides applications with a sequence of consistent views of the system membership. We demonstrate the utility of this membership service by using it in a novel distributed hash table called dBQS that provides atomic semantics even across changes in replica sets. dBQS is interesting in its own right because its storage algorithms extend existing Byzantine quorum protocols to handle changes in the replica set, and because it differs from previous DHTs by providing Byzantine fault tolerance and offering strong semantics. We implemented the membership service and dBQS. Our results show that the approach works well, in practice: the membership service is able to manage a large system and the cost to change the system membership is low.
Rodrigo Rodrigues 0001, Barbara Liskov, Kathryn Chen, Moses D. Liskov, David A. Schultz
IEEE Trans. Dependable Secur. Comput.2
2010 Transactional Consistency and Automatic Management in an Application Data Cache
Dan R. K. Ports, Austin T. Clements, Irene Zhang, Samuel Madden 0001, Barbara Liskov
OSDI5
2010 The Power of Abstraction - (Invited Lecture Abstract)
Barbara Liskov
DISC1
2010 MPSS: Mobile Proactive Secret Sharing
abstract
This article describes MPSS, a new way to do proactive secret sharing. MPSS provides mobility : The group of nodes holding the shares of the secret can change at each resharing, which is essential in a long-lived system. MPSS additionally allows the number of tolerated faulty shareholders to change when the secret is moved so that the system can tolerate more (or fewer) corruptions; this allows reconfiguration on-the-fly to accommodate changes in the environment. MPSS includes an efficient protocol that is intended to be used in practice. The protocol is optimized for the common case of no or few failures, but degradation when there are more failures is modest. MPSS contains a step in which nodes accuse proposals made by other nodes; we show a novel way to handle these accusations when their verity cannot be known. We also present a way to produce accusations that can be verified without releasing keys of other nodes; verifiable accusations improve the performance of MPSS, and are a useful primitive independent of MPSS.
David A. Schultz, Barbara Liskov, Moses D. Liskov
ACM Trans. Inf. Syst. Secur.2
2009 Tolerating Latency in Replicated State Machines Through Client Speculation
Benjamin Wester, James A. Cowling, Ed Nightingale, Peter M. Chen, Jason Flinn, Barbara Liskov
NSDI6
2009 Census: Location-Aware Membership Management for Large-Scale Distributed Systems
James A. Cowling, Dan R. K. Ports, Barbara Liskov, Raluca A. Popa, Abhijeet Gaikwad
USENIX ATC3
2009 Full-Information Lookups for Peer-to-Peer Overlays
abstract
Most peer-to-peer lookup schemes keep a small amount of routing state per node, typically logarithmic in the number of overlay nodes. This design assumes that routing information at each member node must be kept small so that the bookkeeping required to respond to system membership changes is also small, given that aggressive membership dynamics are expected. As a consequence, lookups have high latency as each lookup requires contacting several nodes in sequence. In this paper, we question these assumptions by presenting a peer-to-peer routing algorithm with small lookup paths. Our algorithm, called ldquoOneHop,rdquo maintains full information about the system membership at each node, routing in a single hop whenever that information is up to date and in a small number of hops otherwise. We show how to disseminate information about membership changes quickly enough so that nodes maintain accurate complete membership information. We also present analytic bandwidth requirements for our scheme that demonstrate that it could be deployed in systems with hundreds of thousands of nodes and high churn. We validate our analytic model using a simulated environment and a real implementation. Our results confirm that OneHop is able to achieve high efficiency, usually reaching the correct node directly 99 percent of the time.
Pedro Fonseca 0001, Rodrigo Rodrigues 0001, Barbara Liskov
IEEE Trans. Parallel Distributed Syst.4
2008 Mobile proactive secret sharing
abstract
MPSS is a new way to do proactive secret sharing in asynchronous networks. MPSS provides mobility: The group of nodes holding the shares of the secret can change at each resharing, which is essential in a long-lived system. MPSS additionally allows the number of tolerated faulty shareholders to change when the secret is moved so that the system can tolerate more (or fewer) corruptions; this allows reconfiguration on the fly to accommodate changes in the environment.
David A. Schultz, Barbara Liskov, Moses D. Liskov
PODC2
2007 Greedy Virtual Coordinates for Geographic Routing
abstract
We present a new approach for generating virtual coordinates that produces usable coordinates quickly and improves the routing performance of existing geographic routing algorithms. Starting from a set of initial coordinates derived from a set of elected perimeter nodes, greedy embedding spring coordinates (GSpring) detects possible dead ends and uses a modified spring relaxation algorithm to incrementally adjust virtual coordinates to increase the convexity of voids in the virtual routing topology. This reduces the probability that packets will end up in dead ends during greedy forwarding. The coordinates derived by GSpring achieve routing stretch that is up to 50% lower than that for NoGeo, the best existing algorithm for deriving virtual Euclidean coordinates for geographic routing. For realistic network topologies with obstacles, GSpring coordinates achieves from between 10 to 15% better routing stretch than actual physical coordinates.
Ben Leong, Barbara Liskov, Robert Morris 0005
ICNP2
2007 Tolerating byzantine faults in transaction processing systems using commit barrier scheduling
abstract
This paper describes the design, implementation, and evaluation of areplication scheme to handle Byzantine faults in transaction processing database systems. The scheme compares answers from queries and updates on multiple replicas which are unmodified, off-the-shelf systems, to provide a single database that is Byzantine fault tolerant. The scheme works when the replicas are homogeneous, but it also allows heterogeneous replication in which replicas come from different vendors. Heterogeneous replicas reduce the impact of bugs and security compromises because they are implemented independently and are thus less likely to suffer correlated failures.
Ben Vandiver, Hari Balakrishnan, Barbara Liskov, Samuel Madden 0001
SOSP3
2007 MapJAX: Data Structure Abstractions for Asynchronous Web Applications
Dan S. Myers, Jennifer N. Carlisle, James A. Cowling, Barbara Liskov
USENIX ATC4
2006 Modular Software Upgrades for Distributed Systems
Sameer Ajmani, Barbara Liskov, Liuba Shrira
ECOOP2
2006 Tolerating Byzantine Faulty Clients in a Quorum System
abstract
Byzantine quorum systems have been proposed that work properly even when up to f replicas fail arbitrarily. However, these systems are not so successful when confronted with Byzantine faulty clients. This paper presents novel protocols that provide atomic semantics despite Byzantine clients. Our protocols prevent Byzantine clients from interfering with good clients: bad clients cannot prevent good clients from completing reads and writes, and they cannot cause good clients to see inconsistencies. In addition we also prevent bad clients that have been removed from operation from leaving behind more than a bounded number of writes that could be done on their behalf by a colluder. Our protocols are designed to work in an asynchronous system like the Internet and they are highly efficient. We require 3f +1 replicas, and either two or three phases to do writes; reads normally complete in one phase and require no more than two phases, no matter what the bad clients are doing. We also present strong correctness conditions for systems with Byzantine clients that limit what can be done on behalf of bad clients once they leave the system. Furthermore we prove that our protocols are both safe (they meet those conditions) and live.
Barbara Liskov, Rodrigo Rodrigues 0001
ICDCS1
2006 Geographic Routing Without Planarization
Ben Leong, Barbara Liskov, Robert Morris 0005
NSDI2
2006 HQ Replication: A Hybrid Quorum Protocol for Byzantine Fault Tolerance
James A. Cowling, Dan S. Myers, Barbara Liskov, Rodrigo Rodrigues 0001, Liuba Shrira
OSDI3
2006 EpiChord: Parallelizing the Chord lookup algorithm with reactive routing state management
Ben Leong, Barbara Liskov, Erik D. Demaine
Comput. Commun.2
2005 Path Vector Face Routing: Geographic Routing with Local Face Information
abstract
Existing geographic routing algorithms depend on the planarization of the network connectivity graph for correctness, and the planarization process gives rise to a well-defined notion of "faces". In this paper, we demonstrate that we can improve routing performance by storing a small amount of local face information at each node. We present a protocol, path vector exchange (PVEX), that maintains local face information at each node efficiently, and a new geographic routing algorithm, greedy path vector face routing (GPVFR), that achieves better routing performance in terms of both path stretch and hop stretch than existing geographic routing algorithms by exploiting available local face information. Our simulations demonstrate that GPVFR/PVEX achieves significantly reduced path and hop stretch than greedy perimeter stateless routing (GPSR) and somewhat better performance than greedy other adaptive face routing (GOAFR+) over a wide range of network topologies. The cost of this improved performance is a small amount of additional storage, and the bandwidth required for our algorithm is comparable to GPSR and GOAFR+ in quasi-static networks.
Ben Leong, Sayan Mitra 0001, Barbara Liskov
ICNP3
2005 Byzantine Clients Rendered Harmless
Barbara Liskov, Rodrigo Rodrigues 0001
DISC1
2004 Efficient Routing for Peer-to-Peer Overlays
Barbara Liskov, Rodrigo Rodrigues 0001
NSDI2
2004 TimeLine: A High Performance Archive for a Distributed Object Store
Chuang-Hue Moh, Barbara Liskov
NSDI2
2004 Brief announcement: reconfigurable byzantine-fault-tolerant atomic memory
abstract
No abstract available.
Rodrigo Rodrigues 0001, Barbara Liskov
PODC2
2003 Scheduling and Simulation: How to Upgrade Distributed Systems
Sameer Ajmani, Barbara Liskov, Liuba Shrira
HotOS2
2003 One Hop Lookups for Peer-to-Peer Overlays
Barbara Liskov, Rodrigo Rodrigues 0001
HotOS2
2003 Lazy modular upgrades in persistent object stores
abstract
Persistent object stores require a way to automatically upgrade persistent objects. Automatic upgrades are a challenge for such systems. Upgrades must be performed in a way that is efficient both in space and time, and that does not stop application access to the store. In addition, however, the approach must be modular: it must allow programmers to reason locally about the correctness of their upgrades similar to the way they would reason about regular code. This paper provides solutions to both problems. The paper first defines upgrade modularity conditions that any upgrade system must satisfy to support local reasoning about upgrades. The paper then describes a new approach for executing upgrades efficiently while satisfying the upgrade modularity conditions. The approach exploits object encapsulation properties in a novel way. The paper also describes a prototype implementation and shows that our upgrade system imposes only a small overhead on application performance.
Chandrasekhar Boyapati, Barbara Liskov, Liuba Shrira, Chuang-Hue Moh, Steven Richman
OOPSLA2
2003 Ownership types for object encapsulation
abstract
Ownership types provide a statically enforceable way of specifying object encapsulation and enable local reasoning about program correctness in object-oriented languages. However, a type system that enforces strict object encapsulation is too constraining: it does not allow efficient implementation of important constructs like iterators. This paper argues that the right way to solve the problem is to allow objects of classes defined in the same module to have privileged access to each other's representations; we show how to do this for inner classes. This approach allows programmers to express constructs like iterators and yet supports local reasoning about the correctness of the classes, because a class and its inner classes together can be reasoned about as a module. The paper also sketches how we use our variant of ownership types to enable efficient software upgrades in persistent object stores.
Chandrasekhar Boyapati, Barbara Liskov, Liuba Shrira
POPL2
2003 BASE: Using abstraction to improve fault tolerance
abstract
Software errors are a major cause of outages and they are increasingly exploited in malicious attacks. Byzantine fault tolerance allows replicated systems to mask some software errors but it is expensive to deploy. This paper describes a replication technique, BASE, which uses abstraction to reduce the cost of Byzantine fault tolerance and to improve its ability to mask software errors. BASE reduces cost because it enables reuse of off-the-shelf service implementations. It improves availability because each replica can be repaired periodically using an abstract view of the state stored by correct replicas, and because each replica can run distinct or nondeterministic service implementations, which reduces the probability of common mode failures. We built an NFS service where each replica can run a different off-the-shelf file system implementation, and an object-oriented database where the replicas ran the same, nondeterministic implementation. These examples suggest that our technique can be used in practice---in both cases, the implementation required only a modest amount of new code, and our performance results indicate that the replicated services perform comparably to the implementations that they reuse.
Miguel Castro 0001, Rodrigo Rodrigues 0001, Barbara Liskov
ACM Trans. Comput. Syst.3
2002 Practical byzantine fault tolerance and proactive recovery
abstract
Our growing reliance on online services accessible on the Internet demands highly available systems that provide correct service without interruptions. Software bugs, operator mistakes, and malicious attacks are a major cause of service interruptions and they can cause arbitrary behavior, that is, Byzantine faults. This article describes a new replication algorithm, BFT, that can be used to build highly available systems that tolerate Byzantine faults. BFT can be used in practice to implement real services: it performs well, it is safe in asynchronous environments such as the Internet, it incorporates mechanisms to defend against Byzantine-faulty clients, and it recovers replicas proactively. The recovery mechanism allows the algorithm to tolerate any number of faults over the lifetime of the system provided fewer than 1/3 of the replicas become faulty within a small window of vulnerability. BFT has been implemented as a generic program library with a simple interface. We used the library to implement the first Byzantine-fault-tolerant NFS file system, BFS. The BFT library and BFS perform well because the library incorporates several important optimizations, the most important of which is the use of symmetric cryptography to authenticate messages. The performance results show that BFS performs 2% faster to 24% slower than production implementations of the NFS protocol that are not replicated. This supports our claim that the BFT library can be used to build practical systems that tolerate Byzantine faults.
Miguel Castro 0001, Barbara Liskov
ACM Trans. Comput. Syst.2
2001 Byzantine Fault Tolerance Can Be Fast
abstract
Byzantine fault tolerance is important because it can be used to implement highly-available systems that tolerate arbitrary behavior from faulty components. We present a detailed performance evaluation of BFT, a state-machine replication algorithm that tolerates Byzantine faults in asynchronous systems. Our results contradict the common belief that Byzantine fault tolerance is too slow to be used in practice, BFT performs well so that it can be used to implement real systems. We implemented a replicated NFS file system using BFT that performs 2% faster to 24% slower than production implementations of the NFS protocol that are not fault-tolerant.
Miguel Castro 0001, Barbara Liskov
DSN2
2001 Using Abstraction To Improve Fault Tolerance
abstract
Software errors are a major cause of outages and they are increasingly exploited in malicious attacks. Byzantine fault tolerance allows replicated systems to mask some software errors but it is expensive to deploy. The paper describes a replication technique, BFTA, which uses abstraction to reduce the cost of Byzantine fault tolerance and to improve its ability to mask software errors. BFTA reduces cost because it enables reuse of off-the-shelf service implementations. It improves availability because each replica can be repaired periodically using an abstract view of the state stored by correct replicas, and because each replica can run distinct or non-deterministic service implementations, which reduces the probability of common mode failures. We built an NFS service that allows each replica to run a different operating system. This example suggests that BFTA can be used in practice; the replicated file system required only a modest amount of new code, and preliminary performance results indicate that it performs comparably to the off-the-shelf implementations that it wraps.
Miguel Castro 0001, Rodrigo Rodrigues 0001, Barbara Liskov
HotOS3
2001 BASE: Using Abstraction to Improve Fault Tolerance
abstract
Software errors are a major cause of outages and they are increasingly exploited in malicious attacks. Byzantine fault tolerance allows replicated systems to mask some software errors but it is expensive to deploy. This paper describes a replication technique, BASE, which uses abstraction to reduce the cost of Byzantine fault tolerance and to improve its ability to mask software errors. BASE reduces cost because it enables reuse of off-the-shelf service implementations. It improves availability because each replica can be repaired periodically using an abstract view of the state stored by correct replicas, and because each replica can run distinct or non-deterministic service implementations, which reduces the probability of common mode failures. We built an NFS service where each replica can run a different off-the-shelf file system implementation, and an object-oriented database where the replicas ran the same, non-deterministic implementation. These examples suggest that our technique can be used in practice --- in both cases, the implementation required only a modest amount of new code, and our performance results indicate that the replicated services perform comparably to the implementations that they reuse.
Rodrigo Rodrigues 0001, Miguel Castro 0001, Barbara Liskov
SOSP3
2000 Generalized Isolation Level Definitions
abstract
Commercial databases support different isolation levels to allow programmers to trade off consistency for a potential gain in performance. The isolation levels are defined in the current ANSI standard, but the definitions are ambiguous and revised definitions proposed to correct the problem are too constrained since they allow only pessimistic (locking) implementations. This paper presents new specifications for the ANSI levels. Our specifications are portable: they apply not only to locking implementations, but also to optimistic and multi-version concurrency control schemes. Furthermore, unlike earlier definitions, our new specifications handle predicates in a correct and flexible manner at all levels.
Atul Adya, Barbara Liskov, Patrick E. O'Neil
ICDE2
2000 Proactive Recovery in a Byzantine-Fault-Tolerant System
Miguel Castro 0001, Barbara Liskov
OSDI2
2000 Protecting privacy using the decentralized label model
abstract
Stronger protection is needed for the confidentiality and integrity of data, because programs containing untrusted code are the rule rather than the exception. Information flow control allows the enforcement of end-to-end security policies, but has been difficult to put into practice. This article describes the decentralized label model, a new label model for control of information flow in systems with mutual distrust and decentralized authority. The model improves on existing multilevel security models by allowing users to declassify information in a decentralized way, and by improving support for fine-grained data sharing. It supports static program analysis of information flow, so that programs can be certified to permit only acceptable information flows, while largely avoiding the overhead of run-time checking. The article introduces the language Jif, an extension to Java that provides static checking of information flow using the decentralized label model.
Andrew C. Myers, Barbara Liskov
ACM Trans. Softw. Eng. Methodol.2
1999 Providing Persistent Objects in Distributed Systems
Barbara Liskov, Miguel Castro 0001, Liuba Shrira, Atul Adya
ECOOP1
1999 Practical Byzantine Fault Tolerance
Miguel Castro 0001, Barbara Liskov
OSDI2
1998 Complete, Safe Information Flow with Decentralized Labels
abstract
The growing use of mobile code in downloaded applications and servlets has increased interest in robust mechanisms for ensuring privacy and secrecy. Information flow control is intended to directly address privacy and secrecy concerns, but most information flow models are too restrictive to be widely used. The decentralized label model is a new information flow model that extends traditional models with per-principal information flow policies and also permits a safe form of declassification. This paper extends this new model further, making it more flexible and expressive. We define a new formal semantics for decentralized labels and a corresponding new rule for relabeling data that is both sound and complete. We also show that these extensions preserve the ability to statically check information flow.
Andrew C. Myers, Barbara Liskov
S&P2
1997 Fragment Reconstruction: Providing Global Cache Coherence in a Transactional Storage System
abstract
Cooperative caching is a promising technique to avoid the increasingly formidable disk bottleneck problem in distributed storage systems; it reduces the number of disk accesses by servicing client cache misses from the caches of other clients. However, existing cooperative caching techniques do not provide adequate support for fine grained sharing. We describe a new storage system architecture, split caching, and a new cache coherence protocol, fragment reconstruction, that combine cooperative caching with efficient support for fine grained sharing and transactions. We also present the results of performance studies that show that our scheme introduces little overhead over the basic cooperative caching mechanism and provides better performance when there is fine grained sharing.
Atul Adya, Miguel Castro 0001, Barbara Liskov, Umesh Maheshwari, Liuba Shrira
ICDCS3
1997 Lazy Consistency Using Loosely Synchronized Clocks
abstract
This paper describes a new scheme for guaranteeing that transactions in a clientlserver system observe consistent state while they are running.Thescheme ispresented inconjunction with at'toptimistic concurrency control algorithm, but could also be used to prevent read-only transactions from conflicting with read/write transactions in a multi-version system.The scheme is lazy about the consistency it provides forruming transactions and also in the way it generates theconsistency information.Thepaper presents results of simulation experiments showing that the cost of the scheme is negligible.The scheme uses multipart timestamps to inform nodes about information they need to know.Today the utility of such schemes is limited beeause timestamp size is proportional to system size and therefore the schemes don't scale to very large systems.We show how to solve this problem.Our multipart timestamps are based on real rather thm logical clocks; we assume clocks in the system are loosely synchronized.Clocks allow us to keep multipart timestamps small with minimal impact on performance: we remove old information that is likely to be known while retaining recent information.Only performance and not correctness is affected if clocks get out of synch.
Atul Adya, Barbara Liskov
PODC2
1997 Collecting Distributed Garbage Cycles by Back Tracing
abstract
Systems that store objects at a large number of sites require fault-tolerant and timely garbage collection. A popular technique is to trace each site independently using inter-site references as roots. However, this fails to collect cyclic garbage spread across sites. We present an algorithm that collects cyclic garbage by involving only the sites containing it. Our algorithm is based on finding objects highly likely to be cyclic garbage and tracing backward from them to check if they are reachable from any root. We present efficient techniques that make conducting such traces practical. The algorithm collects all distributed cyclic garbage, is safe in the presence of concurrent mutations, and has low space and time overhead. 1 Introduction Emerging distributed systems will use objects stored at a large number of sites. The scale of such systems poses new challenges to reclaiming the storage of objects unreachable by applications. Such objects are known as garbage. A simple way to col...
Umesh Maheshwari, Barbara Liskov
PODC2
1997 Parameterized Types for Java
abstract
Java offers the real possibility that most programs can be written in a type-safe language. However, for Java to be broadly useful, it needs additional expressive power. This paper extends Java in one area where more power is needed: support for parametric polymorphism, which allows the definition and implementation of generic abstractions. We discuss both the rationale for our design decisions and the impact of the extension on other parts of Java, including arrays and the class library. We also describe optional extensions to the Java virtual machine to allow parameterized bytecodes, and how to verify them efficiently. We have extended the Java bytecode interpreter to provide good performance for parameterized code in both execution speed and code size, without slowing down non-parameterized code.
Andrew C. Myers, Joseph A. Bank, Barbara Liskov
POPL3
1997 Partitioned Garbage Collection of Large Object Store
abstract
We present new techniques for efficient garbage collection in a large persistent object store. The store is divided into partitions that are collected independently using information about inter-partition references. This information is maintained on disk so that it can be recovered after a crash. We use new techniques to organize and update this information while avoiding disk accesses. We also present a new global marking scheme to collect cyclic garbage across partitions. Global marking is piggybacked on partitioned collection; the result is an efficient scheme that preserves the localized nature of partitioned collection, yet is able to collect all garbage.
Umesh Maheshwari, Barbara Liskov
SIGMOD Conference2
1997 HAC: Hybrid Adaptive Caching for Distributed Storage Systems
abstract
This paper presents HAC, a novel technique for managing the client cache in a distributed, persistent object storage system.I-k2 is a hybrid between page and object caching that combines the virtues of both while avoiding their disadvantages.,It achieves the low miss penalties of a page-caching system, but is able to perform well even when locality is poor, since it can discard pages while retaining their hot objects.It realizes the potentially lower miss rates of object-caching systems, yet avoids their problems of fragmentation and high overheads.Furthermore, HAC is adaptive: when locality is good it behaves like a page-caching system, while if locality is poor it behaves like an object-caching system.It is able to adjust the amount of cache space devoted to pages dynamically so that space in the cache can be used in the way that Fcst matches tbe needs of the application.The paper also presents results of experiments that indicate that HAC outperforms other object storage systems across a wide range of cache sizes and workloads; it performs substantially better on the expected workloads, which have low to moderate locality.Thus we show that our hybrid, adaptive approach is the cache management technique of choice for distributed, persistent object systems.This research was supported in
Miguel Castro 0001, Atul Adya, Barbara Liskov, Andrew C. Myers
SOSP3
1997 A Decentralized Model for Information Flow Control
abstract
This paper presents a new model for controlling information flow in systems with mutual distrust and decentralized authority.The model allows users to share information with distrusted code (e.g., downloaded applets), yet still control how that code disseminates the shared information to others.The model improves on existing multilevel security models by allowing users to declassify information in a decentralized way, and by improving support for fine-grained data sharing.The paper also shows how static program analysis can be used to certify proper information flows in this model and to avoid most run-time information flow checks.
Andrew C. Myers, Barbara Liskov
SOSP2
1997 Collecting Cyclic Distributed Garbage by Controlled Migration
Umesh Maheshwari, Barbara Liskov
Distributed Comput.2
1996 Safe and Efficient Sharing of Persistent Objects in Thor
abstract
Thor is an object-oriented database system designed for use in a heterogeneous distributed environment. It provides highly-reliable and highly-available persistent storage for objects, and supports safe sharing of these objects by applications written in different programming languages.Safe heterogeneous sharing of long-lived objects requires encapsulation: the system must guarantee that applications interact with objects only by invoking methods. Although safety concerns are important, most object-oriented databases forgo safety to avoid paying the associated performance costs.This paper gives an overview of Thor's design and implementation. We focus on two areas that set Thor apart from other object-oriented databases. First, we discuss safe sharing and techniques for ensuring it; we also discuss ways of improving application performance without sacrificing safety. Second, we describe our approach to cache management at client machines, including a novel adaptive prefetching strategy.The paper presents performance results for Thor, on several OO7 benchmark traversals. The results show that adaptive prefetching is very effective, improving both the elapsed time of traversals and the amount of space used in the client cache. The results also show that the cost of safe sharing can be negligible; thus it is possible to have both safety and high performance.
Barbara Liskov, Atul Adya, Miguel Castro 0001, Mark Day, Sanjay Ghemawat, Robert Gruber, Umesh Maheshwari, Andrew C. Myers, Liuba Shrira
SIGMOD Conference1
1995 Subtypes vs. Where Clauses: Constraining Parametric Polymorphism
abstract
All object-oriented languages provide support for subtype polymorphism, which allows the writing of generic code that works for families of related types. There is also a need, however, to write code that is generic across types that have no real family relationship. To satisfy this need a programming language must provide a mechanism for parametric polymorphism, allowing for types as parameters to routines and types. We show that to support modular programming and separate compilation there must be a mechanism for constraining the actual parameters of the routine or type. We describe a simple and powerful constraint mechanism and compare it with constraint mechanisms in other languages in terms of both ease of use and semantic expressiveness. We also discuss the interaction between subtype and parametric polymorphism: we discuss the subtype relations that can exist between instantiations of parameterized types, and which of those relations are useful and can be implemented efficiently. We illustrate our points using examples in Theta, a new object-oriented language, and we describe the time- and space-efficient implementation of parametric polymorphism used in Theta.
Mark Day, Robert Gruber, Barbara Liskov, Andrew C. Myers
OOPSLA3
1995 Collecting Cyclic Distributed Garbage Using Heuristics to Control Migration
abstract
Distributedreference counting provides timely and fault-tolerant 'garbage collection in large distributed systems, but it fails to collect cyclic garbage distributed across nodes.A common proposal is to migrate all objects on a garbage cycle to a single node, where they can be collected by the local collector.However, existing schemes have practical problems due to umecessary migration of objects.We present solutions to these problems: our scheme avoids migration of live objects, batches objects to avoid a cascade of migration messages, and short-cuts the migration path to avoid multiple migrations.We use simple estimates to detect objects that are highly likely to be cyclic garbage and to select a node to which such objects are migrated.The scheme has low overhead, and it preserves the decentralized and fault-tolerant nature of distributed reference counting and migration.
Umesh Maheshwari, Barbara Liskov
PODC2
1995 Efficient Optimistic Concurrency Control Using Loosely Synchronized Clocks
abstract
This paper describes an efficient optimistic concurrency control scheme for use in distributed database systems in which objects are cached and manipulated at client machines while persistent storage and transactional support are provided by servers. The scheme provides both serializability and external consistency for committed transactions; it uses loosely synchronized clocks to achieve global serialization. It stores only a single version of each object, and avoids maintaining any concurrency control information on a per-object basis; instead, it tracks recent invalidations on a per-client basis, an approach that has low in-memory space overhead and no per-object disk overhead. In addition to its low space overheads, the scheme also performs well. The paper presents a simulation study that compares the scheme to adaptive callback locking, the best concurrency control scheme for client-server object-oriented database systems studied to date. The study shows that our scheme outperforms adaptive callback locking for low to moderate contention workloads, and scales better with the number of clients. For high contention workloads, optimism can result in a high abort rate; the scheme presented here is a first step toward a hybrid scheme that we expect to perform well across the full range of workloads.
Atul Adya, Robert Gruber, Barbara Liskov, Umesh Maheshwari
SIGMOD Conference3
1995 Using a Modified Object Buffer to Improve the Write Performance of an Object-Oriented Database
abstract
No abstract available.
Sanjay Ghemawat, M. Frans Kaashoek, Barbara Liskov
SOSP3
1994 Reducing Cross Domain Call Overhead using Batched Futures
abstract
In many systems such as operating systems and databases it is important to run client code in a separate protection domain so that it cannot interfere with correct operation of the system. Clients communicate with the server by making cross domain calls, but these are expensive, often costing substantially more than running the call itself. This paper describes a new mechanism called batched futures that transparently batches possibly interrelated client calls. Batching makes domain crossings happen less often, thus substantially reducing the cost. We describe how the mechanism is implemented for the Thor object-oriented database system, and presents performance results showing the benefit of the mechanism on various benchmarks.
Phillip Bogle, Barbara Liskov
OOPSLA2
1994 A Behavioral Notion of Subtyping
abstract
The use of hierarchy is an important component of object-oriented design. Hierarchy allows the use of type families, in which higher level supertypes capture the behavior that all of their subtypes have in common. For this methodology to be effective, it is necessary to have a clear understanding of how subtypes and supertypes are related. This paper takes the position that the relationship should ensure that any property proved about supertype objects also holds for its subtype objects. It presents two ways of defining the subtype relation, each of which meets this criterion, and each of which is easy for programmers to use. The subtype relation is based on the specifications of the sub- and supertypes; the paper presents a way of specifying types that makes it convenient to define the subtype relation. The paper also discusses the ramifications of this notion of subtyping on the design of type families.
Barbara Liskov, Jeannette M. Wing
ACM Trans. Program. Lang. Syst.1
1993 A New Definition of the Subtype Relation
Barbara Liskov, Jeannette M. Wing
ECOOP1
1993 Specifications and Their Use in Defining Subtypes
abstract
Specifications are useful because they allow reasoning about objects without concern for their implementations.Type hierarchies are useful because they allow types that share common properties to be designed as a family.This paper is concerned with the interaction between specifications and type hierarchies.We present a way of specifying types, and show how some extra information, in addition to specifications of the objects' methods, is needed to support reasoning.We also provide a new way of showing that one type is a subtype of another.Our technique makes use of information in the types' specifications and works even in a very general computational environment in which possibly concurrent users share mutable objects.
Barbara Liskov, Jeannette M. Wing
OOPSLA1
1993 Practical Uses of Synchronized Clocks in Distributed Systems
Barbara Liskov
Distributed Comput.1
1992 Garbage Collection of a Distributed Heap
abstract
A practical, fault-tolerant method for reclaiming inaccessible objects in a distributed heap is presented. The algorithm is general and does not require homogeneous components. It reclaims inaccessible objects in a timely fashion, including those that reside on inaccessible cycles. It allows each computer that contains parts of the heap to garbage collect independently according to its storage requirements, using whatever algorithm it chooses. A highly available service is used to store information about the intercomputer references. The computers containing parts of the heap communicate with the central service only periodically. By using the service the overhead at each node is minimized.>
Rivka Ladin, Barbara Liskov
ICDCS2
1992 Providing High Availability Using Lazy Replication
abstract
To provide high availability for services such as mail or bulletin boards, data must be replicated. One way to guarantee consistency of replicated data is to force service operations to occur in the same order at all sites, but this approach is expensive. For some applications a weaker causal operation order can preserve consistency while providing better performance. This paper describes a new way of implementing causal operations. Our technique also supports two other kinds of operations: operations that are totally ordered with respect to one another and operations that are totally ordered with respect to all other operations. The method performs well in terms of response time, operation-processing capacity, amount of stored state, and number and size of messages; it does better than replication methods based on reliable multicast techniques.
Rivka Ladin, Barbara Liskov, Liuba Shrira, Sanjay Ghemawat
ACM Trans. Comput. Syst.2
1991 Practical Uses of Synchronized Clocks in Distributed Systems
abstract
Article Practical uses of synchronized clocks in distributed systems Share on Author: Barbara Liskov MIT Laboratory for Computer Science, Cambridge, MA MIT Laboratory for Computer Science, Cambridge, MAView Profile Authors Info & Claims PODC '91: Proceedings of the tenth annual ACM symposium on Principles of distributed computingJuly 1991 Pages 1–9https://doi.org/10.1145/112600.112601Online:01 July 1991Publication History 41citation1,440DownloadsMetricsTotal Citations41Total Downloads1,440Last 12 Months100Last 6 weeks10 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
Barbara Liskov
PODC1
1991 Replication in the Harp File System
abstract
This paper describes the design and implementation of the Harp file system. Harp is a replicated Unix file system accessible via the VFS interface. It provides highly available and reliable storage for files and guarantees that file operations are executed atomically in spite of concurrency and failures. It uses a novel variation of the primary copy replication technique that provides good performance because it allows us to trade disk accesses for network communication. Harp is intended to be used within a file service in a distributed network; in our current implementation, it is accessed via NFS. Preliminary performance results indicate that Harp provides equal or better response time and system capacity than an unreplicated implementation of NFS that uses Unix files directly.
Barbara Liskov, Sanjay Ghemawat, Robert Gruber, Paul Johnson 0001, Liuba Shrira, Michael Williams
SOSP1
1991 Efficient At-Most-Once Messages Based on Synchronized Clocks
abstract
This paper describes a new at-most-once message passing protocol that provides guaranteed detection of duplicate messages even when the receiver has no state stored for the sender. It also discusses how to use at-most-once messages to implement higher-level primitives such as at-once-remote procedure calls and sequenced bytestream protocols. Our performance measurements indicate that at-most-once RPCs can provide at the same cost as less desirable forms of RPCs that do not guarantee at-most-once execution. Our method is based on the assumption that clocks throughout the system are loosely synchronized. Modern clock synchronization protocols provide good bounds on clock skew with high probability; our method depends on the bound for performance but not for correctness.
Barbara Liskov, Liuba Shrira, John Wroclawski
ACM Trans. Comput. Syst.1
1990 Lazy Replication: Exploiting the Semantics of Distributed Services
abstract
To provide high availability for services such as mail or bulletin boards, data must be replicated.One way to guarantee consistency of replicated data is to force service operations to occur in the same order at all sites, but this approach is expensive.In this paper, we propose lazy replication as a way to preserve consistency by exploiting the semantics of the service's operations to relax the constraints on ordering.Three kinds of operations are supported: operations for which the clients define the required order dynamically during the execution.operations for which the service defines the order, and operations that must be globally ordered with respect to both client ordered and service ordered operations.The method performs well in terms of response time, amount of stored state, number of messages, and availability.It is especially well suited to applications in which most operations require only the client-defined order.
Rivka Ladin, Barbara Liskov, Liuba Shrira
PODC2
1990 Efficient At-Most-Once Messages Based on Synchronized Clocks
abstract
This paper describes a new message passing protocol that provides guaranteed detection of duplicate messages even when the receiver has no state stored for the sender. It also discusses how to use these messages to implement higher-level primitives such as at-most-once remote procedure calls and sequenced bytestream protocols, and describes an implementation of at-most-once RPCs using our method. Our performance measurements indicate that at-most-once RPCs can be provided at the same cost as less desirable RPCs that do not guarantee at-most-once execution. Our method is based on the assumption that clocks throughout the system are loosely synchronized. Modern clock synchronization protocols provide good bounds on clock skew with high probability; our method depends on the bound for performance but not for correctness.
Barbara Liskov, Liuba Shrira, John Wroclawski
SIGCOMM1
1989 Atomic Garbage Collection: Managing a Stable Heap
abstract
Modern 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 Conference2
1988 Promises: Linguistic Support for Efficient Asynchronous Procedure Calls in Distributed Systems
abstract
This paper deals with the integration of an efficient asynchronous remote procedure call mechanism into a programming language. It describes a new data type called a promise that was designed to support asynchronous calls. Promises allow a caller to run in parallel with a call and to pick up the results of the call, including any exceptions it raises, in a convenient and type-safe manner. The paper also discusses efficient composition of sequences of asynchronous calls to different locations in a network.
Barbara Liskov, Liuba Shrira
PLDI1
1988 Viewstamped Replication: A General Primary Copy
abstract
Article Viewstamped Replication: A New Primary Copy Method to Support Highly-Available Distributed Systems Share on Authors: Brian M. Oki Massachusetts Institute of Technology, Laboratory for Computer Science, Cambridge, MA Massachusetts Institute of Technology, Laboratory for Computer Science, Cambridge, MAView Profile , Barbara H. Liskov Massachusetts Institute of Technology, Laboratory for Computer Science, Cambridge, MA Massachusetts Institute of Technology, Laboratory for Computer Science, Cambridge, MAView Profile Authors Info & Claims PODC '88: Proceedings of the seventh annual ACM Symposium on Principles of distributed computingJanuary 1988 Pages 8–17https://doi.org/10.1145/62546.62549Online:01 January 1988Publication History 163citation2,063DownloadsMetricsTotal Citations163Total Downloads2,063Last 12 Months112Last 6 weeks17 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
Brian M. Oki, Barbara Liskov
PODC2
1988 A Technique for Constructing Highly Available Services
Rivka Ladin, Barbara Liskov, Liuba Shrira
Algorithmica2
1987 Implementation of Argus
abstract
Argus is a programming language and system developed to support the construction and execution of distributed programs. This paper describes the implementation of Argus, with particular emphasis on the way we implement atomic actions, because this is where Argus differs most from other implemented systems. The paper also discusses the performance of Argus. The cost of actions is quite reasonable, indicating that action systems like Argus are practical.
Barbara Liskov, Dorothy Curtis, Paul Johnson 0001, Robert Scheifler
SOSP1
1986 Highly-Available Distributed Services and Fault-Tolerant Distributed Garbage Collection
abstract
This paper describes two techniques that are only loosely related. The first is a method for constructing a highly available service for use in a distributed system. The service presents its clients with a consistent view of its state, but the view may contain old information. Clients can indicate how recent the information must be. The method can be used in any application in which the property of interest is stable: once the property becomes true, it remains true forever. The paper also describes a fault-tolerant garbage collection method for a distributed heap. The method is practical and efficient. Each computer that contains part of the heap does local garbage collection independently, using whatever algorithm it chooses, and without needing to communicate with the other computers that contain parts of the heap. The highly available central service is used to store information about inter.computer references. 1.
Barbara Liskov, Rivka Ladin
PODC1
1986 Limitations of Synchronous Communication with Static Process Structure in Languages for Distributed Computing
abstract
Modules in a distributed program are active, communicating entities. A language for distributed programs must choose a set of communication primitives and a structure for processes. This paper examines one possible choice: synchronous communication primitives (such as rendez-vous or remote procedure call) in combination with modules that encompass a fixed number of processes (such as Ada tasks or UNIX processes). An analysis of the concurrency requirements of distributed programs suggests that this combination imposes complex and indirect solutions to common problems and thus is poorly suited for applications such as distributed programs in which concurrency is important. To provide adequate expressive power, a language for distributed programs should abandon either synchronous communication primitives or the static process structure.
Barbara Liskov, Maurice Herlihy, Lucy Gilbert
POPL1
1986 Specifications of Distributed Programs
Barbara Liskov, William E. Weihl
Distributed Comput.1
1985 Reliable Object Storage to Support Atomic Actions
Brian M. Oki, Barbara Liskov, Robert Scheifler
SOSP2
1985 Implementation of Resilient, Atomic Data Types
abstract
A 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.2
1983 Guardians and Actions: Linguistic Support for Robust, Distributed Programs
abstract
An overview is presented of an integrated programming language and system designed to support the construction and maintenance of distributed programs: programs in which modules reside and execute at communicating, but geographically distinct, nodes.The language is intended to support a class of applications concerned with the manipulation and preservation of long-lived, on-line, distributed data.The language addresses the writing of robust programs that survive hardware failures without loss of distributed information and that provide highly concurrent access to that information while preserving its consistency.Several new linguistic constructs are provided; among them are atomic actions, and modules called guardians that survive node failures.
Barbara Liskov, Robert Scheifler
ACM Trans. Program. Lang. Syst.1
1982 Guardians and Actions: Linguistic Support for Robust, Distributed Programs
abstract
This paper presents an overview of an integrated programming language and system designed to support the construction and maintenance of distributed programs: programs in which modules reside and execute at communicating, but geographically distinct, nodes. The language is intended to support a class of applications in which the manipulation and preservation of long-lived, on-line, distributed data is important. The language addresses the writing of robust programs that survive hardware failures without loss of distributed information and that provide highly concurrent access to that information while preserving its consistency. Several new linguistic constructs are provided; among them are atomic actions, and modules called guardians that survive node failures.
Barbara Liskov, Robert Scheifler
POPL1
1982 A Value Transmission Method for Abstract Data Types
abstract
data types have proved to be a useful technique for structuring systems.In large systems it is sometimes useful to have different regions of the system use different representations for the abstract data values.A technique is described for communicating abstract values between such regions.The method was developed for use in constructing distributed systems, where the regions exist at different computers and the values are communicated over a network.The method defines a call-by-value semantics; it is also useful in nondistributed systems wherever call by value is the desired semantics.An important example of such a use is a repository, such as a file system, for storing longlived data.
Maurice Herlihy, Barbara Liskov
ACM Trans. Program. Lang. Syst.2
1982 On Linguistic Support for Distributed Programs
abstract
Technological advances have made it possible to construct systems from collections of computers connected by a network. At present, however, there is little support for the construction and execution of software to run on such a system. Our research concerns the development of an integrated language/system whose goal is to provide the needed support. This paper discusses a number of issues that must be addressed in such a language. The major focus of our work and this paper is support for the construction of robust software that survives node, network, and media failures.
Barbara Liskov
IEEE Trans. Software Eng.1
1979 Primitives for Distributed Computing
abstract
Distributed programs that run on nodes of a network are now technologically feasible, and are well-suited to the needs of organizations. However, our knowledge about how to construct such programs is limited. This paper discusses primitives that support the construction of distributed programs. Attention is focussed on primitives in two major areas: modularity and communication. The issues underlying the selection of the primitives are discussed, especially the issue of providing robust behavior, and various candidates are analyzed. The primitives will ultimately be provided as part of a programming language that will be used to experiment with construction of distributed programs.
Barbara Liskov
SOSP1
1979 Exception Handling in CLU
abstract
For programs to be reliable and fault tolerant, each program module must be defined to behave reasonably under a wide variety of circumstances. An exception handling mechanism supports the construction of such modules. This paper descnbes an exception handling mechanism developed as part of the CLU programming language. The CLU mechanism is based on a simple model of exception handling that leads to well-structured programs. It is engineered for ease of use and enhanced program readability. This paper discusses the various models of exception handUlng, the syntax and semantics of the CLU mechanism, and methods of implementing the mechanism and integrating it in debugging and production environments.
Barbara Liskov, Alan Snyder
IEEE Trans. Software Eng.1
1976 A Language Extension for Controlling Access to Shared Data (Abstract)
Anita K. Jones, Barbara Liskov
ICSE2
1976 A Language Extension for Controlling Access to Shared Data
abstract
Controlled sharing of information is needed for many applications. Access-control mechanisms exist in operating systems to provide such controlled sharing. However, programming languages currently do not support such a facility. This paper illustrates how an access-control facility could be incorporated in a programming language. The mechanism described is suitable for incorporation in object-oriented languages that permit the definition of abstract data types, and is defmed in a way that enables compile-time checking of access control.
Anita K. Jones, Barbara Liskov
IEEE Trans. Software Eng.2
1975 Specification Techniques for Data Abstractions
abstract
Discusses the importance of formal specifications and surveys a number of promising specification techniques. The role of formal specifications both in proofs of program correctness and in programming methodologies leading to programs which are correct by construction, is explained. Some criteria are established for evaluating the practical potential of specification techniques. The importance of providing specifications at the right level of abstraction is discussed, and a particularly interesting class of specification techniques, those used to construct specifications of data abstractions, is identified. A number of specification techniques for describing data abstractions are surveyed and evaluated with respect to the criteria.
Barbara Liskov, Stephen N. Zilles
IEEE Trans. Software Eng.1
1971 The Design of the Venus Operating System
abstract
The Venus Operating System is an experimental multiprogramming system which supports five or six concurrent users on a small computer. The system was produced to test the effect of machine architecture on complexity of software. The system is defined by a combination of micro-programs and software. The microprogram defines a machine with some unusual architectural features; the software exploits these features to define the operating system as simply as possible. In this paper the development of the system is described, with particular emphasis on the principles which guided the design.
Barbara Liskov
SOSP1