Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Παράλληλα Συστήματα Διαχείρισης Βάσεων Δεδομένων ‘The Future of High Performance.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Παράλληλα Συστήματα Διαχείρισης Βάσεων Δεδομένων ‘The Future of High Performance."— Μεταγράφημα παρουσίασης:

1 Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Παράλληλα Συστήματα Διαχείρισης Βάσεων Δεδομένων ‘The Future of High Performance Database Systems’ & ‘The Gamma Database Machine Project’

2 Παράλληλo DBMS  DBMS που εκτελείται επάνω σε παράλληλη αρχιτεκτονική  Στενότερα συνδεδεμένο σύστημα απ’ ό,τι ένα κατανεμημένο DBMS  Συγκεντρωμένη διαχείριση  Δεν υπάρχει ανάγκη για αυτονομία των κόμβων  Το ιδανικό παράλληλο DBMS  Άπειρη υπολογιστική ισχύς, άπο άπειρους επεξεργαστές πεπερασμένης ισχύος  Άπειρη μνήμη, συνδυάζοντας άπειρες μνήμες πεπερασμένους μεγέθους  Το ζητούμενο: Scalability, δυνατότητα κλιμάκωσης

3 Εμπόδια στην παραλληλία  Startup  Χρόνος για έναρξη παράλληλης λειτουργίας  Δημιουργία διεργασιών / latency δικτύου  Περιορίζει την παραλληλία  Interference  Ανταγωνισμός για μοιραζόμενους πόρους  1% οδηγεί σε μέγιστο speedup 37, σύστημα 1000 επεξεργαστών: απόδοση 4%  Skew  Ανισοκατανομή φορτίου (data / execution skew)  Η πιο αργή διεργασία καθορίζει τον χρόνο εκτέλεσης

4 Μέτρα επίδοσης παράλληλου DBMS  Speedup  Με σταθερό το μέγεθος του προβλήματος, αυξάνουμε το μέγεθος του συστήματος  Scaleup  Πολλαπλασιάζουμε με τον ίδιο παράγοντα τα μεγέθη του προβλήματος και του συστήματος

5 Ταξινόμηση παράλληλων αρχιτεκτονικών  Ανάλογα με το βαθμό συνδέσης  Στενά / χαλαρά συνδεδεμένο σύστημα  Τι μοιράζεται κάθε φορά;  Μοιραζόμενη μνήμη (Shared-memory)  Μοιραζόμενοι δίσκοι (Shared-disk)  Τίποτε (Shared-nothing)  Κριτήριο η δυνατότητα κλιμάκωσης  Ως προς αριθμό επεξεργαστών  Ως προς αριθμό μονάδων Ε/Ε  Τάση προς shared-nothing αρχιτεκτονικές

6 Αρχιτεκτονικές Shared-memory  Συστήματα Συμμετρικής Πολυεπεξεργασίας (SMPs)  Είναι scalable;  ΟΧΙ, ο διάδρομος του συστήματος είναι bottleneck  Cache coherence;

7 Αρχιτεκτονικές Shared-disk  Αποδοτική σχεδίαση για read-only DBs  Για μοιραζόμενη, read-write πρόσβαση;  Πρωτόκολλα συγχρονισμού, ανταλλαγή μηνυμάτων  ΙΒΜ Sysplex, Digital VAXcluster

8 Αρχιτεκτονικές Shared-nothing  Κλιμάκωση σε 1000άδες επεξεργαστών  Σύγχρονα δίκτυα διασύνδεσης;  Επικοινωνία με message-passing  Αποστολή ερωτημάτων / λήψη αποτελεσμάτων  Παραδείγματα: Teradata, NonStopSQL(Tandem- Compaq), Bubba, Oracle nCUBE, Gamma

9 Τελεστές και dataflow graphs SELECT telephone_number// έξοδος FROM telephone_book// είσοδος WHERE last_name=‘Smith’// συνθήκη ORDER BY telephone_number

10 Παραλληλία στο σχεσιακό μοντέλο (1)  Εγγενής παραλληλία  Σχεσιακοί τελεστές, εφαρμογή σε ροές δεδομένων  γράφοι ροής δεδομένων (dataflow graphs)  Δύο τρόποι για επίτευξη παραλληλίας  Pipeline parallelism  Data partitioning paralellism

