ABSTRACT
We present a general theory of serializability, unifying a wide range of transactional algorithms, including some that are yet to come. To this end, we provide a compact semantics in which concurrent transactions PUSH their effects into the shared view (or UNPUSH to recall effects) and PULL the effects of potentially uncommitted concurrent transactions into their local view (or UNPULL to detangle). Each operation comes with simple criteria given in terms of commutativity (Lipton's left-movers and right-movers). The benefit of this model is that most of the elaborate reasoning (coinduction, simulation, subtle invariants, etc.) necessary for proving the serializability of a transactional algorithm is already proved within the semantic model. Thus, proving serializability (or opacity) amounts simply to mapping the algorithm on to our rules, and showing that it satisfies the rules' criteria.
- A BADI, M., B IRRELL, A., H ARRIS, T., AND I SARD, M. Semantics of transactional memory and automatic mutual exclusion. In The 35th ACM SIGPLAN SIGACT Symposium on Principles of Programming Languages (POPL’08) (2008), pp. 63–74. Google ScholarDigital Library
- B URCKHARDT, S., AND L EIJEN, D. Semantics of concurrent revisions. In Proceedings of the 20th European Symposium on Programming (ESOP’11) (2011), G. Barthe, Ed., vol. 6602, pp. 116–135. Google ScholarDigital Library
- B USHKOV, V., G UERRAOUI, R., AND K APALKA, M. On the liveness of transactional memory. In Proceedings of the Symposium on Principles of Distributed Computing (DISC’12) (2012), pp. 9–18. Google ScholarDigital Library
- C HEREM, S., C HILIMBI, T. M., AND G ULWANI, S. Inferring locks for atomic sections. In Proceedings of the ACM SIGPLAN 2008 Conference on Programming Language Design and Implementation (PLDI’08) (2008), pp. 304–315. Google ScholarDigital Library
- C OHEN, A., P NUELI, A., AND Z UCK, L. D. Mechanical verification of transactional memories with non-transactional memory accesses. In Proceedings of the 20th International Conference on Computer Aided Verification (CAV’08) (2008), vol. 5123, pp. 121–134. Google ScholarDigital Library
- D ICE, D., S HALEV, O., AND S HAVIT, N. Transactional Locking II. In Proceedings of the 20th International Symposium on Distributed Computing (DISC’06) (September 2006). Google ScholarDigital Library
- D IMITROV, D., R AYCHEV, V., V ECHEV, M., AND K OSKINEN, E. Commutativity race detection. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’14), Edinburgh, UK (2014). Google ScholarDigital Library
- F ELBER, P., F ETZER, C., AND R IEGEL, T. Dynamic performance tuning of word-based software transactional memory. In Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP ’08) (2008), pp. 237–246. Google ScholarDigital Library
- F ELBER, P., K ORLAND, G., AND S HAVIT, N. Deuce: Noninvasive concurrency with a Java STM. In Electronic Proceedings of the workshop on Programmability Issues for Multi-Core Computers (MULTIPROG) (2010).Google Scholar
- G UERRAOUI, R., AND K APALKA, M. On the correctness of transactional memory. In Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP’08) (2008), ACM, pp. 175–184. Google ScholarDigital Library
- H ERLIHY, M., AND K OSKINEN, 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). Google ScholarDigital Library
- H ERLIHY, M., AND K OSKINEN, E. Composable transactional objects: A position paper. In Proceedings of the 23rd European Symposium on Programming Languages and Systems (ESOP’14) (2014), vol. 8410, pp. 1–7.Google ScholarDigital Library
- H ERLIHY, M., L UCHANGCO, V., M OIR, M., AND S CHERER, III, W. N. Software transactional memory for dynamic-sized data structures. In Proceedings of the 22nd annual symposium on Principles of distributed computing (PODC’03) (2003), pp. 92–101. Google ScholarDigital Library
- H ERLIHY, M., AND M OSS, J. E. B. Transactional memory: Architectural support for lock-free data structures. In Proceedings of the 20th Annual International Symposium on Computer Architecture (ISCA’93) (1993), pp. 289–300. Google ScholarDigital Library
- IBM. Alphaworks Software Transactional Memory Compiler. http: //ibm.biz/alphaworks-stm-compiler.Google Scholar
- I NTEL. Transactional synchronization in haswell. http: //software.intel.com/en-us/blogs/2012/02/07/ transactional-synchronization-in-haswell.Google Scholar
- K IM, D., AND R INARD, M. C. Verification of semantic commutativity conditions and inverse operations on linked data structures. In Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’11) (2011), pp. 528– 541. Google ScholarDigital Library
- K OSKINEN, E., AND H ERLIHY, M. Checkpoints and continuations instead of nested transactions. In Proceedings of the 20th Annual ACM Symposium on Parallelism in Algorithms and Architectures (SPAA’08) (2008), pp. 160–168. Google ScholarDigital Library
- K OSKINEN, E., AND P ARKINSON, M. The push/pull model of transactions {extended version}. Tech. Rep. RC25529, IBM Research, 2015.Google Scholar
- K OSKINEN, E., P ARKINSON, M. J., AND H ERLIHY, M. Coarsegrained transactions. In Proceedings of the 37th ACM SIGPLANSIGACT Symposium on Principles of Programming Languages (POPL’10) (2010), ACM, pp. 19–30. Google ScholarDigital Library
- K ULKARNI, M., P INGALI, K., W ALTER, B., R AMANARAYANAN, G., B ALA, K., AND C HEW, L. P. Optimistic parallelism requires abstractions. In Proceedings of the ACM SIGPLAN 2007 Conference on Programming Language Design and Implementation (PLDI’07) (2007), pp. 211–222. Google ScholarDigital Library
- L ESANI, M., L UCHANGCO, V., AND M OIR, M. A framework for formally verifying software transactional memory algorithms. In Proceedings of the 23rd International Conference on Concurrency Theory (CONCUR’12) (2012), vol. 7454, pp. 516–530. Google ScholarDigital Library
- L ESANI, M., AND P ALSBERG, J. Communicating memory transactions. In Proceedings of the 16th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP’11) (2011), pp. 157–168. Google ScholarDigital Library
- L ESANI, M., AND P ALSBERG, J. Decomposing opacity. In Proceedings of the 28th International Symposium on Distributed Computing (DISC’14) (2014), pp. 391–405.Google Scholar
- L IPTON, R. J. Reduction: a method of proving properties of parallel programs. Commun. ACM 18, 12 (1975), 717–721. Google ScholarDigital Library
- L YNCH, N. A., AND T UTTLE, M. R. Hierarchical correctness proofs for distributed algorithms. In Proceedings of the 6th Annual ACM Symposium on Principles of Distributed Computing (PODC’87) (1987), pp. 137–151. Google ScholarDigital Library
- M ATVEEV, A., AND S HAVIT, N. Towards a fully pessimistic STM model. In Proceedings of the 2012 Workshop on Transactional Memory (TRANSACT12) (2012).Google Scholar
- M OORE, K. F., AND G ROSSMAN, D. High-level small-step operational semantics for transactions. In Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL’08) (2008), pp. 51–62. Google ScholarDigital Library
- M ORAVAN, M. J., B OBBA, J., M OORE, K. E., Y EN, L., H ILL, M. D., L IBLIT, B., S WIFT, M. M., AND W OOD, D. A. Supporting nested transactional memory in logTM. SIGOPS Operating Systems Review 40, 5 (2006), 359–370. Google ScholarDigital Library
- N I, Y., M ENON, V. S., A DL -T ABATABAI, A.-R., H OSKING, A. L., H UDSON, R. L., M OSS, J. E. B., S AHA, B., AND S HPEISMAN, T. Open nesting in software transactional memory. In Proceedings of the 12th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming (PPoPP’07) (2007), pp. 68–78. Google ScholarDigital Library
- P APADIMITRIOU, C. The serializability of concurrent database updates. Journal of the ACM (JACM) 26, 4 (1979), 631–653. Google ScholarDigital Library
- R AMADAN, H. E., R OY, I., H ERLIHY, M., AND W ITCHEL, E. Committing conflicting transactions in an stm. In Proceedings of the 14th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP ’09) (2009), pp. 163–172. Google ScholarDigital Library
- R IEGEL, T., F ETZER, C., AND F ELBER, P. Time-based transactional memory with scalable time bases. In Proceedings of the 19th Annual ACM Symposium on Parallelism in Algorithms and Architectures (SPAA’07) (2007), pp. 221–228. Google ScholarDigital Library
- S AHA, B., A DL -T ABATABAI, A.-R., H UDSON, R. L., M INH, C. C., AND H ERTZBERG, B. McRT-STM: a high performance software transactional memory system for a multi-core runtime. In Proceedings of the 11th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP’06) (2006), pp. 187–197. Google ScholarDigital Library
- S PEAR, M., D ALESSANDRO, L., M ARATHE, V., AND S COTT, M. A comprehensive strategy for contention management in software transactional memory. In Proceedings of the 14th ACM SIGPLAN Symposium on Principles and practice of parallel programming (PPoPP’09) (2009). Google ScholarDigital Library
- S PEAR, M. F., M ARATHE, V. J., D ALESSANDRO, L., AND S COTT, M. L. Privatization techniques for software transactional memory. In Proceedings of the 26th Annual ACM Symposium on Principles of Distributed Computing (PODC’07) (2007), pp. 338–339. Google ScholarDigital Library
- W ANG, A., G AUDET, M., W U, P., A MARAL, J. N., O HMACHT, M., B ARTON, C., S ILVERA, R., AND M ICHAEL, M. Evaluation of blue gene/q hardware support for transactional memories. In Proceedings of the 21st International Conference on Parallel Architectures and Compilation Techniques (2012), pp. 127–136. Google ScholarDigital Library
- W EIHL, W. E. Data-dependent concurrency control and recovery (extended abstract). In Proceedings of the 2nd annual ACM symposium on Principles of Distributed Computing (PODC’83) (1983), ACM Press, pp. 63–75. Google ScholarDigital Library
- W ELC, A., S AHA, B., AND A DL -T ABATABAI, A.-R. Irrevocable transactions and their applications. In Proceedings of the 20th Annual Symposium on Parallelism in Algorithms and Architectures (SPAA’08) (2008), ACM, pp. 285–296. Introduction Overview Language and Atomic Semantics The Push/Pull Model Serializability Implementations Implementations That Are Yet to Come Related Work Conclusions and Future Work Google ScholarDigital Library
Index Terms
- The Push/Pull model of transactions
Recommendations
The Push/Pull model of transactions
PLDI '15We present a general theory of serializability, unifying a wide range of transactional algorithms, including some that are yet to come. To this end, we provide a compact semantics in which concurrent transactions PUSH their effects into the shared view ...
Coarse-grained transactions
POPL '10: Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languagesTraditional transactional memory systems suffer from overly conservative conflict detection, yielding so-called false conflicts, because they are based on fine-grained, low-level read/write conflicts. In response, the recent trend has been toward ...
Coarse-grained transactions
POPL '10Traditional transactional memory systems suffer from overly conservative conflict detection, yielding so-called false conflicts, because they are based on fine-grained, low-level read/write conflicts. In response, the recent trend has been toward ...
Comments