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.
- A fast and lightweight key/value database library by google. http://code.google.com/p/leveldb.Google Scholar
- 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 Scholar
Digital Library
- C. Blundell. Abstract unrestricted transactional memory: Supporting i/o and system calls within transactions, 2006.Google Scholar
- N. Bronson. Scalastm, 2010. URL http://nbronson.github.io/scala-stm/.Google Scholar
- 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 Scholar
- C. Cao Minh, J. Chung, C. Kozyrakis, and K. Olukotun. STAMP: Stanford transactional applications for multi-processing. In IISWC, 2008.Google Scholar
Cross Ref
- 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 Scholar
Digital Library
- D. Dice, O. Shalev, and N. Shavit. Transactional locking ii. In DISC, pages 194–208, 2006. Google Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- G. Golan-Gueta, G. Ramalingam, M. Sagiv, and E. Yahav. Concurrent libraries with foresight. In PLDI, 2013. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- T. Harris. Exceptions and side-effects in atomic blocks. Science of Computer Programming, 58(3):325 – 343, 2005. ISSN 0167-6423. Google Scholar
Digital Library
- Special Issue on Concurrency and synchonization in Java programs Special Issue on Concurrency and synchronization in Java programs.Google Scholar
- T. Harris, J. Larus, and R. Rajwar. Transactional memory, 2nd edition. Synthesis Lectures on Computer Architecture, 5(1), 2010.. Google Scholar
Digital Library
- M. Herlihy. Apologizing versus asking permission: Optimistic concurrency control for abstract data types. ACM Transactions on Database Systems, 15:96–124, 1990. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- M. P. Herlihy and J. M. Wing. Linearizability: A correctness condition for concurrent objects. TOPLAS, 12, 1990. Google Scholar
Digital Library
- 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 Scholar
- G. Korland, N. Shavit, and P. Felber. Noninvasive concurrency with java stm. In MULTIPROG, 2010.Google Scholar
- 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 Scholar
Digital Library
- Z. Ofri, A. Aiken, G. Golan-Gueta, G. Ramalingam, and M. Sagiv. Composing concurrency control. Technical report, 2015. In preparation.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- ISBN 1-55860-508-8.Google Scholar
Index Terms
Composing concurrency control
Recommendations
Composing concurrency control
PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and ImplementationConcurrency 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, ...
Semantics-based concurrency control: beyond commutativity
The concurrency of transactions executing on atomic data types can be enhanced through the use of semantic information about operations defined on these types. Hitherto, commutativity of operations has been exploited to provide enchanced concurrency ...
Rethinking serializable multiversion concurrency control
Multi-versioned database systems have the potential to significantly increase the amount of concurrency in transaction processing because they can avoid read-write conflicts. Unfortunately, the increase in concurrency usually comes at the cost of ...






Comments