Advertisement

Einsatz von ACID-Transaktionen im Wandel der Zeit

  • Peter MandlEmail author
Spektrum
  • 21 Downloads

Zusammenfassung

Die ACID-Transaktion ist ein starkes Konzept für die Entwicklung von Anwendungen, bei denen die Konsistenz der Daten essentiell ist. Es hat seinen Ursprung in der klassischen Transaktionsverarbeitung der 70er und 80er Jahre des letzten Jahrtausends im Kontext von Datenbanken und Transaktionsmonitoren, insbesondere für stark interaktive und nebenläufige betriebliche Anwendungen. Zunächst etablierte sich das Konzept für Anwendungen, die nur eine einzige, später auch mehrere Datenbanken in lokalen Transaktionen nutzen. Ab Mitte der 80er Jahre entwickelte man das Konzept dann für verteilte Anwendungen mit mehreren Datenbanken oder Message Queuing Systemen (allgemein als Ressourcenmanager bezeichnet) weiter. Es wurde damit allerdings auch weit komplexer und fehleranfälliger. Verteilte Koordinationsprotokolle, auch als Commit-Protokolle bezeichnet, wurden in Middleware-Lösungen integriert. Die Schwächen von Commit-Protokollen wegen der Notwendigkeit der zentralen Koordination erschwerten oft die praktische Nutzung verteilter Transaktionen. Trotzdem versuchte man das Konzept auch für serviceorientierten Architekturen, insbesondere für Webservices zu adaptieren. Umfangreiche Spezifikationen wurden erstellt. In den letzten Jahren ging man im praktischen Einsatz der Transaktionsverarbeitung wieder zurück zu den Wurzeln, wie insbesondere bei Microservice-Architekturen beobachtet werden kann. Aber auch das Saga-Transaktionsmodell wird für Microservice-Architekturen in Erwägung gezogen. Auch der dedizierte Einsatz von ACID-Transaktionen bei stark replizierten Lösungsansätzen insbesondere bei NoSQL-Datenbanken ist aktuell im Kommen.

Schlüsselwörter

Transaktion ACID Flache Transaktion Saga Verteilte Transaktion CORBA OTS DTP-Modell XA JTA Webservices Microservice REST 

Use of ACID Transactions in the Course of Time

Abstract

The ACID transaction is a powerful concept for developing applications where data consistency is essential. It has its origins in the classical transaction processing of the 70s and 80s of the last millenium in the context of databases and transaction monitors, especially for highly interactive and concurrent business applications. Initially, the concept established itself for applications that use only a single database in local transactions, and later several databases as well. From the mid-1980s, the concept was further developed for distributed applications with multiple databases or message queuing systems (commonly referred to as resource managers). However, it also became far more complex and error-prone. Distributed coordination protocols, also known as commit protocols, were integrated into middleware solutions. The weaknesses of commit protocols due to the need for centralized coordination often hampered the practical use of distributed transactions. Nevertheless, attempts were also made to adapt the concept for service-oriented architectures, in particular for web services. Extensive specifications were developed. In recent years, the practical use of transaction processing has returned to its roots, as can be observed in microservice architectures in particular. But the Saga transaction model is also being considered for microservice architectures. The dedicated use of ACID transactions for highly replicated solutions, especially for NoSQL databases, is also currently on the rise.

Keywords

Transaction ACID Flat Transaction Saga Distributed Transaction CORBA OTS DTP Model XA JTA Webservices Microservice REST 

Notes

Danksagung

Bedanken möchte ich mich ganz herzlich bei den Gutachtern für die wertvollen Verbesserungsvorschläge und Anregungen.

