19 κεφαλές ύδρας. Μεγάλη επισκόπηση του προγράμματος

Συνέδριο θα πραγματοποιηθεί στις 11-12 Ιουλίου στην Αγία Πετρούπολη Έδρα, αφιερωμένη στην ανάπτυξη παράλληλων και κατανεμημένων συστημάτων. Το κόλπο της Hydra είναι ότι ενώνει cool επιστήμονες (που συνήθως συναντάμε μόνο σε ξένα επιστημονικά συνέδρια) και διάσημους ασκούμενους μηχανικούς σε ένα μεγάλο πρόγραμμα στη διασταύρωση επιστήμης και πρακτικής.

Η Ύδρα είναι ένα από τα σημαντικότερα συνέδρια μας τα τελευταία χρόνια. Είχε προηγηθεί πολύ σοβαρή προετοιμασία, επιλογή ομιλητών και εκθέσεις. Την περασμένη εβδομάδα σχετικά με αυτό Habro συνέντευξη βγήκε με τον διευθυντή του Ομίλου JUG.ru, Alexey Fedorov (23derevo).

Εμείς ήδη ειπωμένο περίπου τρεις σημαντικοί συμμετέχοντες, οι ιδρυτές της θεωρίας των κατανεμημένων συστημάτων - οι Leslie Lamport, Maurice Herlihy και Michael Scott. Ήρθε η ώρα να μιλήσουμε πιο αναλυτικά για όλο το πρόγραμμα!

19 κεφαλές ύδρας. Μεγάλη επισκόπηση του προγράμματος

Κίνητρο

Εάν ασχολείστε με τον προγραμματισμό, τότε με τον ένα ή τον άλλο τρόπο έχετε να κάνετε με πολυνηματικούς και κατανεμημένους υπολογιστές. Οι ειδικοί στους σχετικούς τομείς συνεργάζονται απευθείας μαζί τους, αλλά σιωπηρά, η διανομή μας κοιτάζει από παντού: σε οποιονδήποτε υπολογιστή πολλαπλών πυρήνων ή κατανεμημένη υπηρεσία υπάρχει κάτι που εκτελεί υπολογισμούς παράλληλα.

Υπάρχουν πολλά συνέδρια που καλύπτουν διάφορες πτυχές του προγραμματισμού εφαρμογών. Από την άλλη πλευρά του φάσματος, έχουμε εξειδικευμένες επιστημονικές σχολές που αποκαλύπτουν τεράστιες ποσότητες σύνθετης θεωρίας σε μορφή διαλέξεων. Για παράδειγμα, παράλληλα με την Ύδρα στην Πετρούπολη υπάρχει σχολή SPTDC. Στο συνέδριο της Ύδρας, προσπαθήσαμε να συγκεντρώσουμε τη σκληρή πρακτική, την επιστήμη και οτιδήποτε βρίσκεται στη διασταύρωση τους.

Σκεφτείτε το εξής: ζούμε σε μια καταπληκτική εποχή που μπορείτε να γνωρίσετε από κοντά τους ιδρυτές του κλάδου της επιστήμης και της μηχανικής που μελετάμε. Οι φυσικοί δεν θα συναντήσουν ούτε τον Νεύτωνα ούτε τον Αϊνστάιν - το τρένο έφυγε. Αλλά δίπλα μας εξακολουθούν να ζουν αυτοί που δημιούργησαν τα θεμέλια της θεωρίας των κατανεμημένων συστημάτων, επινόησαν δημοφιλείς γλώσσες προγραμματισμού και για πρώτη φορά τα ενσάρκωσαν όλα αυτά σε λειτουργικά πρωτότυπα. Αυτοί οι άνθρωποι δεν παράτησαν τη δουλειά τους στα μισά, εργάζονται αυτή τη στιγμή σε πιεστικά ζητήματα σε παγκοσμίου φήμης πανεπιστήμια και εταιρείες και αποτελούν τις μεγαλύτερες πηγές γνώσης και εμπειρίας σήμερα.

Από την άλλη πλευρά, η ευκαιρία να τους συναντήσουμε συνήθως παραμένει καθαρά θεωρητική: λίγοι από εμάς μπορούμε να παρακολουθούμε συνεχώς τις δημόσιες εκδηλώσεις σε κάποιο Πανεπιστήμιο του Ρότσεστερ και μετά να σπεύσουμε στις ΗΠΑ και να επιστρέψουμε για μια διάλεξη με τον Μάικλ Σκοτ. Η επίσκεψη σε όλα τα μέλη της Hydra θα κόστιζε μια μικρή περιουσία, χωρίς να υπολογίζουμε την άβυσσο του χαμένου χρόνου (αν και ακούγεται σαν μια ενδιαφέρουσα αναζήτηση).

Από την άλλη πλευρά, έχουμε πολλούς κορυφαίους μηχανικούς που εργάζονται για πιεστικά προβλήματα στα κατανεμημένα συστήματα αυτή τη στιγμή, και σίγουρα έχουν πολλά να πουν. Αλλά εδώ είναι το πρόβλημα - αυτοί εργάζονται, και ο χρόνος τους είναι πολύτιμος. Ναι, αν είστε υπάλληλος της Microsoft, της Google ή της JetBrains, η πιθανότητα να συναντήσετε έναν από τους διάσημους ομιλητές σε μια εσωτερική εκδήλωση αυξάνεται απότομα, αλλά γενικά, όχι, αυτό δεν συμβαίνει κάθε μέρα.

