Skip to main content

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 8913))

Abstract

Disjoint-access parallelism captures the requirement that unrelated transactions progress independently, without interference, even if they occur at the same time. That is, an implementation should not cause two transactions, which are unrelated at the high-level, i.e. they access disjoint sets of data items, to simultaneously access the same low-level shared memory locations. This chapter will formalize this notion and will discuss if and when STM can achieve disjoint-access parallelism, by presenting impossibility results and discussing some of the disjoint-access parallel STM implementations. For example, no dynamic STM can be disjoint-access parallel, if it ensures wait-freedom for read-only transactions and a weak liveness property, known as minimal progress, for update transactions. In fact, even if transactions are static, STM implementations cannot be disjoint-access parallel, when read-only transactions must be wait-free and invisible. These impossibility results hold even when only snapshot isolation is required for the STM, and not stronger conditions like opacity or strict serializability. The second of these impossibility results holds for serializable STM as well.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Attiya, H., Ellen, F., Fatourou, P.: The complexity of updating snapshot objects. Journal of Parallel and Distributed Computing 71(12), 1570–1577 (2011)

    Article  MATH  Google Scholar 

  2. Attiya, H., Guerraoui, R., Hendler, D., Kuznetsov, P.: The complexity of obstruction-free implementations. J. ACM 56(4) (2009)

    Google Scholar 

  3. Attiya, H., Hans, S.: Transactions are back—but how different they are? In: TRANSACT 2012 (2012)

    Google Scholar 

  4. Attiya, H., Hillel, E.: The cost of privatization in software transactional memory. IEEE Transactions on Computers 62, 2531–2543 (2013)

    Article  MathSciNet  Google Scholar 

  5. Attiya, H., Hillel, E., Milani, A.: Inherent limitations on disjoint-access parallel implementations of transactional memory. Theory Comput. Syst. 49(4), 698–719 (2011)

    Article  MathSciNet  MATH  Google Scholar 

  6. Attiya, H., Welch, J.L.: Distributed Computing: Fundamentals, Simulations and Advanced Topics, 2nd edn. Wiley (2004)

    Google Scholar 

  7. Avni, H., Shavit, N.: Maintaining consistent transactional states without a global clock. In: Shvartsman, A.A., Felber, P. (eds.) SIROCCO 2008. LNCS, vol. 5058, pp. 131–140. Springer, Heidelberg (2008), http://dx.doi.org/10.1007/978-3-540-69355-0_12

    Chapter  Google Scholar 

  8. Barnes, G.: A method for implementing lock-free shared-data structures. In: SPAA 1993, pp. 261–270 (1993)

    Google Scholar 

  9. Berenson, H., Bernstein, P., Gray, J., Melton, J., O’Neil, E., O’Neil, P.: A critique of ANSI SQL isolation levels. In: Proceedings of the 1995 ACM SIGMOD International Conference on Management of Data (SIGMOD 1995), pp. 1–10 (1995)

    Google Scholar 

  10. Bushkov, V., Dziuma, D., Fatourou, P., Guerraoui, R.: Snapshot isolation does not scale either. In: WTTM 2013 (2013)

    Google Scholar 

  11. Bushkov, V., Dziuma, D., Fatourou, P., Guerraoui, R.: The pcl theorem: Transactions cannot be parallel, consistent and live. In: Proceedings of the 26th ACM Symposium on Parallelism in Algorithms and Architectures, SPAA 2014, pp. 178–187. ACM, New York (2014), http://doi.acm.org/10.1145/2612669.2612690

    Google Scholar 

  12. Bushkov, V., Guerraoui, R., Kapałika, M.: On the liveness of transactional memory. In: ACM Symposium on Principles of Distributed Computing (PODC 2012), pp. 9–18 (2001)

    Google Scholar 

  13. Dice, D., Shavit, N.: What really makes transactions faster? In: Proc. of the 1st TRANSACT 2006 Workshop (2006)

    Google Scholar 

  14. Dice, D., Matveev, A., Shavit, N.: Implicit privatization using private transactions. In: 5th ACM SIGPLAN Workshop on Transactional Computing (TRANSACT 2010) (2010)

    Google Scholar 

  15. Dice, D., Shalev, O., Shavit, N.N.: Transactional locking II. In: Dolev, S. (ed.) DISC 2006. LNCS, vol. 4167, pp. 194–208. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  16. Dice, D., Shavit, N.: Tlrw: return of the read-write lock. In: Proceedings of the 22nd ACM Symposium on Parallelism in Algorithms and Architectures, SPAA 2010, pp. 284–293. ACM, New York (2010), http://doi.acm.org/10.1145/1810479.1810531

    Google Scholar 

  17. Doherty, S., Groves, L., Luchangco, V., Moir, M.: Towards formally specifying and verifying transactional memory. Formal Aspects of Computing 25(5), 769–799 (2013)

    Article  MathSciNet  MATH  Google Scholar 

  18. Ellen, F., Fatourou, P., Kosmas, E., Milani, A., Travers, C.: Universal constructions that ensure disjoint-access parallelism and wait-freedom. In: ACM Symposium on Principles of Distributed Computing (PODC 2012), pp. 115–124 (2012)

    Google Scholar 

  19. Fatourou, P., Dziuma, D., Kanellou, E.: Consistency for transactional memory computing. Bulletin of European Association for Theoretical Computer Science (EATCS) 113 (June 2014)

    Google Scholar 

  20. Felber, P., Fetzer, C., Riegel, 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 2008, pp. 237–246. ACM, New York (2008), http://doi.acm.org/10.1145/1345206.1345241

    Google Scholar 

  21. Fraser, K.: Practical lock freedom. Ph.D. thesis, Cambridge University Computer Laboratory (2003), also available as Technical Report UCAM-CL-TR-579

    Google Scholar 

  22. Gramoli, V., Harmanci, D., Felber, P.: Toward a theory of input acceptance for transactional memories. In: Baker, T.P., Bui, A., Tixeuil, S. (eds.) OPODIS 2008. LNCS, vol. 5401, pp. 527–533. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  23. Guerraoui, R., Henzinger, T.A., Singh, V.: Permissiveness in transactional memories. In: Taubenfeld, G. (ed.) DISC 2008. LNCS, vol. 5218, pp. 305–319. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  24. Guerraoui, R., Kapałka, M.: On obstruction-free transactions. In: SPAA 2008, pp. 304–313 (2008)

    Google Scholar 

  25. Guerraoui, R., Kapałka, M.: On the correctness of transactional memory. In: Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP 2008), pp. 175–184 (2008)

    Google Scholar 

  26. Guerraoui, R., Kapałka, M.: The semantics of progress in lock-based transactional memory. In: Proceedings of the 36th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2009), pp. 404–415 (2009)

    Google Scholar 

  27. Guerraoui, R., Kapałka, M.: Principles of Transactional Memory. Synthesis Lectures on Distributed Computing. Morgan & Claypool Publishers (2010)

    Google Scholar 

  28. Herlihy, M.: A methodology for implementing highly concurrent data structures. In: Proceedings of the Second ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming, PPOPP 1990, pp. 197–206. ACM, New York (1990), http://doi.acm.org/10.1145/99163.99185

    Google Scholar 

  29. Herlihy, M.: Wait-free synchronization. ACM Trans. Program. Lang. Syst. 13(1), 124–149 (1991)

    Article  Google Scholar 

  30. Herlihy, M., Luchangco, V., Moir, M., Scherer III, W.N.: Software transactional memory for dynamic-sized data structures. In: Proceedings of the Twenty-Second ACM Symposium on Principles of Distributed Computing (PODC 2003), pp. 92–101 (2003)

    Google Scholar 

  31. Herlihy, M., Moss, J.E.B.: Transactional memory: Architectural support for lock-free data structures. In: Proceedings of the 20th Annual International Symposiupm on Computer Architecture (ISCA 1993) (1993)

    Google Scholar 

  32. Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming. Morgan Kaufmann (2008)

    Google Scholar 

  33. Herlihy, M.P., Wing, J.M.: Linearizability: A correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12(3), 463–492 (1990)

    Article  Google Scholar 

  34. Imbs, D., Raynal, M., de Mendivil, J.R.: Brief announcement: virtual world consistency: A new condition for stm systems. In: Proceedings of the 28th Annual ACM Symposium on Principles of Distributed Computing (PODC 2009), pp. 280–281 (2009)

    Google Scholar 

  35. Israeli, A., Rappoport, L.: Disjoint-access-parallel implementations of strong shared memory primitives. In: Proceedings of the Twenty-Third Annual ACM Symposium on Principles of Distributed Computing (PODC 2004), pp. 151–160 (2004)

    Google Scholar 

  36. Keidar, I., Perelman, D.: On avoiding spare aborts in transactional memory. In: SPAA 2009, pp. 59–68 (2009)

    Google Scholar 

  37. Lamport, L.: Proving the correctness of multiprocess programs. IEEE Transactions on Software Engineering SE 3(2), 125–143 (1977)

    Article  MathSciNet  MATH  Google Scholar 

  38. Lamport, L.: How to make a multiprocessor computer that correctly executes multiprocess program. IEEE Transactions on Computers 100(28), 690–691 (1979)

    Article  MATH  Google Scholar 

  39. Larus, J.R., Rajwar, R.: Transactional Memory. Morgan and Claypool (2007)

    Google Scholar 

  40. Lu, S., Bernstein, A., Lewis, P.: Correct execution of transactions at different isolation levels. IEEE Transactions on Knowledge and Data Engineering 16(9), 1070–1081 (2004)

    Article  Google Scholar 

  41. Marathe, V.J., Scherer, W.N., Scott, M.L.: Design tradeoffs in modern software transactional memory systems. In: Proceedings of the 7th Workshop on Workshop on Languages, Compilers, and Run-time Support for Scalable Systems, LCR 2004, pp. 1–7. ACM, New York (2004), http://doi.acm.org/10.1145/1066650.1066660

    Chapter  Google Scholar 

  42. Papadimitriou, C.H.: The serializability of concurrent database updates. J. ACM 26(4), 631–653 (1979)

    Article  MathSciNet  MATH  Google Scholar 

  43. Perelman, D., Fan, R., Keidar, I.: On maintaining multiple versions in STM. In: Proceedings of the 29th Annual ACM Symposium on Principles of Distributed Computing (PODC 2010), pp. 16–25 (2010)

    Google Scholar 

  44. Rajwar, R., Goodman, J.R.: Transactional lock-free execution of lock-based programs. In: Proceedings of the 10th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2002), pp. 5–17 (2002)

    Google Scholar 

  45. Riegel, T., Fetzer, C., Felber, P.: Snapshot isolation for software transactional memory. In: First ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing (TRANSACT 2006) (2006)

    Google Scholar 

  46. Shavit, N., Touitou, D.: Software transactional memory. In: PODC 1995, pp. 204–213 (1995)

    Google Scholar 

  47. Tabba, F., Moir, M., Goodman, J.R., Hay, A.W., Wang, C.: Nztm: nonblocking zero-indirection transactional memory. In: Proceedings of the Twenty-first Annual Symposium on Parallelism in Algorithms and Architectures, SPAA 2009, pp. 204–213. ACM, New York (2009), http://doi.acm.org/10.1145/1583991.1584048

    Chapter  Google Scholar 

  48. Turek, J., Shasha, D., Prakash, S.: Locking without blocking: making lock based concurrent data structure algorithms nonblocking. In: Proceedings of the Eleventh ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems (PODS 1992), pp. 212–222 (1992)

    Google Scholar 

  49. Weikum, G., Vossen, G.: Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery. Morgan Kaufmann, San Francisco (2001)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this chapter

Cite this chapter

Attiya, H., Fatourou, P. (2015). Disjoint-Access Parallelism in Software Transactional Memory. In: Guerraoui, R., Romano, P. (eds) Transactional Memory. Foundations, Algorithms, Tools, and Applications. Lecture Notes in Computer Science, vol 8913. Springer, Cham. https://doi.org/10.1007/978-3-319-14720-8_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-14720-8_4

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-14719-2

  • Online ISBN: 978-3-319-14720-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics