Προσαρμόσιμες τεχνικές μεταφοράς μεγάλου όγκου δεδομένων από κατανεμημένες βάσεις:
Creators: name: Θεοδούλη, Αναστασία Δημητρίου
Publisher: name: Aristotle University of Thessaloniki
Year: 2011
Subjects: Τμηματοποίηση δεδομένων
Κατανεμημένες βάσεις
Ελεγκτής
Data Chunking
Distributed Databases
Controller

description: Αντικείμενο της παρούσας εργασίας είναι η μεταφορά μεγάλου όγκου δεδομένων από κατανεμημένες βάσεις σε προγράμματα-πελάτες (clients) χωρίς δυνατότητα γρήγορης επεξεργασίας των δεδομένων. Η αργή επεξεργασία από το πρόγραμμα-πελάτη μπορεί να οδηγήσει σε συμφόρηση μνήμης (memory congestion) στο πρόγραμμα-πελάτη. Για να αντιμετωπιστεί το πρόβλημα αυτό, εφαρμόζεται στη μεριά του προγράμματος-πελάτη μια τεχνική ελέγχου η οποία προσαρμόζει τον όγκο των δεδομένων που θα ζητηθούν καθώς και το ρυθμό με τον οποίο ζητούνται έτσι ώστε να αποφευχθεί η συμφόρηση μνήμης στο πρόγραμμα-πελάτη διατηρώντας παράλληλα το χρόνο απόκρισης (response time) σε επιτρεπτά επίπεδα. Η τεχνική που εφαρμόζεται είναι βασισμένη στη θεωρία αυτόματου ελέγχου αλλά και του τρόπου με τον οποίο επιλέγεται το παράθυρο δεδομένων (window) στο πρωτόκολλο TCP/IP. Συγκεκριμένα, ο ελεγκτής (controller) στη μεριά του προγράμματος-πελάτη εφαρμόζει μια τεχνική που χρησιμοποιείται τόσο στο TCP/IP Flow control, όσο και στην τεχνική Active Queue Management (AQM) που αναφέρεται σε ενδιάμεσους δρομολογητές (routers) κατά τη μεταφορά πακέτων δεδομένων με το πρωτόκολλο TCP/IP. Στις τεχνικές αυτές το επόμενο «τμήμα δεδομένων» (Chunk size) που μεταφέρεται, υπολογίζεται με βάση τον εναπομείναντα χώρο της ενδιάμεσης μνήμης (buffer) στη μεριά είτε του παραλήπτη (receiver) όταν αναφερόμαστε στην τεχνική του TCP/IP Flow Control ή του επιρρεπή σε συμφόρηση διαμεσολαβητή (bottleneck router) όταν αναφερόμαστε στην τεχνική του AQM. Για να επιτευχθεί σύγκριση των αποτελεσμάτων και να αποτιμηθεί η σημασία του ελέγχου συμφόρησης μνήμης στην πλευρά του προγράμματος-πελάτη, τέσσερις ελεγκτές ενσωματώθηκαν στο πρόγραμμα-πελάτη. O πρώτος ζητά σταθερό τμήμα δεδομένων, άσχετα με το αν υπάρχει συμφόρηση μνήμης (memory congestion) στο πρόγραμμα-πελάτη ή όχι. Ο δεύτερος ζητάει το επόμενο τμήμα δεδομένων με βάση τη μέση τιμή του χρόνου απόκρισης στα τελευταία βήματα εφαρμόζοντας την τεχνική του switching extremum control. Ο τρίτος συνδυάζει την τεχνική του σταθερού τμήματος δεδομένων όταν δεν υπάρχει συμφόρηση μνήμης με τον έλεγχο συμφόρησης μνήμης όταν διαπιστωθεί συμφόρηση μνήμης και ο τέταρτος την τεχνική της μέτρησης του χρόνου απόκρισης όταν δεν υπάρχει συμφόρηση μνήμης και του έλεγχου συμφόρησης μνήμης όταν διαπιστωθεί συμφόρηση. Κατά την ενσωμάτωση ενός από τους δύο πρώτους ελεγκτές στο πρόγραμμα-πελάτη, παρατηρείται συμφόρηση μνήμης στην πλευρά του πελάτη σε ένα σημαντικό ποσοστό των εκτελέσεων του αλγορίθμου. Στην περίπτωση που γίνεται έλεγχος για συμφόρηση μνήμης, δεν παρατηρείται συμφόρηση μνήμης σε καμία εκτέλεση ενώ παράλληλα ο χρόνος απόκρισης παραμένει σε ικανοποιητικά –αν και αρκετά υψηλότερα- επίπεδα σε σχέση με τα προγράμματα-πελάτες όπου δεν έχει ενσωματωθεί κάποιος ελεγκτής με έλεγχο συμφόρησης μνήμης.
description: The subject of this thesis is the bulk data transfer from distributed databases to clients with slow processing capacity. In order to cope with this situation, a client-side control technique is applied, which adjusts the amount of the data transferred and the data transmission rate so that memory congestion is avoided at the client-side. At the same time, response time is kept within acceptable limits. The above mentioned client-side technique is based on control theory and on the techniques that are used by TCP/IP protocol in order to choose the next amount of data (window) to be transferred. In particular, the client-side controller uses a technique that is used both in TCP/IP Flow Control and in Active Queue Management (AQM). In both these techniques, the next data chunk size to be transferred is decided based on the free buffer size at the side of the receiver when referring to the TCP/IP Flow control or on the free buffer size of the bottleneck router when referring to the AQM. In order to evaluate the importance of memory congestion control from the side of the client and to compare the results between different flavours of the clients, four different controllers were integrated in the clients. The first one asks for a fixed data chunk size, no matter if there is memory congestion client side or not. The second one calculates the next data chunk size by taking into consideration the average of the response time in the last few steps of the algorithm by applying the technique of switching extremum control. The third one asks for a fixed data chunk size when there is no memory congestion control and performs memory congestion control when memory congestion is detected and the fourth one does the technique of calculating the response time when there is no memory congestion and the memory congestion control when memory congestion is detected. While using the first two controllers, client side memory congestion was observed in a significant percentage of algorithm executions. When memory congestion control is applied, no memory congestion is observed while at the same time, response time remains within satisfactory, although higher, levels when compared with clients with no memory congestion control (i.e., those who use first or second controller).