Με αυτόν τον τρόπο, το Συνέδριο της Ύδρας επιτυγχάνει ένα σημαντικό έργο που οι περισσότεροι από εμάς δεν μπορούμε να κάνουμε μόνοι μας - σε ένα μέρος και σε μια στιγμή, φέρνει κοντά ανθρώπους των οποίων οι ιδέες ή οι αλληλεπιδράσεις με τους οποίους μπορούν να αλλάξουν τη ζωή σας. Παραδέχομαι ότι δεν χρειάζονται όλοι κατανεμημένα συστήματα ή κάποια περίπλοκα θεμελιώδη πράγματα. Μπορείτε να προγραμματίσετε τα CRUD σε PHP για το υπόλοιπο της ζωής σας και να παραμείνετε απόλυτα ευχαριστημένοι. Αλλά όποιος το χρειάζεται, αυτή είναι η ευκαιρία σας.

Έχει περάσει πολύς καιρός από την πρώτη ανακοίνωση του συνεδρίου της Ύδρας για το Habré. Σε αυτό το διάστημα, έχει γίνει πολλή δουλειά - και τώρα έχουμε μια λίστα με όλες σχεδόν τις εκθέσεις. Χωρίς αργούς αλγόριθμους μονού νήματος, απλώς καθαρό κατανεμημένο σκληροπυρηνικό! Ας τελειώσουμε με γενικές λέξεις και ας δούμε τι έχουμε στα χέρια μας τώρα.

Βασικές σημειώσεις

Οι κεντρικές σημειώσεις ξεκινούν και τελειώνουν τις ημέρες του συνεδρίου. Συνήθως ο στόχος μιας εναρκτήριας ομιλίας είναι να ορίσει το γενικό πνεύμα και την κατεύθυνση του συνεδρίου. Η κεντρική ομιλία κλεισίματος χαράσσει μια γραμμή και εξηγεί πώς μπορούμε να ζήσουμε με τις γνώσεις και τις δεξιότητες που αποκτήθηκαν κατά τη διάρκεια του συνεδρίου. Η αρχή και το τέλος: αυτό που θυμάται καλύτερα, και γενικά, έχει αυξημένη σημασία.

Cliff Click Ο αλγόριθμος κατανεμημένου K/V H2O

19 κεφαλές ύδρας. Μεγάλη επισκόπηση του προγράμματος Ο Cliff είναι ένας θρύλος στον κόσμο της Java. Στα τέλη της δεκαετίας του '90, για τη διδακτορική του διατριβή, έγραψε μια εργασία με τίτλο "Συνδυασμός αναλύσεων, συνδυασμός βελτιστοποιήσεων", το οποίο λίγο αργότερα έγινε η βάση για τον μεταγλωττιστή διακομιστή HotSpot JVM. Δύο χρόνια αργότερα, εργαζόταν ήδη στη Sun Microsystems στο JVM και έδειξε σε όλο τον κόσμο ότι η JIT έχει δικαίωμα ύπαρξης. Όλη αυτή η ιστορία για το πώς η Java είναι ένας από τους πιο γρήγορους σύγχρονους χρόνους εκτέλεσης με τις πιο έξυπνες και γρήγορες βελτιστοποιήσεις προήλθε από το Cliff Click. Στην αρχή, πίστευαν ότι εάν κάτι είναι προσβάσιμο σε έναν στατικό μεταγλωττιστή, δεν χρειάζεται καν να προσπαθήσετε να το διώξετε. Χάρη στη δουλειά του Cliff και της ομάδας, όλες οι νέες γλώσσες άρχισαν να δημιουργούνται με την ιδέα της συλλογής JIT από προεπιλογή. Φυσικά, αυτή δεν ήταν μια δουλειά ενός ανθρώπου, αλλά ο Cliff έπαιξε πολύ σημαντικό ρόλο σε αυτό.

Στην εναρκτήρια ομιλία, ο Cliff θα μιλήσει για την άλλη του προσπάθεια - H20, μια πλατφόρμα στη μνήμη για κατανεμημένη και κλιμακούμενη μηχανική εκμάθηση για βιομηχανικές εφαρμογές. Ή πιο συγκεκριμένα, σχετικά με την κατανεμημένη αποθήκευση ζευγών κλειδιών-τιμών μέσα σε αυτό. Πρόκειται για έναν πολύ γρήγορο χώρο αποθήκευσης με πολλές ενδιαφέρουσες ιδιότητες (η ακριβής λίστα βρίσκεται περιγραφή), οι οποίες επιτρέπουν τη χρήση παρόμοιων λύσεων στα μαθηματικά της ροής μεγάλων δεδομένων.

Μια άλλη αναφορά που θα δώσει ο Κλιφ είναι - Η εμπειρία της συναλλακτικής μνήμης υλικού Azul. Ένα άλλο μέρος της βιογραφίας του - δέκα χρόνια εργάζεται στην Azul, όπου ενημέρωσε και βελτίωσε πολλά πράγματα στη στοίβα υλικού και τεχνολογίας της Azul: μεταγλωττιστές JIT, χρόνο εκτέλεσης, μοντέλο νήματος, διαχείριση σφαλμάτων, χειρισμός στοίβας, διακοπές υλικού, φόρτωση κλάσης και ούτω καθεξής και ούτω καθεξής - λοιπόν, καταλαβαίνετε ιδέα.

