Transactions & P2P Systems Διονύσης Αθανασόπουλος Βασίλης Φωτόπουλος
2 AGENDA Διαχείριση κατανεμημένων συναλλαγών πάνω από Ρ2Ρ σύστημα Οι οντότητες των πρωτοκόλλων Τα διαγράμματα καταστάσεων των πρωτοκόλλων Simulation Συμπεράσματα
3 Διαχείριση κατανεμημένων συναλλαγών πάνω από Ρ2Ρ σύστημα Διαχειριστής της συναλλαγής = κόμβος έναρξης της συναλλαγής Κατανεμημένη συναλλαγή = #(υποσυναλλαγές) σε διαφορετικούς κόμβους Στόχος : να αποδοθούν οι αλγόριθμοι Strict 2PL, Conservative 2PL σε P2P δίκτυο Πρέπει να ληφθούν υπόψιν οι ιδιαιτερότητες των Ρ2Ρ συστημάτων
4 Ιδιαιτερότητες των Ρ2Ρ συστημάτων στην υλοποίηση συναλλαγών Λόγω της ισοτιμίας των κόμβων, η κατάσταση της συναλλαγής πρέπει να είναι κατανεμημένη σε όλους τους κόμβους της συναλλαγής (distributed state) Ο δυναμικός χαρακτήρας οδηγεί σε υψηλό ρυθμό αφίξεων και αναχωρήσεων (mobile nodes) O έλεγχος ταυτοχρονισμού με κλειδαριές σε Ρ2Ρ συστήματα πρέπει να ενσωματώνει αυτά τα χαρακτηριστικά τους
5 Κατανεμημένος έλεγχος ταυτοχρονισμού Για να μετατραπεί ο έλεγχος ταυτοχρονισμού σε κατανεμημένη μορφή χρειάζονται ορισμένες επιλογές : Πλήρως κατανεμημένη διαχείριση των κλειδαριών Το πρωτόκολλο κλειδώματος που θα χρησιμοποιηθεί (Strict 2PL, Conservative 2PL)
6 Αυστηρό πρωτόκολλο 2 φάσεων σε Ρ2Ρ σύστημα Το μειονέκτημα του Strict 2PL είναι η εμφάνιση αδιεξόδων Λόγω του σχήματος της κατανεμημένης διαχείρισης των κλειδαριών, οδηγούμαστε σε κατανεμημένα αδιέξοδα Για να αποτραπεί ένα αδιέξοδο χρησιμοποιούμε την στρατηγική wait-die σε συνδυασμό με την απόδοση προτεραιοτήτων στα transactions
7 Υλοποίηση προτεραιοτήτων σε κατανεμημένο περιβάλλον Η προτεραιότητα ενός transaction αντιστοιχίζεται στην χρονική στιγμή που ξεκίνησε το transaction Το πρόβλημα είναι κατά πόσο όλοι οι κόμβοι μπορούν να έχουν συγχρονισμένα ρολόγια Για να αποφθεχθεί αυτό, όταν ένας κόμβος λαμβάνει αίτηση για transaction, συγκρίνει το χρονόσημο του transaction με το ρολόι του
8 Αποτροπή κατανεμημένων αδιεξόδων Υποθέτουμε ότι έχουμε τα transactions Τ1, Τ2 Priority (T1) > Priority (T2) T1 αποκλειστική κλειδαριά στον peer A για το Ο1 T2 αποκλειστική κλειδαριά στον peer Β για το Ο2 Έστω ότι η T1 ζητά κλειδαριά από τον peer Β για το Ο2 και η T2 ζητά κλειδαριά από τον peer Α για το Ο1 Για να αποτραπεί αυτό το αδιέξοδο, χρησιμοποιούμε τις προτεραιότητες αυτών των transactions
9 Αποτροπή κατανεμημένων αδιεξόδων
10 Αποτροπή κατανεμημένων αδιεξόδων Ο διαχειριστής συναλλαγών στον peer Β, θα οδηγήσει την Τ1 σε κατάσταση αναμονής Η Τ2 θα οδηγηθεί στην φάση της συρρίκνωσης των κλειδαριών της Η Τ2 μπορεί να τερματίσει είτε με επιτυχία(commit) είτε με αποτυχία(abort) Εάν η T2 ζητήσει μια νέα κλειδαριά, θα κάνει restart Τέλος μόλις η Τ2 ολοκληρωθεί παραχωρεί τις κλειδαριές της και η Τ1 συνεχίζει κανονικά την εκτέλεση της
11 Conservative 2PL Για την αποτροπή των αδιεξόδων δεσμεύονται όλες οι κλειδαριές εκ των προτέρων Ο peer που ξεκινάει την συναλλαγή αρχικά ελέγχει να δει εάν μπορεί να πάρει όλα τα κλειδιά που χρειάζεται για να εκτελέσει το transaction. Ένα ναι το transaction ξεκινάει Διαφορετικά μια άλλη χρονική στιγμή προσπαθεί ξανά
12 AGENDA Διαχείριση κατανεμημένων συναλλαγών πάνω από Ρ2Ρ σύστημα Οι οντότητες των πρωτοκόλλων Τα διαγράμματα καταστάσεων των πρωτοκόλλων Simulation Συμπεράσματα
13 Οι υπηρεσίες που προσφέρει το Structured Overlay Network Χρησιμοποιούμε δομημένο overlay network γιατί η αναζήτηση των αποθηκευμένων δεδομένων στο δίκτυο είναι γρήγορη και αποτελεσματική (π.χ chord) Το επίπεδο που περιλαμβάνει τις υπηρεσίες που προσφέρει το DHT για την αναζήτηση και την αποθήκευση των αντικειμένων στο δίκτυο ονομάζεται Data Manager (DM)
14 Οι οντότητες για την υλοποίηση της εκτέλεσης συναλλαγών στο Structured Overlay Network Όταν υποβάλετε ένα transaction σε έναν peer μια διεργασία Transaction Manager (TM) εκκινείτε σε αυτόν τον κόμβο Σε κάθε peer υπάρχει ένας διαφορετικός TM για κάθε transaction O TM είναι υπεύθυνος για τα εξής: αρχικοποιεί την εκτέλεση της συναλλαγής επικοινωνεί με τους peers που θα εκτελέσουν τις επιμέρους ενέργειες της συναλλαγής τερματίζει το transaction (commit ή abort ή restart)
15 Οι οντότητες για την υλοποίηση της εκτέλεσης συναλλαγών στο Structured Overlay Network Όταν ο TM που εκκινεί την συναλλαγή (master) θέλει να αποκτήσει κλειδαριές πάνω σε object άλλου peer επικοινωνεί με τον TM του αντίστοιχου peer Στην συνέχεια ο TM αυτού του peer καλεί την οντότητα Object Manager (OM) η οποία είναι υπεύθυνη για την διαχείριση των κλειδαριών και για τις πράξεις πάνω στα αντικείμενα του peer
16 Οι οντότητες για την υλοποίηση της εκτέλεσης συναλλαγών στο Structured Overlay Network Transaction Manager Object Manager Data Manager
17 AGENDA Διαχείριση κατανεμημένων συναλλαγών πάνω από Ρ2Ρ σύστημα Οι οντότητες των πρωτοκόλλων Τα διαγράμματα καταστάσεων των πρωτοκόλλων Simulation Συμπεράσματα
18 Τα διαγράμματα καταστάσεων του strict 2PL Η συνολική κατάσταση του distributed transaction είναι κατανεμημένη και επομένως κάθε κόμβος εκτελεί ένα δικό του αυτόματο καταστάσεων Έχουμε δυο αυτόματα καταστάσεων ανάλογα με την προτεραιότητα που έχει ο TM που εκκινεί το transaction
19 Αυτόματο Καταστάσεων για ένα peer master με μικρό χρονόσημο (I) Κατάσταση Πρόληψης Αδιεξόδου Κατάσταση Εκτέλεσης Κατάσταση Τερματισμού (Commit / Abort) Κατάσταση Επανεκκίνησης
20 Αυτόματο Καταστάσεων για ένα peer master με μεγάλο χρονόσημο (II) Κατάσταση Αναμονής Κατάσταση Εκτέλεσης Κατάσταση Τερματισμού (Commit / Abort)
21 Αυτόματο Καταστάσεων για Conservative 2PL Αρχική κατάσταση Κατάσταση Τερματισμού (Commit / Abort) Κατάσταση αναμονής κλειδωμάτων Κατάσταση Εκτέλεσης
22 AGENDA Διαχείριση κατανεμημένων συναλλαγών πάνω από Ρ2Ρ σύστημα Οι οντότητες των πρωτοκόλλων Τα διαγράμματα καταστάσεων των πρωτοκόλλων Simulation Συμπεράσματα
23 Παράμετροι Simulation Πλήθος peers στο δίκτυο Πλήθος objects ανά peer (θεωρούμε πως κάθε peer έχει το ίδιο πλήθος από object) Μέσος χρόνος παραμονής των peers στο δίκτυο Μέσος χρόνος εκτέλεσης κάθε κατανεμημένης συναλλαγής (~ του πλήθους των action) Ρυθμός υποβολής αιτήσεων για συναλλαγές στο δίκτυο Χρόνος υποβολής τελευταίας συναλλαγής (ρυθμίζει και το τέλος του simulation)
24 Γεννήτορας Συναλλαγών Αρχικά μέσω ενός γεννήτορα συναλλαγών ρυθμίζοντας τις προηγούμενες παραμέτρους δημιουργούμε set από κατανεμημένες συναλλαγές και ύστερα τις εκτελούμε σε ένα δίκτυο που αρχικά χρησιμοποιεί το πρωτόκολλο Conservative και μετά το Strict 2PL Η κάθε συναλλαγή είναι ένα σύνολο από Read και Write πράξεις πάνω σε objects peers κόμβων
25 Γραμματική συναλλαγών Κάθε συναλλαγή ακολουθεί την εξής γραμματική: :: TIMESTART constant DTIDconstant MID constant * :: CID constant ACTION READ | WRITE OBJECT constant
26 Παράδειγμα Συναλλαγής Μια συναλλαγή: TIMESTART 12 DTID 2 MID 29 CID 33 ACTION READ OBJECT 12 CID 26 ACTION WRITE OBJECT 0 CID 10 ACTION READ OBJECT 19
27 Πείραμα 1 ο – Σταθεροί Παράμετροι MIN_DURATION_VISITING=40 MAX_DURATION_VISITING=80 MIN_SUBTRANSACTION=10 MIN_SUBTRANSACTION=30 Πλήθος Objects ανά peer = 10 Πλήθος των peers = 80 Κατά Μ.Ο σε 100 χρονικές στιγμές υποβάλλονται προς εκτέλεση 20 transactions H διάρκεια του simulation είναι κάτι παραπάνω από 1000 χρονικές στιγμές
28 Πείραμα 1 ο – Αποτελέσματα
29 AGENDA Διαχείριση κατανεμημένων συναλλαγών πάνω από Ρ2Ρ σύστημα Οι οντότητες των πρωτοκόλλων Τα διαγράμματα καταστάσεων των πρωτοκόλλων Simulation Συμπεράσματα
30 Συμπεράσματα Οι πρώτες ενδείξεις μας δείχνουν πως το Conservative υπερτερεί έστω και λίγο στο ποσοστό των commit συναλλαγών έναντι του stict 2PL Πιθανόν σε ένα P2P δίκτυο που οι peers εισέρχονται και εξέρχονται με υψηλό ρυθμό η διαπλοκή των συναλλαγών να οδηγεί σε περισσότερα abort από ότι μια πιο σειριακή εκτέλεση των συναλλαγών όπως γίνεται μέσω του conservative