11 Παραλληλία στο σχεσιακό μοντέλο (2)  Οι σχεσιακοί τελεστές είναι ομοιόμορφοι  Είσοδος και έξοδος είναι σχέσεις  Σύνθεση τελεστών: Γράφοι ροής δεδομένων  Χρήση πολλών διαφορετικών τελεστών  Scan (Select-Project), Sort, aggregate operators  Insert / Update / Delete  Union / Intersection / Difference / Join  Δεν καθορίζεται ο τρόπος εκτέλεσης  Δυνατότητα εξαγωγής παραλληλισμού

12 Παραλληλία στο σχεσιακό μοντέλο (3)  Pipeline Parallelism  Παράλληλη εκτέλεση διαδοχικών τελεστών  Περιορισμένη χρησιμότητα Μέγεθος pipeline εξαρτώμενο από είδος ερώτημας Ορισμένοι τελεστές δεν έχουν ενδιάμεση έξοδο (aggregate, sort) Ανισοκατανομή στο κόστος εκτέλεσης κάθε τελεστή (skew)  Data partitioning parallelism  Διαίρει και βασίλευε  Ευνοεί speedup, scaleup  Χρειάζεται καλή κατανομή των δεδομένων

13 Data Partitioning Schemes (1)  Range partitioning  Αποδοτικό όταν χρησιμοποιούνται range queries  Χρήσιμο για clustering των δεδομένων  Πιθανό πρόβλημα data / execution skew, ανισοκατανομής φορτίου

14 Data Partitioning Schemes (2)  Round-Robin partitioning  Πολύ καλό για σειριακή σάρωση των εγγραφών  Όχι όμως και για associative queries  Κατανομή του φορτίου I/O, αύξηση του συνολικού I/O bandwidth

15 Data Partitioning Schemes (3)  Hash Partitioning  Αντιστοίχιση με χρήση συνάρτησης κατακερματισμού  Αποδοτικό για associative queries  Διευκολύνει την εκτέλεση joins

16 Παραλληλία με data partitioning (1)  Οι τελεστές υλοποιούνται ως διεργασίες  Σειριακή εκτέλεση, δεν χρειάζεται αλλαγή του κώδικα  Θύρες εισόδου / θύρες εξόδου για πέρασμα μηνυμάτων  Τελεστές merge / split για παραλληλοποίηση  Έλεγχος ροής / διαχείριση buffers

17 Παραλληλία με data partitioning (2) INSERT INTO C SELECT* FROM A, B WHEREA.x = B.y;

18 Παραλληλία με data partitioning (3)

19 Παράλληλοι αλγόριθμοι για τελεστές  Αλγόριθμοι για Join(Α,Β)  Sort-merge: Πρώτα ταξινόμησε Α και Β, έπειτα σύγκρινε τις ταξινομημένες σχέσεις Πολυπλοκότητα O(nlogn) Πρόβλημα execution skew όταν έχουμε ανισοκατανομή των δεδομένων εισόδου  Hash-join: Join με χρήση hash tables Hash-based partitioning των Α και Β. Tuples των A, B με ίδια τιμή στο join attribute είναι σε αντίστοιχα partitions. Hashing του κάθε partition της Α στη μνήμη (building phase) Scan του αντίστοιχου partition της Β, αναζήτηση στο hash table (probing phase) Πολυπλοκότητα O(n)

20 Η Ιστορία του Gamma  Μηχανή Βάσεων Δεδομένων DIRECT (1977-1984)  Εφαρμογή παραλληλισμού στην επεξεργασία λειτουργιών ΒΔ  Βασισμένη σε shared-memory αρχιτεκτονική  Συγκεντρωμένος έλεγχος για την εκτέλεση παράλληλων αλγορίθμων  Αδυναμία επέκτασης σε 100άδες επεξεργαστών  Σύστημα Διαχείρισης ΒΔ Gamma (1984-1992)  Εμπειρία από τo DIRECT  Διαφορετικές σχεδιαστικές επιλογές

21 Σχεδιασμός του Gamma  Αρχιτεκτονική Shared-nothing  Κλιμακούμενο σε 1000αδες επεξεργαστών  Επικοινωνία μέσω δικτύου διασύνδεσης  Ανταλλαγή ερωτημάτων/απαντήσεων με πέρασμα μηνυμάτων  Χρήση hash-based παράλληλων αλγορίθμων  Αποφυγή ανάγκης συγκεντρωμένου ελέγχου  Καταμερισμός των δεδομένων σε μονάδες I/O  Οριζόντια διαμέριση  Παράλληλη επεξεργασία τμημάτων μιας σχέσης  Καλύτερη εκμετάλλευση του I/O bandwidth