Το πιο ενδιαφέρον μέρος ξεκίνησε όταν έφτιαξαν υλικό για μια μεγάλη επιχείρηση - έναν υπερυπολογιστή για να τρέχει Java. Ήταν ένα μάλλον καινοτόμο πράγμα, προσαρμοσμένο ειδικά για Java, η οποία έχει ειδικές απαιτήσεις - ανάγνωση φραγμών μνήμης για συλλογή σκουπιδιών χαμηλής παύσης, συστοιχίες με έλεγχο ορίων, εικονικές κλήσεις... Μία από τις πιο ενδιαφέρουσες τεχνολογίες είναι η μνήμη συναλλαγών υλικού. Ολόκληρο το L1 οποιουδήποτε από τους 864 πυρήνες θα μπορούσε να συμμετάσχει στη σύνταξη συναλλαγών, κάτι που είναι ιδιαίτερα σημαντικό για την εργασία με κλειδαριές σε Java (τα συγχρονισμένα μπλοκ μπορούν να λειτουργούν παράλληλα, εφόσον δεν υπάρχει πραγματική διένεξη μνήμης). Αλλά η όμορφη ιδέα συντρίφτηκε από τη σκληρή πραγματικότητα - και σε αυτήν την ομιλία ο Cliff θα σας πει γιατί το HTM και το STM δεν είναι πολύ κατάλληλα για τις πρακτικές ανάγκες του υπολογισμού πολλαπλών νημάτων.

Μάικλ Σκοτ ​​- Διπλές δομές δεδομένων

19 κεφαλές ύδρας. Μεγάλη επισκόπηση του προγράμματος Μάικλ Σκοτ - Καθηγητής Πληροφορικής στο Πανεπιστήμιο του Ρότσεστερ, με τον οποίο τον συνέδεσε η μοίρα ήδη 34 ετών, και στο πανεπιστήμιο του Ουισκόνσιν-Μάντισον της οικίας του, ήταν κοσμήτορας για πέντε χρόνια. Ερευνά και διδάσκει στους μαθητές τον παράλληλο και κατανεμημένο προγραμματισμό και το σχεδιασμό γλώσσας.

Όλος ο κόσμος γνωρίζει τον Michael χάρη στο σχολικό βιβλίο "Πραγματολογία της Γλώσσας Προγραμματισμού", η τελευταία έκδοση του οποίου δημοσιεύτηκε σχετικά πρόσφατα - το 2015. Η δουλειά του "Αλγόριθμοι για κλιμακωτό συγχρονισμό σε πολυεπεξεργαστές κοινής μνήμης" έλαβε Βραβείο Dijkstra ως ένα από τα πιο γνωστά στον τομέα των κατανεμημένων υπολογιστών και ψέματα ανοιχτά στη διαδικτυακή βιβλιοθήκη του Πανεπιστημίου του Ρότσεστερ. Μπορεί επίσης να τον γνωρίζετε ως τον συγγραφέα του ίδιου του αλγορίθμου Michael-Scott από "Απλοί, γρήγοροι και πρακτικοί αλγόριθμοι μη αποκλεισμού και αποκλεισμού ταυτόχρονων ουρών".

Όσο για τον κόσμο της Java, αυτή είναι μια ειδική περίπτωση: μαζί με τον Doug Lea, ανέπτυξε τους αλγόριθμους μη αποκλεισμού και τις σύγχρονες ουρές στις οποίες λειτουργούν οι βιβλιοθήκες Java. Αυτό είναι ακριβώς το θέμα της κεντρικής ομιλίας "Διπλές δομές δεδομένων" - η εισαγωγή αυτών των δομών στην Java SE 6 έχει βελτιώσει την απόδοση κατά 10 φορές java.util.concurrent.ThreadPoolExecutor. Εάν αναρωτιέστε εκ των προτέρων τι είναι αυτές οι "Διπλές δομές δεδομένων", τότε υπάρχουν πληροφορίες σχετικά με αυτό σχετική δουλειά.

Maurice Herlihy - Blockchains και το μέλλον των κατανεμημένων υπολογιστών

19 κεφαλές ύδρας. Μεγάλη επισκόπηση του προγράμματος Maurice Herlihy - νικητής δύο βραβείων Dijkstra. Το πρώτο είναι για δουλειά "Συγχρονισμός χωρίς αναμονή" (Πανεπιστήμιο Brown), και το δεύτερο, πιο πρόσφατο - "Μνήμη συναλλαγών: Αρχιτεκτονική υποστήριξη για δομές δεδομένων χωρίς κλείδωμα" (Τεχνολογικό Πανεπιστήμιο της Βιρτζίνια). Το βραβείο Dijkstra αναγνωρίζει την εργασία της οποίας η σημασία και ο αντίκτυπος είναι ορατοί για τουλάχιστον δέκα χρόνια, και ο Maurice είναι σαφώς ένας από τους πιο γνωστούς ειδικούς στον τομέα. Αυτή τη στιγμή εργάζεται ως καθηγητής στο Πανεπιστήμιο Μπράουν και έχει μια λίστα επιτευγμάτων μεγάλης παραγράφου.

Σε αυτήν την τελική ομιλία, ο Maurice θα μιλήσει για τη θεωρία και την πρακτική των κατανεμημένων συστημάτων blockchain από τη σκοπιά των κλασικών του κατανεμημένου υπολογισμού και πώς απλοποιεί πολλά σχετικά προβλήματα. Αυτή είναι μια αναφορά αποκλειστικά για το θέμα του συνεδρίου - καθόλου για τη διαφημιστική εκστρατεία εξόρυξης, αλλά μάλλον για το πώς οι γνώσεις μας μπορούν να χρησιμοποιηθούν εκπληκτικά αποτελεσματικά και κατάλληλα σε σχέση με μια ποικιλία εργασιών.

