Skip to main content
Log in

Dokumentenorientierte NoSQL-Datenbanken in skalierbaren Webanwendungen

Eine Analyse am Beispiel von MongoDB und der Webanwendung PINGO

Applying Document Oriented NoSQL Databases in Scalable Web Applications

An Analysis based on MongoDB and the Web Application PINGO

  • Published:
HMD Praxis der Wirtschaftsinformatik Aims and scope Submit manuscript

Zusammenfassung

Interaktive Webanwendungen, mit tausenden von Nutzern, erfordern den adäquaten Einsatz von geeigneten Datenbanktechnologien zur Verwaltung und Bereitstellung der ausgetauschten Daten. Am Beispiel des Open Source-Projektes PINGO wird aufgezeigt, wie sich die dokumentenorientierte NoSQL-Datenbank MongoDB in eine Webanwendungsarchitektur integrieren lässt, sodass die Datenbank skaliert und alle Datenbankzugriffe unmittelbar ausgeführt werden können. Ein Lasttest-Szenario belegt, dass die Geschwindigkeit der Gesamtanwendung nicht durch die genutzte MongoDB-Instanz, sondern durch die Ausstattung des eingesetzten Webservers limitiert wird. Im Szenario war es nicht möglich eine Lastobergrenze von MongoDB zu identifizieren, da sich die Netzwerkverbindung mit einer Übertragungsbandbreite von 400 Mbit/s als limitierender Faktor erwies. Darüber hinaus werden die mehr als fünfjährigen Projekterfahrungen genutzt, um die Entwicklung mit MongoDB kritisch zu reflektieren. Im Anwendungskontext zeigt sich MongoDB als flexible Datenbanktechnologie, welche sich einfach in das verwendete Web-Framework Ruby on Rails integrieren lässt. Die Konzepte der Schemalosigkeit und die Möglichkeit zur Bildung von logischen Einheiten zwischen Datenspeicherung und Darstellung erlauben zudem eine agile Weiterentwicklung der Webanwendung. Die größten Herausforderungen im Projektkontext resultierten aus der Tendenz vieler Entwickler relationale Modellierungskonzepte auf MongoDB zu übertragen.

Abstract

Interactive web applications with thousands of users need appropriate database technologies in order store and exchange data. Using the open source project PINGO as an example, we illustrate how the document-oriented NoSQL database MongoDB can be integrated with the web application stack, so that the database system scales up and every query is performed instantaneously. A load test scenario documents that the limiting factor is the webserver rather than the MongoDB instance. We could not find an upper bound for the load of MongoDB with the PINGO application as the 400 Mbit/s network connection turned out to be the bottleneck of the whole stack. Furthermore, we use our five years of experience with the project to reflect on the development process with MongoDB. The database integrates seamlessly with the Ruby on Rails framework and enables a very flexible development process. Moreover, the schemaless nature of MongoDB and the possibility to combine the object model with the persisted model facilitate agile methods for the continuous development of the application. Most challenges with the NoSQL technology were caused by developers who used previously learnt relational modeling approaches within the context of MongoDB.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Abb. 1
Abb. 2
Abb. 3
Abb. 4

Notes

  1. Der Projekt-Quelltext ist öffentlich über GitHub verfügbar: http://www.github.com/PingoUPB/PINGOWebApp

  2. Weitere Informationen zu Webanwendungsarchitektur finden sich in Kundisch et al. (2012).

  3. Etwaige Infrastrukturprobleme, welche aus der Anbindung des Webservers an das Internet resultieren, werden im Lasttest-Szenario nicht nähergehend betrachtet.

  4. Weitere Informationen zu den unterschiedlichen NoSQL-Datenmodellen vgl. bspw. Padhy et al. (2011).

  5. Im Beispiel stimmen drei Teilnehmer für die erste Antwortoption und ein Teilnehmer für die Dritte. Darüber hinaus werden die Abstimmergebnisse den Antwortoptionen (options) als kumulierter Wert hinzugefügt.

  6. Für weitere Informationen zum eingesetzten ODM siehe https://github.com/mongodb/mongoid.

  7. Für weitere Informationen zum Eager Loading siehe https://docs.mongodb.org/ecosystem/tutorial/mongoid-queries/

  8. Für weitere Informationen zu Embedded Documents siehe https://docs.mongodb.org/manual/tutorial/model-embedded-one-to-many-relationships-between-documents/

  9. Für weitere Informationen zu Map-Reduce siehe https://docs.mongodb.org/manual/core/map-reduce/

Literatur

  • Aboutorabi SH, Rezapour M, Moradi M, Ghadiri N (2015) Performance evaluation of SQL and MongoDB databases for big e‑commerce data Proceedings of 2015 International Symposium on Computer Science and Software Engineering, S. 1–7

    Google Scholar 

  • Cattell R (2010) Scalable SQL and NoSQL data stores. Acm Sigmod Rec 39:12–27. doi:10.1145/1978915.1978919

    Article  Google Scholar 

  • Faraj A, Rashid B, Shareef T (2014) Comperative Study of Relational and Non-Relations Database Performances using Oracle and MongoDB Systems. Int J Comput Eng Technol 5:11–22

    Google Scholar 

  • Hajui O, Dehbi R, Talea M, Batouta Z (2015) An advanced comparative Study of the Most Promising NoSQL and NewSQL Databases with Multi-Criteria Analysis Method. J Theor Appl Inf Technol 81:579–588

    Google Scholar 

  • Hecht R, Jablonski S (2011) NoSQL evaluation: A use case oriented survey Proceedings of the 2012 International Conference on Cloud and Service Computing, S. 336–341

    Google Scholar 

  • Internet Live Stats (2016) Twitter Usage Statistics. http://www.internetlivestats.com/twitter-statistics/#trend. Zugegriffen: 05. Februar 2016

    Google Scholar 

  • Kundisch D, Magenheim J, Beutner M, Herrmann P, Reinhardt W, Zokye A (2013) Classroom Response Systems. Inform Spektrum 36:389–393. doi:10.1007/s00287-013-0713-0

    Article  Google Scholar 

  • Kundisch D, Sievers M, Zoyke A, Herrmann P, Whittaker M, Beutner M, Fels G, Magenheim J (2012) Designing a web-based application to support Peer Instruction for very large Groups Proceedings of the International Conference on Information Systems.

    Google Scholar 

  • Nayak A, Poriya A, Poojary D (2013) Type of NOSQL Databases and its Comparison with Relational Databases. Int J Appl Inf Syst 5:16–19

    Google Scholar 

  • Padhy RP, Patra MR, Satapathy SC (2011) RDBMS to NoSQL: Reviewing some next-generation non-relational databases. Int J Adv Eng Sci Technol 11:15–30

    Google Scholar 

  • Sareen P, Kumar P (2015) NoSQL Database and its Comparison with SQL Database. Int J Comput Sci Commun Networks 5:293–298

    Google Scholar 

  • solid IT gmbh (2016a) DBMS popularity broken down by database model. http://db-engines.com/en/ranking_categories. Zugegriffen: 05. Februar 2016

    Google Scholar 

  • solid IT gmbh (2016b) DB-Engines Ranking – Trend Popularity. http://db-engines.com/en/ranking_trend. Zugegriffen: 05. Februar 2016

    Google Scholar 

  • Tauro CJM, Aravindh S, Shreeharsha AB (2012) Comparative study of the new generation, agile, scalable, high performance NOSQL databases. Int J Comput Appl 48:1–4

    Google Scholar 

  • Wei-ping Z, Ming-xin L, Huan C (2011) Using MongoDB to implement textbook management system instead of MySQL Proceedings of the 3rd International Conference on Communication Software and Networks., S 303–305

    Google Scholar 

  • Whittaker M, Neumann J (2013) Develop in the fast lane with Ruby/Rails. Softw Dev J:10–14

  • Wyllie D (2014) Datenbanksysteme für Web-Anwendungen im Vergleich. http://www.cowo.de/a/2496589. Zugegriffen: 05. Februar 2015

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Darius Schlangenotto.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Bach, C., Kundisch, D., Neumann, J. et al. Dokumentenorientierte NoSQL-Datenbanken in skalierbaren Webanwendungen. HMD 53, 486–498 (2016). https://doi.org/10.1365/s40702-016-0229-6

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1365/s40702-016-0229-6

Schlüsselwörter

Keywords

Navigation