22 Gamma, έκδοση 1.0 (1)  Την περίοδο 1984-1988  17 επεξεργαστές VAX 11/750, 2ΜΒ μνήμη  Token ring στα 80Mbps ως δίκτυο διασύνδεσης  μέγιστο μέγεθος πακέτου 2KBytes  Χωριστό VAX που τρέχει Unix ως host  8x333MB δίσκοι, σε 8 από τους επεξεργαστές  Οι diskless κόμβοι χρησιμοποιούνται για την εκτέλεση aggregates και joins

23 Gamma, έκδοση 1.0 (2)  Προβλήματα επίδοσης  Σελίδες 2Kbytes για προσαρμογή στο Token ring Για αποφυγή αντιγράφων  Μεγάλο κόστος επικοινωνίας Κάρτα δικτύου επάνω στο Unibus (4Mbps) Οι σκληροί δίσκοι γρηγορότεροι από το Unibus Μόνο 2 πακέτα στο network interface Ανάγκη για νέο interface, απευθείας στο backplane  Μόνο 2ΜΒ μνήμης Χωρίς εικονική μνήμη από το Λ.Σ. Χωριστή διαχείριση hash tables, stack space, buffer pool  Παρωχημένη αρχιτεκτονική του VAX

24 Gamma, έκδοση 2.0 (1)  Εγκαταστάθηκε το 1988  Βασισμένο σε υπερκύβο Intel iPCS/2, 32 x i386  Σε κάθε κόμβο:  Intel i386 CPU  8 MB RAM  330MB Maxtor (SCSI, 45KB cache)  Δίκτυο διασύνδεσης με τοπολογία υπερκύβου  Δρομολόγηση μηνυμάτων με εξειδικευμένα VLSI  8 αμφίδρομα, αξιόπιστα κυκλώματα (2.8MB/s)

25 Gamma, έκδοση 2.0 (2)  Λειτουργικό σύστημα Intel NX/2  προσανατολισμένο σε heavyweight διεργασίες  Μεταφορά του NOSE από το VAX  πολλά lightweight νήματα, με μοιραζόμενη μνήμη  Όλο το NOSE ως μία διεργασία κάτω από το NX/2  Ανακάλυψη νέων bugs  ο i386 πιάνει null pointer dereferences  Πρόβλημα με το υποσύστημα I/O  DMA όχι στη μνήμη, αλλά σε FIFO των 4KBytes  Υπερβολικά συχνές διακοπές στη CPU  ~10% CPU για χειρισμό διακοπών, 13 διακοπές/8KB

26 Αποθήκευση δεδομένων στο Gamma  Οι τρεις βασικές τεχνικές κατανομές δεδομένων  Round-robin, range partitioned, hashed  Επιλογή του χρήστη, μέσω της γλώσσα ερωτήσεων  Πληροφορίες καταμερισμού στον κατάλογο μαζί με το εύρος των περιοχών, για range partitioning  Διαφάνεια κατά την εκτέλεση ερωτημάτων  Ο τρόπος καταμερισμού ενσωματώνεται στο πλάνο εκτέλεσης  Χρήση της πληροφορίας από τον scheduler  Για hash-based και range partitioning συμμετέχουν μόνο όσοι επεξεργαστές χρειάζεται

27 Δομή του λογισμικού στο Gamma (1)  Catalog Manager  Πληροφορίες για το σχήμα της βάσης  Πολλοί χρήστες/βάση, πολλά αντίγραφα του σχήματος  Query Manager  Ένας Query manager/χρήστη  Caching του σχήματος της βάσης τοπικά  Ad-hoc ερωτήματα με gdl (έκδοση της Quel)  Συντακτική ανάλυση, βελτιστοποίηση, μεταγλώττιση  Scheduler Processes  Ένας χρονοδρομολογητής/δέντρο εκτέλεσης  Κεντρική διεργασία dispatcher, διαθέτει schedulers  Πολύ μικρές απαιτήσεις σε πόρους υλικού/scheduler