Τον Ιούλιο του 2017, ο Maurice ήρθε ήδη στη Ρωσία για να παρακολουθήσει το σχολείο SPTDC, συμμετείχε στη συνάντηση JUG.ru και η ηχογράφηση μπορεί να προβληθεί στο YouTube:

Κύριο πρόγραμμα

Στη συνέχεια θα γίνει μια σύντομη επισκόπηση των εκθέσεων που περιλαμβάνονται στο πρόγραμμα. Μερικές από τις εκθέσεις περιγράφονται εδώ αναλυτικά, άλλες πιο συνοπτικά. Οι μεγάλες περιγραφές πήγαιναν κυρίως σε αγγλόφωνες εκθέσεις που απαιτούσαν συνδέσμους σε επιστημονικές εργασίες, όρους στη Wikipedia κ.λπ. Η πλήρης λίστα είναι διαθέσιμη δείτε στην ιστοσελίδα του συνεδρίου. Η λίστα στον ιστότοπο θα ενημερωθεί και θα συμπληρωθεί.

Λέσλι Λάμπορτ - Ε & Α

19 κεφαλές ύδρας. Μεγάλη επισκόπηση του προγράμματος Η Leslie Lamport είναι συγγραφέας σημαντικών εργασιών στον κατανεμημένο υπολογισμό. "Κόμμι" σημαίνει "Lamport TeX". Ήταν αυτός που πρώτος, το 1979, εισήγαγε την έννοια διαδοχική συνέπεια, και το άρθρο του "Πώς να φτιάξετε έναν υπολογιστή πολλαπλών επεξεργαστών που να εκτελεί σωστά προγράμματα πολλαπλών διεργασιών" έλαβε το βραβείο Dijkstra.

Αυτό είναι το πιο ασυνήθιστο μέρος του προγράμματος σε μορφή, γιατί δεν είναι καν μια αναφορά, αλλά μια συνεδρία ερωτήσεων και απαντήσεων. Όταν ένα σημαντικό μέρος του κοινού είναι ήδη εξοικειωμένο (ή μπορεί να εξοικειωθεί) με όλα τα είδη έργων που βασίζονται στη «θεωρία του Λάμπορτ», τα δικά του άρθρα και αναφορές, είναι πιο σημαντικό να αφιερώσετε όλο τον διαθέσιμο χρόνο στην άμεση επικοινωνία.

Η ιδέα είναι απλή - παρακολουθείτε δύο αναφορές στο YouTube: "Ο προγραμματισμός πρέπει να είναι κάτι περισσότερο από κωδικοποίηση" и "Εάν δεν γράφετε ένα πρόγραμμα, μην χρησιμοποιείτε γλώσσα προγραμματισμού" και ετοιμάστε τουλάχιστον μία ερώτηση και η Λέσλι απαντά.

Το πρώτο από αυτά τα δύο βίντεο το έχουμε ήδη μετατράπηκε σε άρθρο χάμπρο. Εάν δεν έχετε μια ώρα χρόνο για να παρακολουθήσετε το βίντεο, μπορείτε να το διαβάσετε γρήγορα σε μορφή κειμένου.

Σημείωση: Υπάρχουν πολλά ακόμη βίντεο της Leslie Lamport στο YouTube. Για παράδειγμα, υπάρχει ένα εξαιρετικό Μάθημα TLA+. Μια έκδοση εκτός σύνδεσης ολόκληρου του μαθήματος είναι διαθέσιμη στη διεύθυνση αρχική σελίδα του συγγραφέα, και το ανέβασε στο YouTube για ευκολότερη προβολή σε κινητές συσκευές.

Μάρτιν Κλέπμαν - Συγχρονισμός δεδομένων μεταξύ συσκευών χρηστών για κατανεμημένη συνεργασία

19 κεφαλές ύδρας. Μεγάλη επισκόπηση του προγράμματος Ο Martin Kleppmann είναι ερευνητής στο Πανεπιστήμιο του Cambridge που εργάζεται πάνω στο CRDT και στην επίσημη επαλήθευση αλγορίθμων. το βιβλίο του Μάρτιν "Σχεδιασμός Εφαρμογών Έντασης Δεδομένων", που κυκλοφόρησε το 2017, αποδείχθηκε πολύ επιτυχημένη και μπήκε στις λίστες των bestseller στον τομέα της αποθήκευσης και επεξεργασίας δεδομένων. Kevin Scott, CTO στη Microsoft, κάποτε ειπώθηκε: «Αυτό το βιβλίο πρέπει να είναι απαραίτητο για τους μηχανικούς λογισμικού. Αυτή είναι μια σπάνια πηγή που συνδυάζει θεωρία και πρακτική για να βοηθήσει τους προγραμματιστές πιο έξυπνους στο σχεδιασμό και την εφαρμογή υποδομών και συστημάτων δεδομένων.» Κάτι ανάλογο είπε και ο δημιουργός του Kafka και CTO του Confluent, Jay Kreps.

