• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

Semantics of Concurrent Revisions

Cached

  • Download as a PDF

Download Links

  • [research.microsoft.com]
  • [research.microsoft.com]
  • [research.microsoft.com]
  • [research.microsoft.com]

  • Save to List
  • Add to Collection
  • Correct Errors
  • Monitor Changes
by Sebastian Burckhardt , Daan Leijen
Citations:4 - 0 self
  • Summary
  • Active Bibliography
  • Co-citation
  • Clustered Documents
  • Version History

BibTeX

@MISC{Burckhardt_semanticsof,
    author = {Sebastian Burckhardt and Daan Leijen},
    title = {Semantics of Concurrent Revisions},
    year = {}
}

Bookmark

citeulike Connotea Bibsonomy Del.icio.us Digg Reddit

OpenURL

 

Abstract

Enabling applications to execute various tasks in parallel is difficult if those tasks exhibit read and write conflicts. We recently developed a programming model based on concurrent revisions that addresses this challenge in a novel way: each forked task gets a conceptual copy of all the shared state, and state changes are integrated only when tasks are joined, at which time write-write conflicts are deterministically resolved. In this paper, we study the precise semantics of this model, in particular its guarantees for determinacy and consistency. First, we introduce a revision calculus that concisely captures the programming model. Despite allowing concurrent execution and locally nondeterministic scheduling, we prove that the calculus is confluent and guarantees determinacy. We show that the consistency guarantees of our calculus are a logical extension of snapshot isolation with support for conflict resolution and nesting. Moreover, we discuss how custom merge functions can provide stronger guarantees for particular data types that are tailored to the needs of the application. Finally, we show we can visualize the nonlinear history of state in our computations using revision diagrams that clarify the synchronization between tasks and allow local reasoning about state updates. CR-number [sub-

Citations

1439 Concurrency Control and Recovery in Database Systems - Bernstein, Hadzilacos, et al. - 1987
940 How to Make a Multiprocessor Computer that Correctly Executes Multiprocess Programs - Lamport - 1979
774 Linearizability: A correctness condition for concurrent objects - Herlihy, Wing - 1990
339 Confluent reductions: Abstract properties and applications to term rewriting systems - Huet - 1980
248 The implementation of the Cilk-5 multithreaded language - Frigo, Leiserson, et al. - 1998
224 Virtualizing Transactional Memory - Rajwar, Herlihy, et al. - 2005
178 A critique of ANSI SQL isolation levels - Berenson, Bernstein, et al. - 1995
155 Implementation of a portable nested data-parallel language - Blelloch, Chatterjee, et al. - 1994
66 Optimistic parallelism requires abstractions - Kulkarni, Pingali, et al. - 2007
64 Multiversion concurrency control - theory and algorithms - Bernstein, Goodman - 1983
60 Safe futures for java - Welc, Jagannathan, et al. - 2005
56 Semantics of Transactional Memory and Automatic Mutual Exclusion - Abadi, Birrell, et al. - 2008
54 Cilk: Efficient Multithreaded Computing - Randall - 1998
45 Making Snapshot Isolation Serializable - Fekete, Liarokapis, et al. - 2005
45 The semantics of future and its use in program optimization - Flanagan, Felleisen - 1995
36 Transactional boosting: a methodology for highly-concurrent transactional objects - Herlihy, Koskinen - 2008
22 Transparent proxies for Java futures - Pratikakis, Spacco, et al. - 2004
22 Snapshot Isolation for Software Transactional Memory - Riegel, Fetzer, et al. - 2006
20 Safe multithreaded programming for C/C - Grace - 2010
19 The semantics of Scheme with future - Moreau - 1996
19 Irrevocable transactions and their applications - Welc, Saha, et al. - 2008
18 Safe multithreaded programming for C/C - Berger, Yang, et al.
10 Coarse-grained transactions - Koskinen, Parkinson, et al. - 2010
10 Semantics of ph: A parallel dialect of haskell - Aditya, Arvind, et al. - 1995
8 Concurrent Programming with Revisions and Isolation Types - Burckhardt, Baldassin, et al.
7 Parallel programming and parallel abstractions in fortress - Steele
7 et al. A type and effect system for Deterministic Parallel Java - Bocchino - 2009
7 Reducers and other Cilk++ hyperobjects - Frigo, Halpern, et al. - 2009
6 Transactional memory: An overview - Harris, Cristal, et al.
5 Project fortress: a multicore language for multicore processors. Linux Magazine - Allen, Chase, et al. - 2007
4 Featherweight x10: a core calculus for async-finish parallelism - LEE, PALSBERG
4 Lightweight software transactions for games - Baldassin, Burckhardt - 2009
3 The resurgence of parallelism - Denning, Dennis
1 Semantics of concurrent revisions (full version - Burckhardt, Leijen - 2010
1 other cilk++ hyperobjects - Reducers - 2009
1 of a portable nested data-parallel language - Impl - 1994
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University