Skip to main content
Article thumbnail
Location of Repository

Concurrent Libraries with Foresight

By Guy Golan-gueta, G. Ramalingam, Mooly Sagiv and Eran Yahav

Abstract

Linearizable libraries provide operations that appear to execute atomically. Clients, however, may need to execute a sequence of operations (a composite operation) atomically. We consider the problem of extending a linearizable library to support arbitrary atomic composite operations by clients. We introduce a novel approach in which the concurrent library ensures atomicity of composite operations by exploiting information (foresight) provided by its clients. We use a correctness condition, based on a notion of dynamic rightmovers, that guarantees that composite operations execute atomically without deadlocks, and without using rollbacks. We present a static analysis to infer the foresight information required by our approach, allowing a compiler to automatically insert the foresight information into the client. This relieves the client programmer of this burden and simplifies writing client code. We present a generic technique for extending the library implementation to realize foresight-based synchronization. This technique is used to implement a general-purpose Java library for Map data structures — the library permits composite operations to simultaneously work with multiple instances of Map data structures. We use the Maps library and the static analysis to enforce atomicity of a wide selection of real-life Java composite operations. Our experiments indicate that our approach enables realizing efficient and scalable synchronization for real-life composite operations

Topics: Categories and Subject Descriptors D.1.3 [Programming Techniques, Concurrent Programming, D.3.1 [Programming Languages, Formal Definitions and Theory, D.3.3 [Programming Languages, Language Constructs and Features—Abstract data types, Concurrent programming structures, Data types and structures Keywords Concurrency, Composition, Transactions, Data Structures, Automatic Synchronization
Year: 2013
OAI identifier: oai:CiteSeerX.psu:10.1.1.352.8450
Provided by: CiteSeerX
Download PDF:
Sorry, we are unable to provide the full text but you may find it at the following location(s):
  • http://citeseerx.ist.psu.edu/v... (external link)
  • http://www.cs.technion.ac.il/~... (external link)
  • Suggested articles


    To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.