Πριν προχωρήσει στην ακαδημαϊκή έρευνα, ο Martin εργάστηκε στη βιομηχανία και συνίδρυσε δύο επιτυχημένες νεοφυείς επιχειρήσεις:

  • Rapportive, αφιερωμένο στην εμφάνιση του κοινωνικού προφίλ των επαφών από το email σας, το οποίο αγόρασε το LinkedIn το 2012.
  • Go Test It, μια υπηρεσία αυτόματης δοκιμής ιστοσελίδων σε διάφορα προγράμματα περιήγησης, την οποία αγόρασε η RedGate το 2009.

Σε γενικές γραμμές, ο Martin, αν και λιγότερο διάσημος από τους βασικούς μας ομιλητές, έχει ήδη καταφέρει να συμβάλει σε κάποιο βαθμό στην ανάπτυξη της κατανεμημένης πληροφορικής και στη βιομηχανία.

Σε αυτή την ομιλία, ο Μάρτιν θα μιλήσει για ένα θέμα πιο κοντά στην ακαδημαϊκή του έρευνα. Στα Έγγραφα Google και σε παρόμοιους καναπέδες συνεπεξεργασίας εγγράφων, η "συνεργατική επεξεργασία" αναφέρεται σε μια εργασία αναπαραγωγής: κάθε χρήστης έχει το δικό του αντίγραφο του κοινόχρηστου εγγράφου, το οποίο στη συνέχεια τροποποιεί και όλες οι αλλαγές αποστέλλονται μέσω του δικτύου στο υπόλοιπο συμμετέχοντες. Οι αλλαγές σε έγγραφα εκτός σύνδεσης οδηγούν σε προσωρινή ασυνέπεια του εγγράφου σε σχέση με άλλους συμμετέχοντες και ο εκ νέου συγχρονισμός απαιτεί χειρισμό διενέξεων. Γι' αυτό ακριβώς υπάρχουν Αντιγραφόμενοι τύποι δεδομένων χωρίς συγκρούσεις (CRDT), στην πραγματικότητα, είναι ένα αρκετά νέο πράγμα, η ουσία του οποίου διατυπώθηκε μόλις το 2011. Αυτή η ομιλία συζητά τι έχει συμβεί από τότε στον κόσμο της CRDT, ποιες είναι οι πιο πρόσφατες εξελίξεις, η προσέγγιση για τη δημιουργία τοπικών εφαρμογών γενικά και η χρήση μιας βιβλιοθήκης ανοιχτού κώδικα Αυτόματη συγχώνευση συγκεκριμένα.

Την επόμενη εβδομάδα θα δημοσιεύσουμε μια μεγάλη συνέντευξη με τον Martin στο Habré, θα είναι ενδιαφέρουσα.

Pedro Ramalhete - Δομές δεδομένων χωρίς αναμονή και συναλλαγές χωρίς αναμονή

19 κεφαλές ύδρας. Μεγάλη επισκόπηση του προγράμματος Ο Pedro εργάζεται στη Cisco και αναπτύσσει παράλληλους αλγόριθμους τα τελευταία δέκα περίπου χρόνια, συμπεριλαμβανομένων μηχανισμών συγχρονισμού, δομών δεδομένων χωρίς κλείδωμα και αναμονής και ό,τι μπορείτε να φανταστείτε για αυτό το θέμα. Τα τρέχοντα ερευνητικά και μηχανολογικά του ενδιαφέροντα εστιάζονται σε Universal Constructions, Software Transaction Memory, Persistent Memory και παρόμοιες τεχνολογίες που επιτρέπουν σωστές, επεκτάσιμες και ανεκτικές σε σφάλματα εφαρμογές. Είναι επίσης συγγραφέας ενός blog ευρέως γνωστό σε στενούς κύκλους Concurrency Freaks.

Οι περισσότερες εφαρμογές πολλαπλών νημάτων εκτελούνται πλέον σε παράλληλες δομές δεδομένων, από τη χρήση ουρών μηνυμάτων μεταξύ των φορέων έως τις δομές δεδομένων με ευρετήριο σε καταστήματα κλειδιών-τιμών. Δουλεύουν με επιτυχία στο Java JDK εδώ και πολλά χρόνια και σιγά σιγά προστίθενται στην C++.

Ο απλούστερος τρόπος για την υλοποίηση μιας παράλληλης δομής δεδομένων είναι μια διαδοχική (μονόκλωστη) υλοποίηση στην οποία οι μέθοδοι προστατεύονται από mutexes. Αυτό είναι προσβάσιμο σε κάθε Ιούνιο, αλλά έχει εμφανή προβλήματα με την κλιμάκωση και την απόδοση. Ταυτόχρονα, οι δομές δεδομένων χωρίς κλείδωμα και αναμονή όχι μόνο αντιμετωπίζουν καλύτερα σφάλματα, αλλά έχουν και καλύτερο προφίλ απόδοσης - ωστόσο, η ανάπτυξή τους απαιτεί βαθιά εξειδίκευση και προσαρμογή σε μια συγκεκριμένη εφαρμογή. Μια λάθος γραμμή κώδικα είναι αρκετή για να σπάσει τα πάντα.

Πώς μπορούμε να το κάνουμε έτσι ώστε ακόμη και ένας μη ειδικός να μπορεί να σχεδιάσει και να εφαρμόσει τέτοιες δομές δεδομένων; Είναι γνωστό ότι οποιοσδήποτε διαδοχικός αλγόριθμος μπορεί να γίνει ασφαλής σε νήματα χρησιμοποιώντας οποιοδήποτε από τα δύο καθολικό σχέδιο, ή μνήμη συναλλαγών. Πρώτον, μπορούν να μειώσουν το εμπόδιο για την είσοδο στην επίλυση αυτού του προβλήματος. Ωστόσο, και οι δύο λύσεις συνήθως οδηγούν σε αναποτελεσματική εφαρμογή. Ο Pedro θα μιλήσει για το πώς κατάφεραν να κάνουν αυτά τα σχέδια πιο αποτελεσματικά και πώς μπορείτε να τα χρησιμοποιήσετε για τους αλγόριθμούς σας.

