skip to main content
research-article

Composing concurrency control

Published:03 June 2015Publication History
Skip Abstract Section

Abstract

Concurrency control poses significant challenges when composing computations over multiple data-structures (objects) with different concurrency-control implementations. We formalize the usually desired requirements (serializability, abort-safety, deadlock-safety, and opacity) as well as stronger versions of these properties that enable composition. We show how to compose protocols satisfying these properties so that the resulting combined protocol also satisfies these properties. Our approach generalizes well-known protocols (such as two-phase-locking and two-phase-commit) and leads to new protocols. We apply this theory to show how we can safely compose optimistic and pessimistic concurrency control. For example, we show how we can execute a transaction that accesses two objects, one controlled by an STM and another by locking.

References

  1. A fast and lightweight key/value database library by google. http://code.google.com/p/leveldb.Google ScholarGoogle Scholar
  2. H. Attiya, G. Ramalingam, and N. Rinetzky. Sequential verification of serializability. In Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, POPL ’10, pages 31–42, New York, NY, USA, 2010. ACM. ISBN 978-1-60558-479-9.. URL http://doi.acm.org/10.1145/1706299.1706305. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. C. Blundell. Abstract unrestricted transactional memory: Supporting i/o and system calls within transactions, 2006.Google ScholarGoogle Scholar
  4. N. Bronson. Scalastm, 2010. URL http://nbronson.github.io/scala-stm/.Google ScholarGoogle Scholar
  5. M. Cao, M. Zhang, and M. D. Bond. Drinking from both glasses: Adaptively combining pessimistic and optimistic synchronization for efficient parallel runtime support. In 5th Workshop on Determinism and Correctness in Parallel Programming, 2014.Google ScholarGoogle Scholar
  6. C. Cao Minh, J. Chung, C. Kozyrakis, and K. Olukotun. STAMP: Stanford transactional applications for multi-processing. In IISWC, 2008.Google ScholarGoogle ScholarCross RefCross Ref
  7. D. Cederman and P. Tsigas. Supporting lock-free composition of concurrent data objects. In Proceedings of the 7th ACM international conference on Computing frontiers, pages 53–62. ACM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. D. Dice, O. Shalev, and N. Shavit. Transactional locking ii. In DISC, pages 194–208, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. J. J. Duffy, M. M. Magruder, G. Graefe, D. Detlefs, and V. K. Grover. Combined pessimistic and optimistic concurrency control. US Patent 7,434,010 B2, 2008.Google ScholarGoogle Scholar
  10. G. Golan-Gueta, N. Bronson, A. Aiken, G. Ramalingam, M. Sagiv, and E. Yahav. Automatic fine-grain locking using shape properties. In OOPSLA, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. G. Golan-Gueta, G. Ramalingam, M. Sagiv, and E. Yahav. Concurrent libraries with foresight. In PLDI, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. G. Golan-Gueta, G. Ramalingam, M. Sagiv, and E. Yahav. Automatic scalable atomicity via semantic locking. In Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2015, San Francisco, CA, USA, February 7-11, 2015, pages 31–41, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. J. E. Gottschlich and J. Chung. Optimizing the concurrent execution of locks and transactions. In Proceedings of the 24th International Workshop on Languages and Compilers for Parallel Computing (LCPC), September 2011.Google ScholarGoogle Scholar
  14. V. Gramoli and R. Guerraoui. Reusable concurrent data types. In R. Jones, editor, ECOOP 2014 Object-Oriented Programming, volume 8586 of Lecture Notes in Computer Science, pages 182–206. Springer Berlin Heidelberg, 2014. ISBN 978-3-662-44201-2.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. R. Guerraoui and M. Kapalka. On the correctness of transactional memory. In Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP ’08, pages 175–184, New York, NY, USA, 2008. ACM. ISBN 978-1-59593-795- 7.. URL http://doi.acm.org/10.1145/1345206.1345233. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. T. Harris. Exceptions and side-effects in atomic blocks. Science of Computer Programming, 58(3):325 – 343, 2005. ISSN 0167-6423. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Special Issue on Concurrency and synchonization in Java programs Special Issue on Concurrency and synchronization in Java programs.Google ScholarGoogle Scholar
  18. T. Harris, J. Larus, and R. Rajwar. Transactional memory, 2nd edition. Synthesis Lectures on Computer Architecture, 5(1), 2010.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. M. Herlihy. Apologizing versus asking permission: Optimistic concurrency control for abstract data types. ACM Transactions on Database Systems, 15:96–124, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. M. Herlihy and E. Koskinen. 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, pages 207–216, New York, NY, USA, 2008. ACM. ISBN 978-1-59593-795-7.. URL http://doi.acm.org/10.1145/1345206.1345237. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. M. Herlihy, V. Luchangco, and M. Moir. Obstruction-free synchronization: Double-ended queues as an example. In Distributed Computing Systems, 2003. Proceedings. 23rd International Conference on, pages 522–529, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. M. P. Herlihy and J. M. Wing. Linearizability: A correctness condition for concurrent objects. TOPLAS, 12, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. S. Kempf, R. Veldema, and M. Philippsen. Combining lock inference with lock-based software transactional memory. In Springer, editor, Proceedings of the 26th International Workshop on Languages and Compilers for Parallel Computing (LCPC 2013), 2013.Google ScholarGoogle Scholar
  24. G. Korland, N. Shavit, and P. Felber. Noninvasive concurrency with java stm. In MULTIPROG, 2010.Google ScholarGoogle Scholar
  25. G. Lausen. Concurrency control in database systems: A step towards the integration of optimistic methods and locking. In Proceedings of the ACM ’82 Conference, ACM ’82, pages 64–68, New York, NY, USA, 1982. ACM. ISBN 0-89791-085-0. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Z. Ofri, A. Aiken, G. Golan-Gueta, G. Ramalingam, and M. Sagiv. Composing concurrency control. Technical report, 2015. In preparation.Google ScholarGoogle Scholar
  27. V. Prabhakaran, A. C. Arpaci-Dusseau, and R. H. Arpaci-Dusseau. Analysis and evolution of journaling file systems. In Proceedings of the annual conference on USENIX Annual Technical Conference, pages 8–8. USENIX Association, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. T. Riegel, P. Felber, and C. Fetzer. A lazy snapshot algorithm with eager validation. In Proceedings of the 20th International Conference on Distributed Computing, DISC’06, pages 284–298, Berlin, Heidelberg, 2006. Springer-Verlag. ISBN 3-540-44624-9, 978-3-540-44624-8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. M. Sheikhan and S. Ahmadluei. An intelligent hybrid optimistic/pessimistic concurrency control algorithm for centralized database systems using modified gsa-optimized art neural model. Neural Computing and Applications, 23(6):1815–1829, 2013. URL http://dx.doi.org/10.1007/s00521-012-1147-3.Google ScholarGoogle ScholarCross RefCross Ref
  30. A. Silberschatz and Z. Kedam. A family of locking protocols for database systems that are modeled by directed graphs. Software Engineering, IEEE Transactions on, (6):558–562, 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. T. Usui, R. Behrends, J. Evans, and Y. Smaragdakis. Adaptive locks: Combining transactions and locks for efficient concurrency. In PACT, pages 3–14, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. G. Weikum and G. Vossen. Transactional information systems: theory, algorithms, and the practice of concurrency control and recovery. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. ISBN 1-55860-508-8.Google ScholarGoogle Scholar

Index Terms

  1. Composing concurrency control

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 50, Issue 6
        PLDI '15
        June 2015
        630 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/2813885
        • Editor:
        • Andy Gill
        Issue’s Table of Contents
        • cover image ACM Conferences
          PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation
          June 2015
          630 pages
          ISBN:9781450334686
          DOI:10.1145/2737924

        Copyright © 2015 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 3 June 2015

        Check for updates

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!