28 Δομή του λογισμικού στο Gamma (2)  Operator Processes  Τουλάχιστον μία διεργασία/τελεστή στο δέντρο εκτέλεσης  O scheduler καθοδηγεί την εκτέλεση του ερωτήματος  Ένας αριθμός διεργασιών είναι πάντοτε διαθέσιμος Αποφυγή κόστους εκκίνησης διεργασιών Δυνατή η δυναμική δημιουργία νέων, κατά την εκτέλεση  Ειδική θύρα επικοινωνίας ‘new task port’ Ο scheduler ζητά μια νέα διεργασία – τελεστή Αν υπάρχει ήδη, του ανατίθεται Αν όχι, δημιουργείται

29 Δομή του λογισμικού στο Gamma (3)

30 Εκτέλεση ερωτημάτων (1)  Υποστήριξη ad-hoc και embedded queries  Συντακτική ανάλυση, βελτιστοποίηση  απλούστερη, μόνο hash-based joins  left-deep δέντρα εκτέλεσης  Προώθηση μεταγλωττισμένου ερωτήματος από τον QM στον scheduler  Μέσω κεντρικής διεργασίας dispatcher  Ενεργοποίηση τελεστών από τον scheduler  Μηνύματα συγχρονισμού  ανάμεσα σε τελεστές – scheduler  από τελεστή σε τελεστή

31 Εκτέλεση ερωτημάτων (2)  To split table γνωρίζει τα ports των γειτονικών τελεστών στο δέντρο εκτέλεσης  Η εργασία ολοκληρώνεται με την εξάντληση του ρεύματος εισόδου  Κλείνουν τα ρεύματα εξόδου  Αποστέλλεται μήνυμα ελέγχου στον Scheduler

32 Εκτέλεση ερωτημάτων (3)

33 Εκτέλεση ερωτημάτων (4)

34 Concurrency Control  2PL  Κλείδωμα σε επίπεδο αρχείου και σελίδας  Πέντε είδη κλειδώματος:  S, X, IS, IX, SIX  Σε κάθε επεξεργαστή  Τοπικός διαχειριστής κλειδιών  Τοπικός έλεγχος για deadlock  Χρήση γράφων wait-for  Συγκεντρωτικός έλεγχος για deadlock  Περιοδική αποστολή τοπικών γράφων wait-for  Κατασκευή ολικού wait-for γράφου και έλεγχος

35 Logging and Recovery  Χρήση σειριακών αριθμών στο log (LSN)  M log managers διαθέσιμοι  Ο επεξεργαστής i στέλνει log records στον i mod M  Write Ahead Logging (WAL)  Συντονισμός για commit/abort από τον scheduler  Αποστολή μηνυμάτων commit στους log managers  Αποστολή μηνυμάτων abort στους επεξεργαστές  Ζητούν από τους log managers τα logs για undo  Undo, checkpointing με αλγορίθμους ARIES

36 Διαχείριση Βλαβών (1)  Relation-cluster: Σύνολα κόμβων, μεγέθους M  Πρωτεύον αντίγραφο: R  Το τμήμα R i αποθηκεύεται στον δίσκο i mod M  Δευτερεύον αντίγραφο: r  Το τμήμα r i αποθηκεύεται στον δίσκο (i+1) mod M

37 Διαχείριση Βλαβών (2)  Ο κόμβος 1 δεν είναι διαθέσιμος  Κατανομή του φορτίου σε όσους απομένουν  Αύξηση του φορτίου κατά 1/(M-1) στους υπόλοιπους

38 Μετρήσεις Επίδοσης  Μετρήσεις για select  Mε 30 επεξεργαστές, για 3 μεγέθη σχέσεων (10 5, 6, 7 )  Μετρήσεις speedup, σχεδόν γραμμικό  Μετρήσεις scaleup, ικανοποιητικά αποτελέσματα Σχεδόν σταθερός χρόνος απόκρισης  Σχεδόν γραμμικό speedup για select / join  Μετρήσεις για join  Όμοια πειράματα, όπως στην περίπτωση του select  Hash-based partitioning, με κλειδί ίδιο με το join  Πειράματα και για partitioning σε διαφορετικό κλειδί  Μετρήσεις σε aggregate queries, updates  Χωρίς να είναι λειτουργικό το recovery

39 Αναφορές  DeWitt and Gray, "Parallel Database Systems: The Future of High Performance Database Systems. CACM 35(6): 85-98 (1992)  DeWitt, et al. "The Gamma Database Machine Project." TKDE 2(1): 44-62 (1990)


Κατέβασμα ppt "Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Παράλληλα Συστήματα Διαχείρισης Βάσεων Δεδομένων ‘The Future of High Performance."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google