Χάιντι Χάουαρντ - Απελευθέρωση κατανεμημένης συναίνεσης

19 κεφαλές ύδρας. Μεγάλη επισκόπηση του προγράμματος Η Heidi Howard είναι, όπως και ο Martin, ερευνήτρια κατανεμημένων συστημάτων στο Πανεπιστήμιο του Cambridge. Οι ειδικότητες της είναι η συνέπεια, η ανοχή σε σφάλματα, η απόδοση και η κατανεμημένη συναίνεση. Είναι περισσότερο γνωστή για τη γενίκευσή της στον αλγόριθμο των Παξών που ονομάζεται Ευέλικτοι Παξοί.

Υπενθυμίζουμε ότι Παξοί είναι μια οικογένεια πρωτοκόλλων για την επίλυση του προβλήματος της συναίνεσης σε ένα δίκτυο αναξιόπιστων υπολογιστών, με βάση το έργο του Leslie Lamport. Έτσι, ορισμένοι από τους ομιλητές μας εργάζονται πάνω σε προβλήματα που είχαν αρχικά προταθεί από τους άλλους ομιλητές μας - και αυτό είναι υπέροχο.

Η ικανότητα εύρεσης συναίνεσης μεταξύ πολλών κεντρικών υπολογιστών —για διευθυνσιοδότηση, εκλογή αρχηγού, αποκλεισμό ή συντονισμό— είναι ένα θεμελιώδες ζήτημα στα σύγχρονα κατανεμημένα συστήματα. Οι Παξοί είναι πλέον ο κύριος τρόπος επίλυσης προβλημάτων συναίνεσης και υπάρχει πολλή έρευνα που γίνεται γύρω από αυτό για την επέκταση και τη βελτιστοποίηση του αλγόριθμου για διάφορες πρακτικές ανάγκες.

Σε αυτή την ομιλία, θα επανεξετάσουμε τη θεωρητική βάση των Παξών, χαλαρώνοντας τις αρχικές απαιτήσεις και γενικεύοντας τον αλγόριθμο. Θα δούμε ότι οι Παξοί είναι ουσιαστικά μόνο μία επιλογή ανάμεσα σε μια τεράστια γκάμα προσεγγίσεων συναίνεσης και ότι άλλα σημεία στο φάσμα είναι επίσης πολύ χρήσιμα για την κατασκευή καλών κατανεμημένων συστημάτων.

Άλεξ Πετρόφ - Μειώστε το κόστος αποθήκευσής σας με Transient Replication και Cheap Quorums

19 κεφαλές ύδρας. Μεγάλη επισκόπηση του προγράμματος Ο Alex είναι ειδικός σε βάσεις δεδομένων και συστήματα αποθήκευσης, και το πιο σημαντικό για εμάς, ένας committer Κασσάνδρα. Αυτή τη στιγμή εργάζεται πάνω σε ένα βιβλίο, Εσωτερικά της βάσης δεδομένων, με τον O'Reilly.

Για συστήματα με τελική συνέπεια (στη ρωσική ορολογία - «απόλυτη συνέπεια»), μετά τη συντριβή ενός κόμβου ή τη διάσπαση δικτύου, πρέπει να λύσετε το ακόλουθο δίλημμα: είτε να συνεχίσετε να εκτελείτε αιτήματα, θυσιάζοντας τη συνέπεια, είτε να αρνηθείτε να τα εκτελέσετε και να θυσιάσετε τη διαθεσιμότητα. Σε ένα τέτοιο σύστημα, οι απαρτίες, τα επικαλυπτόμενα υποσύνολα κόμβων και η διασφάλιση ότι τουλάχιστον ένας κόμβος περιέχει την πιο πρόσφατη τιμή, μπορεί να είναι μια καλή λύση αιχμής. Μπορείτε να επιβιώσετε σε αποτυχίες και απώλεια συνδεσιμότητας με ορισμένους κόμβους, ενώ εξακολουθείτε να ανταποκρίνεστε με τις πιο πρόσφατες τιμές.

Ωστόσο, όλα έχουν το τίμημά τους. Ένα σχήμα αναπαραγωγής απαρτίας σημαίνει αυξημένο κόστος αποθήκευσης: τα περιττά δεδομένα πρέπει να αποθηκεύονται σε πολλούς κόμβους ταυτόχρονα για να διασφαλιστεί ότι υπάρχουν αρκετά διαθέσιμα αντίγραφα όταν παρουσιαστεί πρόβλημα. Αποδεικνύεται ότι δεν χρειάζεται να αποθηκεύσετε όλα τα δεδομένα σε όλα τα αντίγραφα. Μπορείτε να μειώσετε το φορτίο στο χώρο αποθήκευσης εάν αποθηκεύετε δεδομένα μόνο σε μέρος των κόμβων και χρησιμοποιείτε ειδικούς κόμβους (Transient Replica) για σενάρια χειρισμού αστοχιών.

