Advertisement

Unifying Memory and Database Transactions

  • Ricardo J. Dias
  • João M. Lourenço
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5704)

Abstract

Software Transactional Memory is a concurrency control technique gaining increasing popularity, as it provides high-level concurrency control constructs and eases the development of highly multi-threaded applications. But this easiness comes at the expense of restricting the operations that can be executed within a memory transaction, and operations such as terminal and file I/O are either not allowed or incur in serious performance penalties. Database I/O is another example of operations that usually are not allowed within a memory transaction. This paper proposes to combine memory and database transactions in a single unified model, benefiting from the ACID properties of the database transactions and from the speed of main memory data processing. The new unified model covers, without differentiating, both memory and database operations. Thus, the users are allowed to freely intertwine memory and database accesses within the same transaction, knowing that the memory and database contents will always remain consistent and that the transaction will atomically abort or commit the operations in both memory and database. This approach allows to increase the granularity of the in-memory atomic actions and hence, simplifies the reasoning about them.

Keywords

Hash Table Transactional Memory Database Transaction Database Operation Transactional Model 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Gray, J., Reuter, A.: Transaction Processing: Concepts and Techniques. Morgan Kaufmann Publishers Inc., San Francisco (1992)zbMATHGoogle Scholar
  2. 2.
    Dice, D., Shalev, O., Shavit, N.: Transactional locking II. In: Dolev, S. (ed.) DISC 2006. LNCS, vol. 4167, pp. 194–208. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  3. 3.
    Cachopo, J., Rito-Silva, A.: Versioned boxes as the basis for memory transactions. Sci. Comput. Program. 63, 172–185 (2006)MathSciNetCrossRefzbMATHGoogle Scholar
  4. 4.
    Herlihy, M., Luchangco, V., Moir, M., William, N., Scherer, I.: Software transactional memory for dynamic-sized data structures. In: PODC 2003: Proceedings of the twenty-second annual symposium on Principles of distributed computing, pp. 92–101. ACM, New York (2003)CrossRefGoogle Scholar
  5. 5.
    Luke, D., Marathe, V.J., Spear, M.F., Scott, M.L.: Capabilities and limitations of library-based software transactional memory in c++. In: Proceedings of the 2nd ACM SIGPLAN Workshop on Transactional Computing, Portland, OR (2007)Google Scholar
  6. 6.
    Harris, T., Fraser, K.: Language support for lightweight transactions. In: OOPSLA 2003: Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, pp. 388–402. ACM, New York (2003)CrossRefGoogle Scholar
  7. 7.
    Harris, T., Marlow, S., Peyton-Jones, S., Herlihy, M.: Composable memory transactions. In: PPoPP 2005: Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, pp. 48–60. ACM, New York (2005)Google Scholar
  8. 8.
    Felber, P., Fetzer, C., Müller, U., Riegel, T., Süßkraut, M., Sturzrehm, H.: Transactifying applications using an open compiler framework. In: Proceedings of the 2nd ACM SIGPLAN Workshop on Transactional Computing (2007)Google Scholar
  9. 9.
    Ni, Y., Welc, A., Adl-Tabatabai, A.R., Bach, M., Berkowits, S., Cownie, J., Geva, R., Kozhukow, S., Narayanaswamy, R., Olivier, J., Preis, S., Saha, B., Tal, A., Tian, X.: Design and implementation of transactional constructs for c/c++. SIGPLAN Not. 43, 195–212 (2008)CrossRefGoogle Scholar
  10. 10.
    Dias, R., Lourenço, J., Cunha, G.: Developing libraries using software transactional memory. ComSIS 5, 104–117 (2008)CrossRefGoogle Scholar
  11. 11.
    Blundell, C., Lewis, E.C., Martin, M.M.K.: Unrestricted transactional memory: Supporting i/o and system calls within transactions. Technical Report CIS-06-09, Department of Computer and Information Science, University of Pennsylvania (2006)Google Scholar
  12. 12.
    Harris, T.: Exceptions and side-effects in atomic blocks. Sci. Comput. Program. 58, 325–343 (2005)MathSciNetCrossRefzbMATHGoogle Scholar
  13. 13.
    Kotselidis, C., Ansari, M., Jarvis, K., Luján, M., Kirkham, C., Watson, I.: Distm: A software transactional memory framework for clusters. In: ICPP 2008: Proceedings of the 2008 37th International Conference on Parallel Processing, Washington, DC, USA, pp. 51–58. IEEE Computer Society, Los Alamitos (2008)CrossRefGoogle Scholar
  14. 14.
    Cunha, G.: Consistent state software transactional memory. Master’s thesis, Universidade Nova de Lisboa (2007)Google Scholar
  15. 15.
    Lourenço, J., Cunha, G.: Testing patterns for software transactional memory engines. In: PADTAD 2007: Proceedings of the 2007 ACM workshop on Parallel and distributed systems: testing and debugging, pp. 36–42. ACM, New York (2007)CrossRefGoogle Scholar
  16. 16.
    Gray, J.: Notes on data base operating systems. Operating Systems, 393–481 (1978)Google Scholar
  17. 17.
    Berenson, H., Bernstein, P., Gray, J., Melton, J., O’Neil, E., O’Neil, P.: A critique of ansi sql isolation levels. In: SIGMOD 1995: Proceedings of the 1995 ACM SIGMOD international conference on Management of data, pp. 1–10. ACM, New York (1995)CrossRefGoogle Scholar
  18. 18.
    Postgresql database management system, http://www.postgresql.com
  19. 19.
    Fekete, A., Liarokapis, D., O’Neil, E., O’Neil, P., Shasha, D.: Making snapshot isolation serializable. ACM Trans. Database Syst. 30, 492–528 (2005)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Ricardo J. Dias
    • 1
  • João M. Lourenço
    • 1
  1. 1.CITI—Centre for Informatics and Information Technology, and Departamento de InformáticaUniversidade Nova de LisboaPortugal

Personalised recommendations