Με τη χρήση κατανεμημένων τεχνικών επεξεργασίας, έχουμε τη δυνατότητα να μειώσουμε σημαντικά το χρόνο δημιουργίας και ενημέρωσης των ευρετηρίων που αφορούν δεδομένα μεγάλης κλίμακας, όπως για παράδειγμα αυτά που είναι διαθέσιμα στο διαδίκτυο, εκμεταλλευόμενοι τις δυνατότητες που μας προσφέρουν οι σύγχρονες αρχιτεκτονικές υπολογιστών, όπως οι shared-nothing αρχιτεκτονικές και το Cloud. Ταυτόχρονα, με την κατανεμημένη αποθήκευση και διαχείριση των ευρετηρίων, καθίσταται εφικτή η αντιμετώπιση του αυξημένου φόρτου ερωτημάτων που έχει προκύψει ως αποτέλεσμα της εκρηκτικής αύξησης του αριθμού των χρηστών του διαδικτύου.
Στην διπλωματική αυτή εργασία παρουσιάζεται μια κατανεμημένη αρχιτεκτονική για τη δημιουργία και την ενημέρωση ανεστραμμένων ευρετηρίων (inverted index) για συλλογές κειμένων μεγάλης κλίμακας. Αναλυτικότερα, παρουσιάζεται μια μεθοδολογία για την κατανεμημένη δημιουργία και, στη συνέχεια, την κατανεμημένη ενημέρωση ανεστραμμένων ευρετηρίων, η οποία καθιστά δυνατή την ενημέρωση ενός υπάρχοντος ευρετηρίου σε χρόνο πρακτικά ανεξάρτητο από το μέγεθος του, αξιοποιώντας τα ιδιαίτερα χαρακτηριστικά των NoSQL βάσεων δεδομένων. Ακόμα, προτείνεται ένας αλγόριθμος σύγκρισης μεταξύ των παλαιών και νέων εκδόσεων των τροποποιημένων κειμένων, ο οποίος ελαχιστοποιεί τις τροποποιήσεις που πρέπει να πραγματοποιηθούν στο ευρετήριο, επιταχύνοντας έτσι σημαντικά τη διαδικασία ενημέρωσης. Με τη χρήση των μεθόδων αυτών, καθίσταται εφικτή η ταχύτερη και συχνότερη ενημέρωση ανεστραμμένων ευρετηρίων που έχουν δημιουργηθεί από μεγάλες συλλογές κειμένων, με στόχο την επιστροφή ενημερωμένων αποτελεσμάτων στους τελικούς χρήστες.
Για την αποδοτικότερη εκτέλεση των διαδικασιών δημιουργίας και ενημέρωσης του ευρετηρίου, προτείνεται η χρήση του Hadoop MapReduce, το οποίο αποτελεί μια υλοποίηση ανοικτού λογισμικού του MapReduce framework και είναι κατάλληλο για την κατανεμημένη επεξεργασία μεγάλου όγκου δεδομένων. Επιπρόσθετα, για την ταχύτερη επεξεργασία του μεγάλου φόρτου ερωτημάτων των χρηστών, προτείνεται η αποθήκευση του ευρετηρίου στην HBase, η οποία αποτελεί μια κατανεμημένη, NoSQL βάση δεδομένων που καθιστά δυνατή την αποθήκευση μεγάλου όγκου δεδομένων και την κατανομή του φορτίου ερωτημάτων στους κόμβους του συστήματος.
By using distributed processing techniques, we can significantly reduce the time needed for the creation and update of indexes on large-scale datasets, such as those available on the Internet, taking advantage of the capabilities of modern architectures, such as shared-nothing architectures and the Cloud. At the same time, the distributed storage and management of such indexes allows us to process the increased query workload, which has arisen as a result of the explosive growth in the number of Internet users.
In this thesis, we present a distributed architecture for creating and updating inverted indexes for large-scale document collections. In more detail, we present a methodology for the distributed creation and update of inverted indexes, which allows us to update an existing inverted index in time practically independent of its size, utilizing the characteristics of NoSQL databases. Moreover, we propose an algorithm which compares the old and new versions of the modified documents in order to minimize the changes needed in the index, and therefore accelerate the update process. By using these methods, it becomes possible to quickly and frequently update existing inverted indexes, created from large document collections, in order to provide fresh results to the users.
For the efficient execution of these processes, we suggest the usage of Hadoop MapReduce, which is an open-source implementation of the MapReduce framework and is suitable for the distributed processing of large-scale datasets. Furthermore, in order to speed up the processing of users’ queries, we recommend the storage of the index in HBase, a distributed, NoSQL database which allows the storage of large volumes of data and the distribution of the query workload to the nodes of the cluster.