Κατά τη διάρκεια της έκθεσης θα εξετάσουμε Αντίγραφα μαρτύρων, το σχήμα αναπαραγωγής που χρησιμοποιείται σε Αγγλικό κλειδί и Megastore, και η εφαρμογή αυτής της έννοιας στο Apache Cassandra ονομάζεται Μεταβατική αναπαραγωγή & Φτηνές Απαρτίες.

Ντμίτρι Βιούκοφ - Γορουτίνες εκτεθειμένες

19 κεφαλές ύδρας. Μεγάλη επισκόπηση του προγράμματος Ο Dmitry είναι προγραμματιστής στην Google που εργάζεται σε δυναμικές δοκιμές για C/C++ και Go - Address/Memory/ThreadSanitizer και παρόμοια εργαλεία για τον πυρήνα του Linux. Συνέβαλε στο Go ένας κλιμακωτός προγραμματιστής γορουτίνας, ένας δικτυακός ερευνητής και ένας παράλληλος συλλέκτης σκουπιδιών. Είναι ειδικός στο multithreading, συγγραφέας δώδεκα νέων αλγορίθμων μη αποκλεισμού και είναι κάτοχος Μαύρη ζώνη Intel.

Τώρα λίγα για την ίδια την έκθεση. Η γλώσσα Go έχει εγγενή υποστήριξη πολλαπλών νημάτων με τη μορφή γορουτίνων (ελαφριά νήματα) και καναλιών (ουρές FIFO). Αυτοί οι μηχανισμοί κάνουν πολύ εύκολο και ευχάριστο για τους χρήστες να γράφουν σύγχρονες εφαρμογές πολλαπλών νημάτων και μοιάζει με μαγικό. Όπως καταλαβαίνουμε, εδώ δεν υπάρχει μαγεία. Σε αυτήν την ομιλία, ο Ντμίτρι θα εμβαθύνει στις περιπλοκές του προγραμματιστή Go και θα δείξει τα μυστικά της εφαρμογής αυτής της «μαγείας». Αρχικά, θα δώσει μια επισκόπηση των κύριων στοιχείων του προγραμματιστή και θα σας πει πώς λειτουργεί. Στη συνέχεια, θα ρίξουμε μια πιο προσεκτική ματιά σε μεμονωμένες πτυχές, όπως η στρατηγική στάθμευσης/αποστάθμευσης και ο χειρισμός κλήσεων συστήματος αποκλεισμού. Τέλος, ο Ντμίτρι θα μιλήσει λίγο για πιθανές βελτιώσεις στον προγραμματιστή.

Ντμίτρι Μπουγκαϊτσένκο - Επιτάχυνση της ανάλυσης κατανεμημένων γραφημάτων με πιθανολογικά σκίτσα και πολλά άλλα

19 κεφαλές ύδρας. Μεγάλη επισκόπηση του προγράμματος Ο Ντμίτρι εργάστηκε στο outsourcing για σχεδόν 9 χρόνια χωρίς να χάσει την επαφή με το πανεπιστήμιο και την επιστημονική κοινότητα. Η ανάλυση μεγάλων δεδομένων στην Odnoklassniki έγινε για αυτόν μια μοναδική ευκαιρία να συνδυάσει τη θεωρητική κατάρτιση και την επιστημονική βάση με την ανάπτυξη πραγματικών προϊόντων σε ζήτηση.

Η ανάλυση κατανεμημένων γραφημάτων ήταν και παραμένει ένα δύσκολο έργο: όταν καθίσταται απαραίτητο να ληφθούν πληροφορίες για τις συνδέσεις μιας γειτονικής κορυφής, τα δεδομένα συχνά πρέπει να μεταφέρονται μεταξύ μηχανών, γεγονός που οδηγεί σε αυξημένο χρόνο εκτέλεσης και φόρτο στην υποδομή δικτύου. Σε αυτήν την ομιλία, θα δούμε πώς μπορείτε να αποκτήσετε σημαντικές ταχύτητες επεξεργασίας χρησιμοποιώντας πιθανολογικές δομές δεδομένων ή γεγονότα όπως η συμμετρία του γραφήματος φιλίας σε ένα κοινωνικό δίκτυο. Όλα αυτά απεικονίζονται με παραδείγματα κώδικα στο Apache Spark.

Denis Rystsov - Μειώστε το κόστος αποθήκευσής σας με Transient Replication και Cheap Quorums

19 κεφαλές ύδρας. Μεγάλη επισκόπηση του προγράμματος Denis - προγραμματιστής Cosmos DB, ειδικός στον έλεγχο μοντέλων συνέπειας, συναινετικών αλγορίθμων και κατανεμημένων συναλλαγών. Αυτήν τη στιγμή εργάζεται στη Microsoft και προηγουμένως εργαζόταν σε κατανεμημένα συστήματα στο Amazon και στο Yandex.

Σε αυτήν την ομιλία, θα ρίξουμε μια ματιά στα κατανεμημένα πρωτόκολλα συναλλαγών που έχουν εφευρεθεί τα τελευταία χρόνια, τα οποία μπορούν να εφαρμοστούν στην πλευρά του πελάτη πάνω από οποιοδήποτε χώρο αποθήκευσης δεδομένων που υποστηρίζει ενημέρωση υπό όρους (συγκρίνετε και ορίστε). Η ουσία είναι ότι η ζωή δεν τελειώνει με μια δέσμευση δύο φάσεων, οι συναλλαγές μπορούν να προστεθούν πάνω από οποιεσδήποτε βάσεις δεδομένων - σε επίπεδο εφαρμογής, αλλά διαφορετικά πρωτόκολλα (2PC, Percolator, RAMP) έχουν διαφορετικούς συμβιβασμούς και δεν μας δίνονται δωρεάν.

