skip to main content
10.1145/1378533.1378563acmconferencesArticle/Chapter ViewAbstractPublication PagesspaaConference Proceedingsconference-collections
research-article

Checkpoints and continuations instead of nested transactions

Published: 14 June 2008 Publication History

Abstract

We present a mechanism for partially aborting transactions through the use of data structure checkpoints and control-flow continuations. In particular, we show that boosted transactions [9] already have built-in restoration points and afford a simple, efficient implementation. Our mechanism is far simpler than previous work, which relied on complex nesting schemes to establish checkpoints. We demonstrate syntactic advantages and we quantify the overhead of checkpoints and explore several examples, illustrating the utility of partially aborting transactions.
We additionally present a novel queue-based spin lock which allows threads to timeout and differ in priority. Unlike the known lock due to Craig [5], our lock is more efficient for priority schemes of few levels.

References

[1]
Appel, A. W. Modern Compiler Implementation in ML. Cambridge University Press, New York, NY, USA, 2004.
[2]
Cao Minh, C., Trautmann, M., Chung, J., McDonald, A., Bronson, N., Casper, J., Kozyrakis, C., and Olukotun, K. An effective hybrid transactional memory system with strong isolation guarantees. In Proceedings of the 34th Annual International Symposium on Computer Architecture (ISCA 07). Jun 2007.
[3]
Carlstrom, B. D., McDonald, A., Carbin, M., Kozyrakis, C., and Olukotun, K. Transactional collection classes. In Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming (PPoPP'07)(New York, NY, USA, 2007), ACM, pp. 56--67.
[4]
Craig, T. Building fifo and priority-queueing spin locks from atomic swap. Technical Report 93--02--02, Department of Computer Science & Engineering, University of Washington, 1993.
[5]
Craig, T. Queuing spin lock algorithms to support timing predictability. Proceedings of the Real-Time Systems Symposium (1993), 148--157.
[6]
Dice, D., Shalev, O., and Shavit, N. Transactional locking II. In Proceedings of the 20th International Symposium on Distributed Computing (DISC'06)(September 2006).
[7]
Harris, T., and Stipić, S. Abstract nested transactions. In Proceedings of the 2nd ACM SIGPLAN Workshop on Languages, compilers, and hardware support for transactional computing (TRANSACT'07)(2007).
[8]
Herlihy, M., and Koskinen, E. Transactional boosting: A methodology for highly concurrent transactional objects. Technical Report CS--07--08, Department of Computer Science, Brown University, 2007.
[9]
Herlihy, M., and Koskinen, E. Transactional boosting: A methodology for highly concurrent transactional objects. In Proceedings of the 13th ACM SIGPLAN symposium on Principles and practice of parallel programming (PPoPP'08) (2008).
[10]
Lev, Y., and Maessen, J.-W. Split hardware transactions: True nesting of transactions using best-effort hardware transactional memory. In Proceedings of the 13th ACM SIGPLAN symposium on Principles and practice of parallel programming (PPoPP'08)(2008).
[11]
Magnusson, P. S., Landin, A., and Hagersten, E. Queue locks on cache coherent multiprocessors. In Proceedings of the 8th International Symposium on Parallel Processing (Washington, DC, USA, 1994), IEEE Computer Society, pp. 165--171.
[12]
Moravan, M. J., Bobba, J., Moore, K. E., Yen, L., Hill, M. D., Liblit, B., Swift, M. M., and Wood, D. A. Supporting nested transactional memory in LogTM. In Proceedings of the 12th international conference on Architectural support for programming languages and operating systems (ASPLOS-XII)(New York, NY, USA, 2006), ACM Press, pp. 359--370.
[13]
Ni, Y., Menon, V. S., Adl-Tabatabai, A.-R., Hosking, A. L., Hudson, R. L., Moss, J. E. B., Saha, B., and Shpeisman, T. Open nesting in software transactional memory. In Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming (PPoPP'07) (New York, NY, USA, 2007), ACM Press, pp. 68--78.
[14]
Scherer, III, W. N., and Scott, M. L. Advanced contention management for dynamic software transactional memory. In PODC'05: Proceedings of the 24th annual ACM symposium on Principles of distributed computing (New York, NY, USA, 2005), ACM, pp. 240--248.
[15]
Strachey, C., and Wadsworth, C. P. Continuations: A mathematical semantics for handling fulljumps. Higher Order Symbol. Comput. 13, 1--2 (2000), 135--152.

Cited By

View all
  • (2024)Architectural Design for AdhaarAssist — A Forward-Looking Lock-Free STM Solution for Adhaar2024 International Conference on Signal Processing and Advance Research in Computing (SPARC)10.1109/SPARC61891.2024.10828922(1-5)Online publication date: 12-Sep-2024
  • (2023)When Concurrency Matters: Behaviour-Oriented ConcurrencyProceedings of the ACM on Programming Languages10.1145/36228527:OOPSLA2(1531-1560)Online publication date: 16-Oct-2023
  • (2022)Design and implementation of a fully transparent partial abort support for software transactional memorySoftware: Practice and Experience10.1002/spe.313452:11(2456-2475)Online publication date: 8-Aug-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SPAA '08: Proceedings of the twentieth annual symposium on Parallelism in algorithms and architectures
June 2008
380 pages
ISBN:9781595939739
DOI:10.1145/1378533
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 14 June 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. boosting
  2. checkpoints
  3. concurrency
  4. continuations
  5. parallel programming
  6. transactional memory

Qualifiers

  • Research-article

Conference

SPAA08

Acceptance Rates

Overall Acceptance Rate 447 of 1,461 submissions, 31%

Upcoming Conference

SPAA '25
37th ACM Symposium on Parallelism in Algorithms and Architectures
July 28 - August 1, 2025
Portland , OR , USA

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)2
Reflects downloads up to 19 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Architectural Design for AdhaarAssist — A Forward-Looking Lock-Free STM Solution for Adhaar2024 International Conference on Signal Processing and Advance Research in Computing (SPARC)10.1109/SPARC61891.2024.10828922(1-5)Online publication date: 12-Sep-2024
  • (2023)When Concurrency Matters: Behaviour-Oriented ConcurrencyProceedings of the ACM on Programming Languages10.1145/36228527:OOPSLA2(1531-1560)Online publication date: 16-Oct-2023
  • (2022)Design and implementation of a fully transparent partial abort support for software transactional memorySoftware: Practice and Experience10.1002/spe.313452:11(2456-2475)Online publication date: 8-Aug-2022
  • (2018)STMs in practice: Partial rollback vs pure abort mechanismsConcurrency and Computation: Practice and Experience10.1002/cpe.446531:5Online publication date: 12-Mar-2018
  • (2017)Using Abstract Interpretation to Correct Synchronization FaultsVerification, Model Checking, and Abstract Interpretation10.1007/978-3-319-52234-0_11(187-208)Online publication date: 12-Jan-2017
  • (2016)Opacity proof for CaPR+ algorithmProceedings of the 17th International Conference on Distributed Computing and Networking10.1145/2833312.2833445(1-4)Online publication date: 4-Jan-2016
  • (2015)The Push/Pull model of transactionsACM SIGPLAN Notices10.1145/2813885.273799550:6(186-195)Online publication date: 3-Jun-2015
  • (2015)The Push/Pull model of transactionsProceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/2737924.2737995(186-195)Online publication date: 3-Jun-2015
  • (2015)An Automated Framework for Decomposing Memory Transactions to Exploit Partial RollbackProceedings of the 2015 IEEE International Parallel and Distributed Processing Symposium10.1109/IPDPS.2015.106(249-258)Online publication date: 25-May-2015
  • (2014)Composable Transactional ObjectsProceedings of the 23rd European Symposium on Programming Languages and Systems - Volume 841010.1007/978-3-642-54833-8_1(1-7)Online publication date: 5-Apr-2014
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media