dc.contributor.author |
Σχοινάς, Ανδρέας
|
el |
dc.contributor.author |
Schoinas, Andreas
|
en |
dc.date.accessioned |
2020-05-26T13:38:57Z |
|
dc.date.available |
2020-05-26T13:38:57Z |
|
dc.identifier.uri |
https://dspace.lib.ntua.gr/xmlui/handle/123456789/50656 |
|
dc.identifier.uri |
http://dx.doi.org/10.26240/heal.ntua.18354 |
|
dc.rights |
Αναφορά Δημιουργού-Μη Εμπορική Χρήση 3.0 Ελλάδα |
* |
dc.subject |
Βάσεις δεδομένων |
el |
dc.subject |
Mongo |
el |
dc.subject |
Διαχείρηση συναλλαγών |
el |
dc.subject |
Μη σχεσιακές βάσεις δεδομένων |
el |
dc.subject |
Mogo |
en |
dc.subject |
Database |
en |
dc.subject |
Transaction |
en |
dc.subject |
Snapshot Isolation |
en |
dc.subject |
Multiversion Concurrency Control |
en |
dc.title |
Σχεδιασμός και Υλοποίηση μηχανισμού ενοποίησης της μη σχεσιακής βάσης δεδομένων MongoDB με υπηρεσίες διαχειριστή ταυτόχρονων συνδιαλλαγών |
el |
heal.type |
bachelorThesis |
|
heal.classification |
Software |
en |
heal.language |
el |
|
heal.access |
free |
|
heal.recordProvider |
ntua |
el |
heal.publicationDate |
2017-07-25 |
|
heal.abstract |
Η MongoDB, είναι μία από τις πιο ευρέως διαδεδομένες NoSQL βάσεις δεδομένων, η οποία χρησιμοποιεί ένα ευέλικτο μοντέλο εγγράφων για την αποθήκευση των δεδομένων, το οποίο προσεγγίζει το πρότυπο JSON. Το μοντέλο αυτό, υποστηρίζει δεδομένα σε μορφή κλειδιού – τιμής και εκτός από τα συνηθισμένα είδη δεδομένων (τα οποία είναι διαθέσιμα στην μεγάλη πλειοψηφία των δημοφιλών γλωσσών προγραμματισμού), σαν εγγραφές, μπορεί επιπλέον να δεχθεί πίνακες, δυαδικά δεδομένα, ακόμα και άλλα έγγραφα. Το γεγονός αυτό προσφέρει τρομερή ευελιξία στους χρήστες, καθώς καθιστά την αλλαγή του μοντέλου δεδομένων, το ίδιο εύκολη και γρήγορη με την μεταβολή των ίδιων των εφαρμογών.
Η προσαρμοστικότητα που προσφέρει λόγω του δυναμικού της σχήματος και της αντικειμενοστραφούς της φύσης καθιστούν την MongoDB ιδανική για εφαρμογές και αναλύσεις πραγματικού χρόνου. Έχει καθιερωθεί, συνεπώς, ως βάση δεδομένων γενικής χρήσης με πληθώρα εφαρμογών σε τομείς όπως τα ηλεκτρονικά καταστήματα, οι εφαρμογές για κινητά, εφαρμογές υπολογιστικού νέφους, αλλά και οι εφαρμογές γεωχωρικής φύσεως. Εφαρμογές της MongoDB, επίσης, περιλαμβάνουν αποθήκευση και διαχείριση μεγάλων δεδομένων (Big Data), καθώς και διαχείριση περιεχομένου και κατασκευή υποδομών για κοινωνικά δίκτυα και κινητά.
Παρά το ολοένα και αυξανόμενο πλήθος εφαρμογών της MongoDB, η εφαρμογή της σε τομείς συναλλαγών (Transactions) είναι ακόμα σε εμβρυακό στάδιο. Το γεγονός, αυτό, παρατηρείται στις περισσότερες NoSQL βάσεις δεδομένων και συμβαίνει κυρίως λόγω της έλλειψης απαραίτητου ενδιάμεσου λογισμικού, που να επιτυγχάνει τον έγκυρο και αποδοτικό συγχρονισμό σε περιπτώσεις ταυτόχρονων συναλλαγών. Η επίλυση τυχών διενέξεων μπορεί να επιτευχθεί με την υλοποίηση ενός απλού συστήματος κλειδώματος, κατά το οποίο μόνο μία συναλλαγή θα επιτρέπεται να αλλάζει τα δεδομένα της βάσης την εκάστοτε στιγμή, ενώ οποιαδήποτε άλλη επιθυμεί επίσης να αλλάξει κάποιο δεδομένο θα πρέπει να περιμένει. Ωστόσο, η υλοποίηση αυτή υστερεί υπερβολικά σε θέμα ταχύτητας, ειδικά όταν εφαρμοστεί σε μεγάλα συστήματα, όπου τα δεδομένα της βάσης διαμοιράζονται σε πολλούς κόμβους και προσπελάζονται από χιλιάδες χρήστες.
Η συγκεκριμένη διπλωματική εργασίας έχει ως σκοπό τον σχεδιασμό και την υλοποίηση μηχανισμού διαχείρισης ταυτόχρονων συναλλαγών προς μία βάση MongoDB, ο οποίος ελέγχει για τυχόν διενέξεις και στην συνέχεια αναθέτει χρονοσφραγίδες (timestamps) στις συναλλαγές καθιστώντας τες ικανές να δρομολογηθούν. Επιπλέον, σχεδιάστηκε και δημιουργήθηκε μία διεπαφή, με χρήση του συστήματος σειριοποίησης δεδομένων, Apache Avro, πάνω σε ήδη υλοποιημένο σύστημα συναλλαγών σε Mongo, η οποία μπορεί δυνητικά να χρησιμοποιηθεί, ώστε να ενσωματωθεί οποιοσδήποτε αντίστοιχος μηχανισμός για την διαχείριση των ταυτόχρονων συναλλαγών. |
el |
heal.abstract |
MongoDB is one of the most widespread NoSQL databases worldwide. It utilizes a flexible documents record model for data storing, which resembles the JSON object format. This model stores data as key – value pairs and besides the common data types (that are supported by the vast majority of the popular programming languages), MongoDB documents also support arrays, binary data, even other documents as input. This makes MongoDB extremely flexible to the users, provides a dynamic schema and renders the data model able to change as rapidly as the application requirements.
MonogoDB’s adeptness, due to its dynamic schema and its object – oriented nature, make it a perfect fit for real–time analytics and applications. Therefore, it has been established as a general purpose database, with a wide variety of applications, including e-shops, mobile, computational cloud and geospacial applications. MongoDB is also used to store and manage Big Data content, infrastructure development for social networks and mobile systems, as well as lightweight business intelligence applications. Despite the increasing number of applications that rely on it, MonogoDB’s has yet to be used in transactional applications.
Like most NoSQL database systems, MongoDB is not one of the choices for transactional applications, and this is mainly due to the lack of the appropriate middleware, which would provide valid and efficient synchronization in case of concurrent transactions. Such middleware could resolve conflicts simply by utilizing a simple locking mechanism, which will ensure that only one transaction will be able to modify database content, at each given moment, so if another transactions wants to alter the contents of the database, it must wait until the previous operation is completed. Nevertheless, this solution falls short in terms of speed, especially, when applied to big data systems, in which the database contents are shared between many nodes and are accessed by thousands of users.
This thesis’ main purpose is to design and implement a transaction management mechanism for concurrent MongoDB transactions. The aforementioned transaction manager is invoked on every stage of the transaction to perform the appropriate conflict checks and assign timestamps to the transactions, making them available for routing. Additionally, a connection interface, based on the Apache Avro data serialization system, was designed and exposed on top of a Mongo transaction system, through which any transaction manager can be assigned to manage the transactions’ concurrency. |
en |
heal.advisorName |
Βαρβαρίγου, Θεοδώρα |
el |
heal.committeeMemberName |
Βαρβαρίγου, Θεοδώρα |
el |
heal.committeeMemberName |
Παπαβασιλείου, Συμεών |
el |
heal.committeeMemberName |
Ασκούνης, Δημήτριος |
el |
heal.academicPublisher |
Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Επικοινωνιών, Ηλεκτρονικής και Συστημάτων Πληροφορικής |
el |
heal.academicPublisherID |
ntua |
|
heal.numberOfPages |
81 σ. |
|
heal.fullTextAvailability |
false |
|