Αλεξέι Ζινόβιεφ - Δεν φτάνουν όλοι οι αλγόριθμοι ML στον κατανεμημένο παράδεισο

19 κεφαλές ύδρας. Μεγάλη επισκόπηση του προγράμματος Αλεξέι (zaleslaw) είναι επί μακρόν ομιλητής και μέλος επιτροπών προγραμμάτων σε άλλα συνέδρια. Πρακτική εκπαιδευτής στην EPAM Systems και είναι φίλος με το Hadoop/Spark και άλλα μεγάλα δεδομένα από το 2012.

Σε αυτήν την ομιλία, ο Alexey θα μιλήσει για τα προβλήματα προσαρμογής των κλασικών αλγορίθμων μηχανικής μάθησης για εκτέλεση σε κατανεμημένη λειτουργία με βάση την εμπειρία του από τη δουλειά με Apache Spark ML, Apache Mahout, Apache Flink ML και την εμπειρία δημιουργίας Apache Ignite ML. Ο Alexey θα μιλήσει επίσης για την εφαρμογή κατανεμημένων αλγορίθμων ML σε αυτά τα πλαίσια.

Και τέλος, δύο αναφορές από το Yandex σχετικά με τη βάση δεδομένων Yandex.

Vladislav Kuznetsov - Βάση δεδομένων Yandex - πώς διασφαλίζουμε την ανοχή σφαλμάτων

19 κεφαλές ύδρας. Μεγάλη επισκόπηση του προγράμματος Ο Vladislav είναι προγραμματιστής στο Yandex στην ομάδα κατανεμημένης πλατφόρμας. Η βάση δεδομένων Yandex είναι ένα οριζόντια επεκτάσιμο, γεωδιανεμημένο, ανεκτικό σε σφάλματα DBMS που μπορεί να αντέξει την αστοχία δίσκων, διακομιστών, rack και κέντρων δεδομένων χωρίς να χάσει τη συνοχή. Για να εξασφαλιστεί η ανοχή σφαλμάτων, χρησιμοποιείται ένας αποκλειστικός αλγόριθμος για την επίτευξη κατανεμημένης συναίνεσης, καθώς και μια σειρά από τεχνικές λύσεις, οι οποίες συζητούνται λεπτομερώς στην έκθεση. Η αναφορά μπορεί να ενδιαφέρει τόσο τους προγραμματιστές DBMS όσο και τους προγραμματιστές λύσεων εφαρμογών που βασίζονται σε DBMS.

Semyon Checherinda - Κατανεμημένες συναλλαγές στην ΥΔΒ

19 κεφαλές ύδρας. Μεγάλη επισκόπηση του προγράμματος Ο Semyon είναι προγραμματιστής στην ομάδα κατανεμημένων πλατφορμών στο Yandex, που εργάζεται για τη δυνατότητα πολλαπλής χρήσης της εγκατάστασης YDB.

Η βάση δεδομένων Yandex έχει σχεδιαστεί για ερωτήματα OLTP και συμμορφώνεται με τις απαιτήσεις ACID για ένα σύστημα συναλλαγών. Σε αυτήν την αναφορά, θα εξετάσουμε τον αλγόριθμο προγραμματισμού συναλλαγών που βρίσκεται στη βάση του συστήματος συναλλαγών YDB. Ας δούμε ποιες οντότητες συμμετέχουν στις συναλλαγές, ποιος εκχωρεί παγκόσμια τάξη στις συναλλαγές, πώς επιτυγχάνεται η ατομικότητα της συναλλαγής, η αξιοπιστία και ένα αυστηρό επίπεδο απομόνωσης. Χρησιμοποιώντας ένα κοινό πρόβλημα ως παράδειγμα, ας δούμε τις υλοποιήσεις συναλλαγών χρησιμοποιώντας δεσμεύσεις δύο φάσεων και ντετερμινιστικές συναλλαγές. Ας συζητήσουμε τις διαφορές τους.

Ποιο είναι το επόμενο;

Το πρόγραμμα του συνεδρίου συνεχίζει να είναι γεμάτο με νέες εκθέσεις. Συγκεκριμένα, αναμένουμε έκθεση από Νικήτα Κοβάλ (ndkoval) από την JetBrains και Όλεγκ Αναστάσιεφ (m0nstermind) από την εταιρεία Odnoklassniki. Ο Nikita εργάζεται σε αλγόριθμους για κορουτίνες στην ομάδα Kotlin και ο Oleg αναπτύσσει αρχιτεκτονική και λύσεις για συστήματα υψηλού φορτίου στην πλατφόρμα Odnoklassniki. Επιπλέον, υπάρχει ακόμη μια υπό όρους κενή θέση, η επιτροπή προγράμματος εργάζεται με υποψήφιους για αυτήν αυτήν τη στιγμή.

Το συνέδριο της Ύδρας θα πραγματοποιηθεί στις 11-12 Ιουλίου στην Αγία Πετρούπολη. Εισιτήρια είναι διαθέσιμα αγορά στην επίσημη ιστοσελίδα. Παρακαλούμε δώστε προσοχή στη διαθεσιμότητα των Online εισιτηρίων - εάν για κάποιο λόγο δεν μπορείτε να φτάσετε στην Αγία Πετρούπολη αυτές τις μέρες.

Τα λέμε στην Ύδρα!

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο