title: Parallel sketch algorithms with Spark, Storm, Akka and Kafka-Streams
title: Παράλληλοι αλγόριθμοι σκίτσων στα συστήματα Spark, Storm, Akka και Kafka-Streams
Creators: name: Πεθεριωτης Αγγελος
Publisher: name: Technical University of Crete
Year: 2021

description: Efficient processing over massive & realtime data sets has been more vital in the last few decades due to the growing volumes of data in a variety of applications.  Typical algorithms are not able to handle the load and rate of these streams in an efficient and cost-effective way. On the contrary, summarised data structures with small memory footprint, also known as synopses, seem suitable for this kind of applications. 
Given the fact that we observe the unbounded real-time data stream only once, we need to make sure that the frameworks used to run the computations on, are utilised to the maximum. We evaluate four real time, distributed and fault-tolerant frameworks, Storm, Spark, Akka and Kafka Streams. Those frameworks have totally different architectures to the batch processing frameworks that have been established over the previous years. Furthermore, each one of these frameworks relies on different design principles and patterns which results in different characteristics that are analysed in this thesis.
We evaluate CMS, ECMS & AMS algorithms on those four frameworks, in a multi node cluster topology with regards to performance. We observe the throughput, the number of processed items per second while simultaneously we observe that error guarantees are met in each case.
description: Η αποτελεσματική επεξεργασία σε ροές δεδομένων σε πραγματικό χρόνο είναι ιδιαίτερα σημαντική τις τελευταίες δεκαετίες λόγω του αυξανόμενου όγκου διαθέσιμων δεδομένων που αφορούν ποικίλες εφαρμογές της επιστήμης των υπολογιστών. Ειδικότερα, η εποπτεία ταχύτατα μεταβαλλόμενων ροών δεδομένων σε πραγματικό χρόνο έχει αναδειχθεί ως ένα σημαντικό ζήτημα στη διαχείριση δεδομένων. Οι τυπικοί αλγόριθμοι δεν είναι σε θέση να διαχειριστούν το φορτίο και το ρυθμό αυτών των ροών με αποτελεσματικό και οικονομικό τρόπο. Αντίθετα, δομές δεδομένων με μικρό κόστος σε μνήμη, επίσης γνωστές ως συνόψεις, είναι κατάλληλες για τέτοιου είδους εφαρμογές.
Δεδομένου ότι μπορούμε να επεξεργαστούμε την ροή δεδομένων, μόνο μία φορά σε πραγματικό χρόνο, πρέπει να διασφαλίσουμε ότι τα υπολογιστικά συστήματα που χρησιμοποιούνται για την εκτέλεση των αντίστοιχων υπολογισμών, χρησιμοποιούνται στο μέγιστο. Αξιολογούμε τα εξής τέσσερα υπολογιστικά συστήματα, Storm, Spark, Akka και Kafka Streams.  Αυτά τα συστήματα είναι ικανά να διεκπεραιώσουν υπολογισμούς σε πραγματικό χρόνο ενώ παράλληλα δίνουν την δυνατότητα για κατανεμημένους υπολογισμούς σε παραπάνω από ένα φυσικά μηχανήματα. Μεταξύ τους, έχουν εντελώς διαφορετικές αρχιτεκτονικές από τα συστήματα επεξεργασίας μαζικών δεδομένων (batch processing) που είχαν  δημιουργηθεί τα προηγούμενα χρόνια. Επιπλέον, καθένα από τα τέσσερα συστήματα βασίζεται σε διαφορετικές σχεδιαστικές αρχές και μοτίβα που τελικά οδηγούν σε διαφορετικά τεχνικά χαρακτηριστικά τα οποία και αναλύονται σε αυτή τη διπλωματική εργασία .
Αξιολογούμε την απόδοση των αλγορίθμων CMS, ECMS & AMS σε αυτά τα τέσσερα υπολογιστικά συστήματα, σε τοπολογία συμπλέγματος πολλαπλών κόμβων. Παρατηρούμε την απόδοση, τον αριθμό δηλαδή των επεξεργασμένων στοιχείων ανά δευτερόλεπτο ενώ ταυτόχρονα παρατηρούμε εάν πληρούνται οι εγγυήσεις σφάλματος όπως ορίζονται από την κάθε σύνοψη.