Literatur

  1. Abadi DJ (2012) Consistency tradeoffs in modern distributed database system design: CAP is only part of the story. Computer 45(2):37–42.  https://doi.org/10.1109/MC.2012.33 CrossRefGoogle Scholar
  2. Bernstein PA, Newcomer E (1997) Principles of transaction processing. Morgan Kaufman Publishers, BurlingtonzbMATHGoogle Scholar
  3. Bernstein PA, Hadzilacos V, Goodman N (1987) Concurrency control and recovery. Addison-Wesley, LongmanGoogle Scholar
  4. Brewer E (2012) CAP twelve years later: how the “rules” have changed. Computer 45(2):23–29CrossRefGoogle Scholar
  5. Chappell DA (2009) Enterprise service bus. O’Reilly Media, SebastopolGoogle Scholar
  6. Coulouris G, Dollimore J, Kindberg T, Blair G (2017) Distributed systems: concepts and design, 5. Aufl. Prentice-Hall, EssexzbMATHGoogle Scholar
  7. Coward D (2015) Java EE 7: the big picture. McGraw-Hill Education, USAGoogle Scholar
  8. Database Trends and Applications (2018) Limitations in MongoDB transactions. http://www.dbta.com/Columns/MongoDB-Matters/Limitations-in-MongoDB-Transactions-127057.aspx. Zugegriffen: 23. Okt. 2019
  9. Elmagarmid AK (1992) Database transaction models for advanced applications. Morgan Kaufmann, BurlingtonGoogle Scholar
  10. Fielding RT (2000) Architectural styles and the design of network-based software architectures, dissertation, university of California, Irvine. https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm. Zugegriffen: 7. Mai 2019
  11. Fowler M, Levis J (2014) Microservices—a definition of this new architectural term. https://martinfowler.com/articles/microservices.html. Zugegriffen: 4. Mai 2019
  12. Garcia-Molina H, Salem K (1987) SAGAS. Proceedings of the 1987 ACM SIGMOD international conference on Management of data, S 249–259CrossRefGoogle Scholar
  13. Google Inc., Corbett JC, Dean J, Epstein M et al (2012) Spanner: Google’s globally-distributed database. 10th USENIX Symposium on Operating Systems Design and Implementation (OSDI ’12, S 251–264Google Scholar
  14. Gray J (1981) The transaction concept: virtues and limitations. In: Proceeedings of the 7th International Conference on Very Large Database Systems. ACM, New York, S 144–154Google Scholar
  15. Gray J, Lamport L (2005) Consensus on transaction commit, microsoft research, techreport-number MSR-TR-2003-96, 2005. http://research.microsoft.com/apps/pubs/default.aspx?id=64636. Zugegriffen: 3. Mai 2019Google Scholar
  16. Gray J, Reuter A (1993) Transaction processing. Concepts and techniques. Morgan Kaufmann Series in Data Management SystemszbMATHGoogle Scholar
  17. Gray J, Lorie R, Putzolu F, Traiger I (1976) Granularity of locks and degrees of consistency in a large shared data base. In: Modeling in data bases management systems. Elsevier North-Holland, New York, S 365–394Google Scholar
  18. Gray J, McJones PR, Blasgen MW, Lorie RA, Price TG, Putzolu GR, Traiger IL (1981) The recovery manager of system R database manager. Acm Comput Surv 13(2):223–242CrossRefGoogle Scholar
  19. Hackernoon.com (2019) Fescar: a distributed transaction solution open sourced by Alibaba. https://hackernoon.com/fescar-a-distributed-transaction-solution-open-sourced-by-alibaba-f70c9b4c72a1. Zugegriffen: 29. Okt. 2019Google Scholar
  20. Härder T, Rahm E (1999) Datenbanksysteme: Konzepte und Techniken der Implementierung. Springer, Berlin HeidelbergzbMATHCrossRefGoogle Scholar
  21. Härder T, Reuter A (1983) Principles of transaction-oriented database recovery. ACM Comput Surv 15(4):287–317MathSciNetCrossRefGoogle Scholar
  22. ISO/IEC (1984) ISO/IEC 7498 Open Systems Interconnection—Basic Reference ModelGoogle Scholar
  23. ISO/IEC (1990) ISO/IEC 9804 Information Technology—Open Systems Interconnection—Service Definition for the Commitment, Concurrency and Recovery Service ElementGoogle Scholar
  24. ISO/IEC (1992a) ISO/IEC 10026‑1 Information Technology—Open Systems Interconnection—Distributed Transaction Processing—Part 2: OSI TP ModelGoogle Scholar
  25. ISO/IEC (1992b) ISO/IEC 10026‑2 Information Technology—Open Systems Interconnection—Distributed Transaction Processing—Part 2: OSI TP ServiceGoogle Scholar
  26. ISO/IEC (2016) ISO/IEC 9075 standard: “Information technology—Database languages—SQL”Google Scholar
  27. Kleppmann M (2017) Designing data-intensive applications. O’Reilly Media, SebastopolGoogle Scholar
  28. Kudoa T, Ishinob M, Saotomec K, Kataoka N (2016) A proposal of transaction processing method for MongoDB. 20th International Conference on Knowledge Based and Intelligent Information and Engineering Systems. Procedia Comput Sci 96:801–810CrossRefGoogle Scholar
  29. Linhoff-Popien C (1998) CORBA Kommunikation und Management. Springer, BerlinzbMATHGoogle Scholar
  30. Lotfy A, Saleh AI, Ali HA, El-Ghareeb HA (2016) A middle layer solution to support ACID properties for NoSQL databases. J King Saud Univ Inf Sci Arch 28(1):133–145Google Scholar
  31. Mandl P (2009) Masterkurs Verteilte betriebliche Informationssysteme. Prinzipien, Architekturen und Technologien. Vieweg+Teubner, WiesbadenGoogle Scholar
  32. Mandl P (2012) Ist SOA obsolet? – Eine kritische Betrachtung. PIK Prax Informationsverarb Kommun 35(2):119–123.  https://doi.org/10.1515/pik-2012-0020 CrossRefGoogle Scholar
  33. Mandl P, Bauer N (2002) Web-Transaktionen: Entwurfsmuster und Realisierungsansätze. HMD Prax Wirtschaftsinform 228:104–114Google Scholar
  34. Meyer-Wegener K (1988) Transaktionssysteme: Funktionsumfang, Realisierungsmöglichkeiten, Leistungsverhalten. B. G. Teubner, StuttgartCrossRefGoogle Scholar
  35. Mongo D (2018) MongoDB Announces Multi-Document ACID Transactions in Release 4.0. https://www.mongodb.com/press/mongodb-announces-multi-document-acid-transactions-in-release-40. Zugegriffen: 23. Okt. 2019Google Scholar
  36. Moss E (1985) Information systems: nested transactions: an approach to reliable distributed computing. MIT Press, CambridgeGoogle Scholar
  37. OASIS (2007a) Web services atomic transaction (WS-atomictransaction) version 1.1. http://docs.oasis-open.org/ws-tx/wstx-wsat-1.1-spec-errata-os.pdf. Zugegriffen: 4. Mai 2019Google Scholar
  38. OASIS (2007b) Web services business activity (WS-business activity) version 1.1. http://docs.oasis-open.org/ws-tx/wstx-wsba-1.1-spec-os.pdf. Zugegriffen: 7. Mai 2019Google Scholar
  39. OASIS (2009) Web services coordination framework specification (WS-CF), version 1.2. http://docs.oasis-open.org/ws-tx/wstx-wscoor-1.2-spec-os.pdfOpen. Zugegriffen: 4. Mai 2019Google Scholar
  40. OMG (2003) Transaction service specification; V1.4. https://www.omg.org/spec/TRANS/1.4/PDF. Zugegriffen: 7. Mai 2019Google Scholar
  41. Open Group (1991) Distributed transaction processing: the XA specification, CAE specification, X/open company Ltd., U.KGoogle Scholar
  42. Open Group (1992) Distributed transaction processing: the TX (transaction Demarcaton) specification, preliminary specification, X/open company Ltd., U.KGoogle Scholar
  43. Open Group (1993) Distributed transaction processing: reference model version 2, X/open company Ltd., U.KGoogle Scholar
  44. Ramamritham K, Chrysanthis PK (1997) Advances in concurrency control and transaction processing. IEEE Computer Society Press, Los Alamitos, CA, USAGoogle Scholar
  45. Richardsen C (2019) Microservices patterns. Manning Publications, Shelter IslandGoogle Scholar
  46. Rudrabhatla CK (2018) Comparison of event choreography and orchestration techniques in microservice architecture. Int J Adv Comput Sci Appl 9(8):18–22.  https://doi.org/10.14569/IJACSA.2018.090804 CrossRefGoogle Scholar
  47. Schlimm N (2010) Serviceorientierte Architektur – eine Standortanalyse. Informatik Spektrum 3(33):282–287MathSciNetCrossRefGoogle Scholar
  48. Shute J, Vingralek R, Samwel B, Handy B et al (2013) F1: a distributed SQL database that scales. Proc VLDB Endow 6(11):1068–1079CrossRefGoogle Scholar
  49. Siegel J (2001) CORBA 3. John Wiley & Sons Inc, New YorkGoogle Scholar
  50. Steyer M, Schwichtenberg H, Fischer M, Krause J (2013) Verteilte Systeme und Services mit .NET 4.5: Konzepte und Lösungen für WCF 4. Hanser, MünchenCrossRefGoogle Scholar
  51. Tai S, Eberhardt J, Klems M (2017) Not ACID, not BASE, but SALT. Proceedings of the 7th International Conference on Cloud Computing and Services Science, S 755–764Google Scholar
  52. Turner B (2007) The paxos family of consensus protocols. http://www.fractalscape.org/files/paxos-family.pdf. Zugegriffen: 15. Apr. 2019Google Scholar
  53. Vogels W (2009) Eventually consistent. Commun ACM 52(1):40–44.  https://doi.org/10.1145/1435417.1435432 CrossRefGoogle Scholar
  54. Vossen G, Groß-Hardt M (1993) Grundlagen der Transaktionsverarbeitung. Addison-Wesley, BostonzbMATHGoogle Scholar
  55. Wang T, Vonk J, Kratz B, Grefen P (2008) A survey on the history of transaction management: from flat to grid transactions. Distrib Parallel Databases 23(3):235–270CrossRefGoogle Scholar
  56. Weikum G (1989) Geschachtelte Transaktionen, in Informatik-Spektrum 12. pp. 102–106 W3C (2019). https://www.w3.org/standards/. Zugegriffen: 4. Mai 2019Google Scholar

Copyright information

© Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature 2019

Authors and Affiliations

  1. 1.Fakultät für Informatik und Mathematik, Competence Center WirtschaftsinformatikHochschule für angewandte Wissenschaften MünchenMünchenDeutschland

Personalised recommendations