19 Hydra-Köpfe. Toller Überblick über das Programm

Am 11. und 12. Juli findet in St. Petersburg eine Konferenz statt Hydra, gewidmet der Entwicklung paralleler und verteilter Systeme. Der Trick von Hydra besteht darin, dass es coole Wissenschaftler (die normalerweise nur auf ausländischen wissenschaftlichen Konferenzen zu finden sind) und berühmte praktizierende Ingenieure in einem großen Programm an der Schnittstelle von Wissenschaft und Praxis vereint.

Hydra ist eine unserer wichtigsten Konferenzen der letzten Jahre. Dem ging eine sehr ernsthafte Vorbereitung, Auswahl der Redner und Berichte voraus. Letzte Woche darüber Habro-Interview erschien mit dem Direktor der JUG.ru Group, Alexey Fedorov (23derevo).

Wir bereits erzählt über drei wichtige Teilnehmer, die Begründer der Theorie verteilter Systeme – Leslie Lamport, Maurice Herlihy und Michael Scott. Es ist Zeit, ausführlicher über das gesamte Programm zu sprechen!

19 Hydra-Köpfe. Toller Überblick über das Programm

Motivation

Wenn Sie sich mit Programmierung befassen, haben Sie es auf die eine oder andere Weise mit Multithreading und verteiltem Rechnen zu tun. Experten auf den relevanten Gebieten arbeiten direkt mit ihnen zusammen, aber implizit blickt uns die Verteilung von überall her an: In jedem Multicore-Computer oder verteilten Dienst gibt es etwas, das parallel Berechnungen durchführt.

Es gibt viele Konferenzen, die verschiedene Aspekte der Anwendungsprogrammierung abdecken. Auf der anderen Seite des Spektrums gibt es spezialisierte wissenschaftliche Fakultäten, die große Mengen komplexer Theorie in Vorlesungsform vermitteln. Parallel zu Hydra gibt es beispielsweise in St. Petersburg SPTDC-Schule. Auf der Hydra-Konferenz haben wir versucht, harte Praxis, Wissenschaft und alles an ihrer Schnittstelle zusammenzubringen.

Denken Sie darüber nach: Wir leben in einer erstaunlichen Zeit, in der Sie die Begründer der von uns untersuchten Wissenschafts- und Ingenieurwissenschaften persönlich treffen können. Die Physiker werden weder Newton noch Einstein treffen – der Zug ist abgefahren. Aber neben uns leben noch diejenigen, die die Grundlagen der Theorie verteilter Systeme geschaffen, populäre Programmiersprachen erfunden und all dies erstmals in funktionierenden Prototypen verkörpert haben. Diese Leute haben ihren Job nicht auf halbem Weg aufgegeben, sie arbeiten derzeit an drängenden Themen in weltbekannten Universitäten und Unternehmen und sind heute die größten Wissens- und Erfahrungsquellen.

Andererseits bleibt die Möglichkeit, sie zu treffen, meist rein theoretisch: Nur wenige von uns können ständig öffentliche Veranstaltungen an einer Universität von Rochester verfolgen und dann in die USA und zurück eilen, um einen Vortrag mit Michael Scott zu halten. Der Besuch aller Hydra-Mitglieder würde ein kleines Vermögen kosten, ganz zu schweigen von der enormen Zeitverschwendung (obwohl es sich nach einer interessanten Aufgabe anhört).

Andererseits haben wir viele Top-Ingenieure, die gerade an drängenden Problemen in verteilten Systemen arbeiten, und sie haben definitiv viel zu erzählen. Aber hier ist das Problem – sie arbeiten, und ihre Zeit ist wertvoll. Ja, wenn Sie Mitarbeiter von Microsoft, Google oder JetBrains sind, steigt die Wahrscheinlichkeit, einen der berühmten Redner bei einer internen Veranstaltung zu treffen, stark an, aber im Allgemeinen passiert das nicht jeden Tag.

Auf diese Weise erfüllt die Hydra-Konferenz eine wichtige Aufgabe, die die meisten von uns alleine nicht bewältigen können: Sie bringt an einem Ort und zu einer Zeit Menschen zusammen, deren Ideen oder Interaktionen mit ihnen Ihr Leben verändern können. Ich gebe zu, dass nicht jeder verteilte Systeme oder einige komplexe grundlegende Dinge benötigt. Sie können CRUDs ein Leben lang in PHP programmieren und bleiben rundum glücklich. Aber wer es braucht, das ist Ihre Chance.

Seit der ersten Ankündigung der Hydra-Konferenz auf Habré ist ziemlich viel Zeit vergangen. In dieser Zeit wurde viel Arbeit geleistet – und nun haben wir eine Liste mit fast allen Berichten. Keine trägen Single-Thread-Algorithmen, nur purer verteilter Hardcore! Lassen Sie uns mit allgemeinen Worten abschließen und sehen, was wir jetzt in unseren Händen haben.

Keynotes

Keynotes beginnen und beenden die Konferenztage. Normalerweise besteht der Zweck einer Eröffnungsrede darin, den allgemeinen Geist und die Richtung der Konferenz festzulegen. Die abschließende Keynote zieht einen Schlussstrich und erklärt, wie wir mit den während der Konferenz erworbenen Kenntnissen und Fähigkeiten leben können. Der Anfang und das Ende: Was am besten in Erinnerung bleibt und im Allgemeinen an Bedeutung gewinnt.

Cliff Click Der H2O-verteilte K/V-Algorithmus

19 Hydra-Köpfe. Toller Überblick über das Programm Cliff ist eine Legende in der Java-Welt. In den späten 90er Jahren schrieb er für seine Doktorarbeit eine Arbeit mit dem Titel „Analysen kombinieren, Optimierungen kombinieren“, das einige Zeit später die Grundlage für den HotSpot JVM Server Compiler wurde. Zwei Jahre später arbeitete er bereits bei Sun Microsystems an der JVM und zeigte der ganzen Welt, dass JIT eine Daseinsberechtigung hat. Diese ganze Geschichte darüber, dass Java eine der schnellsten modernen Laufzeitumgebungen mit den intelligentesten und schnellsten Optimierungen ist, stammt von Cliff Click. Ganz am Anfang glaubte man, dass man, wenn ein statischer Compiler auf etwas zugreifen kann, nicht einmal versuchen muss, es zu jiten. Dank der Arbeit von Cliff und seinem Team begann die Erstellung aller neuen Sprachen standardmäßig mit der Idee der JIT-Kompilierung. Natürlich war dies kein Ein-Mann-Auftrag, aber Cliff spielte dabei eine sehr wichtige Rolle.

In der Eröffnungsrede wird Cliff über sein anderes Unterfangen sprechen – H20, eine In-Memory-Plattform für verteiltes und skalierbares maschinelles Lernen für industrielle Anwendungen. Oder genauer gesagt, über die verteilte Speicherung von Schlüssel-Wert-Paaren darin. Dies ist ein sehr schneller Speicher mit vielen interessanten Eigenschaften (die genaue Liste finden Sie in Beschreibung), die die Verwendung ähnlicher Lösungen in der Mathematik des Big-Data-Streamings ermöglichen.

Ein weiterer Bericht, den Cliff geben wird, ist: Das Azul Hardware Transactional Memory-Erlebnis. Ein weiterer Teil seiner Biografie - zehn Jahre Arbeit bei Azul, wo er viele Dinge im Azul-Hardware- und Technologie-Stack aktualisiert und verbessert hat: JIT-Compiler, Laufzeit, Thread-Modell, Fehlerbehandlung, Stapelbehandlung, Hardware-Interrupts, Klassenladen und so weiter und so weiter – nun, Sie verstehen das Idee.

Der interessanteste Teil begann, als sie Hardware für ein großes Unternehmen herstellten – einen Supercomputer, auf dem Java ausgeführt wurde. Es handelte sich um eine ziemlich innovative Sache, die speziell auf Java zugeschnitten war, das besondere Anforderungen stellt – Lesespeicherbarrieren für Garbage Collection mit geringer Pause, Arrays mit Grenzprüfung, virtuelle Aufrufe … Eine der coolsten Technologien ist der Hardware-Transaktionsspeicher. Der gesamte L1 aller 864 Kerne könnte am Transaktionsschreiben teilnehmen, was besonders wichtig für die Arbeit mit Sperren in Java ist (synchronisierte Blöcke können parallel arbeiten, solange kein echter Speicherkonflikt besteht). Doch die schöne Idee wurde von der harten Realität zunichte gemacht – und in diesem Vortrag verrät Ihnen Cliff, warum HTM und STM für die praktischen Anforderungen des Multithread-Computing nicht besonders gut geeignet sind.

Michael Scott— Duale Datenstrukturen

19 Hydra-Köpfe. Toller Überblick über das Programm Michael Scott - Professor für Informatik an der Universität Rochester, mit dem ihn das Schicksal verband schon 34 Jahre altund an seiner Heimatuniversität Wisconsin-Madison war er fünf Jahre lang Dekan. Er erforscht und unterrichtet Studenten über parallele und verteilte Programmierung und Sprachdesign.

Dank des Lehrbuchs kennt die ganze Welt Michael „Programmiersprachenpragmatik“, dessen neueste Ausgabe erst vor relativ kurzer Zeit veröffentlicht wurde – im Jahr 2015. Sein Job „Algorithmen zur skalierbaren Synchronisation auf Shared-Memory-Multiprozessoren“ erhalten Dijkstra-Preis als einer der bekanntesten auf dem Gebiet des verteilten Rechnens und offen liegen in der Online-Bibliothek der University of Rochester. Möglicherweise kennen Sie ihn auch als Autor des Michael-Scott-Algorithmus „Einfache, schnelle und praktische nicht-blockierende und blockierende Algorithmen für gleichzeitige Warteschlangen“.

Was die Java-Welt betrifft, ist dies ein Sonderfall: Zusammen mit Doug Lea entwickelte er die nicht blockierenden Algorithmen und synchronen Warteschlangen, auf denen Java-Bibliotheken arbeiten. Genau darum geht es in der Keynote „Duale Datenstrukturen“ – die Einführung dieser Strukturen in Java SE 6 hat die Leistung um das Zehnfache verbessert java.util.concurrent.ThreadPoolExecutor. Wenn Sie sich vorab fragen, was diese „Dualen Datenstrukturen“ sind, dann gibt es Informationen dazu damit verbundene Arbeiten.

Maurice Herlihy - Blockchains und die Zukunft des verteilten Rechnens

19 Hydra-Köpfe. Toller Überblick über das Programm Maurice Herlihy - Gewinner von zwei Dijkstra-Preisen. Der erste dient der Bearbeitung „Wartefreie Synchronisierung“ (Brown University) und die zweite, neuere - „Transaktionaler Speicher: Architekturunterstützung für sperrenfreie Datenstrukturen“ (Virginia Tech University). Der Dijkstra-Preis würdigt Arbeiten, deren Bedeutung und Wirkung seit mindestens zehn Jahren sichtbar sind, und Maurice ist eindeutig einer der renommiertesten Experten auf diesem Gebiet. Derzeit arbeitet er als Professor an der Brown University und kann auf eine absatzlange Liste an Erfolgen zurückblicken.

In dieser abschließenden Keynote wird Maurice über Theorie und Praxis verteilter Blockchain-Systeme aus der Sicht der Klassiker des verteilten Rechnens sprechen und darüber, wie diese viele damit verbundene Probleme vereinfachen. Hierbei handelt es sich um einen Bericht ausschließlich zum Thema der Tagung – keineswegs um den Mining-Hype, sondern vielmehr darum, wie sich unser Wissen erstaunlich effektiv und sinnvoll für vielfältige Aufgabenstellungen einsetzen lässt.

Im Juli 2017 kam Maurice bereits nach Russland, um die SPTDC-Schule zu besuchen, nahm am JUG.ru-Treffen teil und die Aufzeichnung kann auf YouTube angesehen werden:

Hauptprogramm

Anschließend folgt ein kurzer Überblick über die im Programm enthaltenen Berichte. Einige der Berichte werden hier ausführlicher beschrieben, andere kürzer. Lange Beschreibungen gingen hauptsächlich auf englischsprachige Berichte zurück, die Links zu wissenschaftlichen Arbeiten, Begriffen auf Wikipedia usw. erforderten. Die vollständige Liste ist verfügbar siehe auf der Konferenzwebsite. Die Liste auf der Website wird aktualisiert und ergänzt.

Leslie Lamport - FAQ

19 Hydra-Köpfe. Toller Überblick über das Programm Leslie Lamport ist Autor wegweisender Arbeiten im Bereich verteiltes Rechnen. "Latex" steht für „Lamport TeX“. Er war es, der das Konzept 1979 erstmals vorstellte gleichbleibende Konsistenz, und sein Artikel „Wie man einen Multiprozessor-Computer baut, der Multiprozessprogramme korrekt ausführt“ erhielt den Dijkstra-Preis.

Dies ist vom Format her der ungewöhnlichste Teil des Programms, denn es handelt sich nicht einmal um einen Bericht, sondern um eine Frage-und-Antwort-Runde. Wenn ein erheblicher Teil des Publikums bereits mit allen möglichen Werken, die auf „Lamports Theorie“ basieren, seinen eigenen Artikeln und Berichten vertraut ist (oder vertraut werden kann), ist es wichtiger, alle verfügbare Zeit in die direkte Kommunikation zu investieren.

Die Idee ist einfach: Sie sehen sich zwei Berichte auf YouTube an: „Programmieren sollte mehr sein als Programmieren“ и „Wenn Sie kein Programm schreiben, verwenden Sie keine Programmiersprache“ und bereiten Sie mindestens eine Frage vor, und Leslie antwortet.

Das erste dieser beiden Videos haben wir bereits wurde zu einem Habro-Artikel. Wenn Sie keine Stunde Zeit haben, das Video anzusehen, können Sie es schnell in Textform lesen.

Hinweis: Es gibt viele weitere Videos von Leslie Lamport auf YouTube. Es gibt zum Beispiel eine tolle TLA+-Kurs. Eine Offline-Version des gesamten Kurses ist unter verfügbar Homepage des Autors, und er hat es auf YouTube hochgeladen, um es auf Mobilgeräten einfacher ansehen zu können.

Martin Kleppmann - Synchronisierung von Daten über Benutzergeräte hinweg für verteilte Zusammenarbeit

19 Hydra-Köpfe. Toller Überblick über das Programm Martin Kleppmann ist Forscher an der Universität Cambridge und beschäftigt sich mit CRDT und formaler Verifizierung von Algorithmen. Martins Buch „Entwerfen datenintensiver Anwendungen“Das 2017 veröffentlichte Buch erwies sich als sehr erfolgreich und schaffte es auf die Bestsellerlisten im Bereich Datenspeicherung und -verarbeitung. Kevin Scott, CTO bei Microsoft, sagte einmal: „Dieses Buch sollte ein Muss für Softwareentwickler sein. Dies ist eine seltene Ressource, die Theorie und Praxis kombiniert, um Entwicklern dabei zu helfen, Infrastruktur und Datensysteme intelligenter zu entwerfen und zu implementieren.“ Der Erfinder von Kafka und CTO von Confluent, Jay Kreps, sagte etwas Ähnliches.

Bevor er in die akademische Forschung wechselte, arbeitete Martin in der Industrie und war Mitbegründer zweier erfolgreicher Start-ups:

  • Rapportive, gewidmet der Anzeige des sozialen Profils von Kontakten aus Ihrer E-Mail, das LinkedIn 2012 gekauft hat;
  • Go Test It, ein Dienst zum automatischen Testen von Websites in verschiedenen Browsern, den RedGate 2009 gekauft hat.

Im Allgemeinen konnte Martin, obwohl er weniger bekannt ist als unsere Keynotes, bereits einen gewissen Beitrag zur Entwicklung des verteilten Rechnens und zur Branche leisten.

In diesem Vortrag wird Martin über ein Thema sprechen, das näher an seiner akademischen Forschung liegt. In Google Docs und ähnlichen Sofas für die gemeinsame Bearbeitung von Dokumenten bezieht sich „kollaborative Bearbeitung“ auf eine Replikationsaufgabe: Jeder Benutzer verfügt über eine eigene Replik des freigegebenen Dokuments, die er dann ändert, und alle Änderungen werden über das Netzwerk an den Rest gesendet Teilnehmer. Offline-Änderungen an Dokumenten führen zu vorübergehenden Inkonsistenzen des Dokuments im Verhältnis zu anderen Teilnehmern und eine erneute Synchronisierung erfordert eine Konfliktbearbeitung. Genau dafür gibt es sie Konfliktfreie replizierte Datentypen (CRDT) ist in der Tat eine ziemlich neue Sache, deren Kern erst 2011 formuliert wurde. In diesem Vortrag wird besprochen, was seitdem in der Welt von CRDT passiert ist, was die neuesten Fortschritte sind, der Ansatz zur Erstellung von Local-First-Anwendungen im Allgemeinen und die Verwendung einer Open-Source-Bibliothek Automerge insbesondere.

Nächste Woche werden wir ein langes Interview mit Martin auf Habré veröffentlichen, es wird interessant sein.

Pedro Ramalhete - Wartefreie Datenstrukturen und wartefreie Transaktionen

19 Hydra-Köpfe. Toller Überblick über das Programm Pedro arbeitet bei Cisco und entwickelt seit etwa zehn Jahren parallele Algorithmen, darunter Synchronisationsmechanismen, sperren- und wartefreie Datenstrukturen und alles, was man sich zu diesem Thema vorstellen kann. Seine aktuellen Forschungs- und Ingenieurinteressen konzentrieren sich auf universelle Konstruktionen, Software-Transaktionsspeicher, persistenten Speicher und ähnliche Technologien, die korrekte, skalierbare und fehlertolerante Anwendungen ermöglichen. Er ist auch Autor eines in engen Kreisen weithin bekannten Blogs Gleichzeitigkeitsfreaks.

Die meisten Multithread-Anwendungen laufen heute auf parallelen Datenstrukturen, von der Verwendung von Nachrichtenwarteschlangen zwischen Akteuren bis hin zu indizierten Datenstrukturen in Schlüsselwertspeichern. Sie arbeiten seit vielen Jahren erfolgreich im Java JDK und werden langsam in C++ integriert.

Der einfachste Weg, eine parallele Datenstruktur zu implementieren, ist eine sequentielle (Single-Threaded) Implementierung, bei der Methoden durch Mutexe geschützt sind. Dies ist für jeden June zugänglich, weist jedoch offensichtliche Probleme bei der Skalierung und Leistung auf. Gleichzeitig verkraften sperren- und wartefreie Datenstrukturen nicht nur Fehler besser, sondern weisen auch ein besseres Leistungsprofil auf – ihre Entwicklung erfordert allerdings tiefes Fachwissen und eine Anpassung an eine konkrete Anwendung. Eine falsche Codezeile reicht aus, um alles kaputt zu machen.

Wie können wir dafür sorgen, dass auch Laien solche Datenstrukturen entwerfen und implementieren können? Es ist bekannt, dass jeder sequentielle Algorithmus mit beiden Threads sicher gemacht werden kann universal Designoder Transaktionsspeicher. Zum einen können sie die Hürde für den Einstieg in die Lösung dieses Problems senken. Allerdings führen beide Lösungen typischerweise zu einer ineffektiven Umsetzung. Pedro wird darüber sprechen, wie es ihnen gelungen ist, diese Designs effizienter zu machen und wie Sie sie für Ihre Algorithmen verwenden können.

Heidi Howard - Befreiender verteilter Konsens

19 Hydra-Köpfe. Toller Überblick über das Programm Heidi Howard ist wie Martin Forscherin für verteilte Systeme an der Universität Cambridge. Ihre Spezialgebiete sind Konsistenz, Fehlertoleranz, Leistung und verteilter Konsens. Sie ist vor allem für ihre Verallgemeinerung des sogenannten Paxos-Algorithmus bekannt Flexible Paxos.

Daran erinnern, dass Paxos ist eine Protokollfamilie zur Lösung des Konsensproblems in einem Netzwerk unzuverlässiger Computer, basierend auf der Arbeit von Leslie Lamport. Daher arbeiten einige unserer Redner an Problemen, die ursprünglich von unseren anderen Rednern vorgeschlagen wurden – und das ist wunderbar.

Die Fähigkeit, einen Konsens zwischen mehreren Hosts zu finden – für die Adressierung, Wahl des Leiters, Blockierung oder Koordination – ist ein grundlegendes Problem in modernen verteilten Systemen. Paxos ist heute der wichtigste Weg, Konsensprobleme zu lösen, und es wird viel daran geforscht, um den Algorithmus für verschiedene praktische Anforderungen zu erweitern und zu optimieren.

In diesem Vortrag werden wir die theoretischen Grundlagen von Paxos erneut betrachten, die ursprünglichen Anforderungen lockern und den Algorithmus verallgemeinern. Wir werden sehen, dass Paxos im Wesentlichen nur eine Option unter einer Vielzahl von Konsensansätzen ist und dass andere Punkte im Spektrum ebenfalls sehr nützlich für den Aufbau guter verteilter Systeme sind.

Alex Petrov — Reduzieren Sie Ihre Speicherkosten mit transienter Replikation und günstigen Quoren

19 Hydra-Köpfe. Toller Überblick über das Programm Alex ist ein Spezialist für Datenbank- und Speichersysteme und, was für uns noch wichtiger ist, ein Committer in Kassandra. Derzeit arbeitet er mit O'Reilly an einem Buch mit dem Titel Database Internals.

Für Systeme mit eventuelle Konsistenz (in der russischen Terminologie „ultimative Konsistenz“) müssen Sie nach einem Knotenabsturz oder einer Netzwerkteilung das folgende Dilemma lösen: Entweder weiterhin Anfragen ausführen und dabei die Konsistenz opfern oder die Ausführung verweigern und die Verfügbarkeit opfern. In einem solchen System können Quoren, die Überlappung von Teilmengen von Knoten und die Sicherstellung, dass mindestens ein Knoten den neuesten Wert enthält, eine gute Edge-Lösung sein. Sie können Ausfälle und Verbindungsverluste zu einigen Knoten überstehen und dennoch mit den neuesten Werten reagieren.

Allerdings hat alles seinen Preis. Ein Quorum-Replikationsschema bedeutet erhöhte Speicherkosten: Redundante Daten müssen auf mehreren Knoten gleichzeitig gespeichert werden, um sicherzustellen, dass im Problemfall genügend Kopien verfügbar sind. Es stellt sich heraus, dass Sie nicht alle Daten auf allen Replikaten speichern müssen. Sie können die Belastung des Speichers reduzieren, wenn Sie Daten nur auf einem Teil der Knoten speichern und spezielle Knoten (Transient Replica) für Fehlerbehandlungsszenarien verwenden.

Im Verlauf des Berichts werden wir darüber nachdenken Zeugenrepliken, das Replikationsschema, das in verwendet wird Schlüssel и Megastore, und die Implementierung dieses Konzepts in Apache Cassandra genannt Transiente Replikation und günstige Quoren.

Dmitri Wjukow - Goroutinen entlarvt

19 Hydra-Köpfe. Toller Überblick über das Programm Dmitry ist Entwickler bei Google und arbeitet an dynamischen Tests für C/C++ und Go – Address/Memory/ThreadSanitizer sowie ähnlichen Tools für den Linux-Kernel. Beitrag zu Go, einem skalierbaren Goroutine-Scheduler, einem Netzwerk-Poller und einem parallelen Garbage Collector. Er ist Experte für Multithreading, Autor eines Dutzend neuer nicht blockierender Algorithmen und Eigentümer von Schwarzer Gürtel Intel.

Nun ein wenig zum Bericht selbst. Die Go-Sprache bietet native Unterstützung für Multithreading in Form von Goroutinen (Light Threads) und Kanälen (FIFO-Warteschlangen). Diese Mechanismen machen es für Benutzer sehr einfach und angenehm, moderne Multithread-Anwendungen zu schreiben, und es sieht aus wie Magie. Soweit wir wissen, gibt es hier keine Magie. In diesem Vortrag wird Dmitry in die Feinheiten des Go-Schedulers eintauchen und die Geheimnisse der Umsetzung dieser „Magie“ zeigen. Zunächst gibt er einen Überblick über die Hauptkomponenten des Schedulers und erklärt Ihnen, wie er funktioniert. Als nächstes werden wir einzelne Aspekte wie die Ein-/Ausparkstrategie und den Umgang mit blockierenden Systemaufrufen genauer betrachten. Abschließend wird Dmitry noch ein wenig über mögliche Verbesserungen des Planers sprechen.

Dmitri Bugaichenko - Beschleunigen Sie die Analyse verteilter Diagramme mit probabilistischen Skizzen und mehr

19 Hydra-Köpfe. Toller Überblick über das Programm Dmitry war fast 9 Jahre lang im Outsourcing tätig, ohne den Kontakt zur Universität und zur wissenschaftlichen Gemeinschaft zu verlieren. Die Big-Data-Analyse in Odnoklassniki wurde für ihn zu einer einzigartigen Chance, theoretische Ausbildung und wissenschaftliche Grundlagen mit der Entwicklung realer, gefragter Produkte zu verbinden.

Die verteilte Graphanalyse war und ist eine schwierige Aufgabe: Wenn es notwendig wird, Informationen über die Verbindungen eines benachbarten Knotens zu erhalten, müssen die Daten häufig zwischen Maschinen übertragen werden, was zu einer erhöhten Ausführungszeit und Belastung der Netzwerkinfrastruktur führt. In diesem Vortrag erfahren Sie, wie Sie durch die Verwendung probabilistischer Datenstrukturen oder Fakten wie der Symmetrie des Freundschaftsdiagramms in einem sozialen Netzwerk erhebliche Verarbeitungsgeschwindigkeiten erzielen können. All dies wird anhand von Codebeispielen in Apache Spark veranschaulicht.

Denis Rystsov - Reduzieren Sie Ihre Speicherkosten mit transienter Replikation und günstigen Quoren

19 Hydra-Köpfe. Toller Überblick über das Programm Denis – Entwickler Kosmos DB, ein Experte für die Überprüfung von Konsistenzmodellen, Konsensalgorithmen und verteilten Transaktionen. Derzeit arbeitet er bei Microsoft und arbeitete zuvor an verteilten Systemen bei Amazon und Yandex.

In diesem Vortrag werfen wir einen Blick auf die verteilten Transaktionsprotokolle, die in den letzten Jahren erfunden wurden und auf der Clientseite auf jedem Datenspeicher implementiert werden können, der bedingte Aktualisierungen (Vergleichen und Festlegen) unterstützt. Die Quintessenz ist, dass das Leben nicht mit einem zweiphasigen Commit endet, Transaktionen können auf jeder Datenbank hinzugefügt werden – auf Anwendungsebene, aber unterschiedliche Protokolle (2PC, Percolator, RAMP) haben unterschiedliche Kompromisse und werden uns nicht gegeben kostenlos.

Alexey Sinowjew - Nicht alle ML-Algorithmen schaffen es in den verteilten Himmel

19 Hydra-Köpfe. Toller Überblick über das Programm Alexei (Zaleslaw) ist langjähriger Redner und Mitglied in Programmkomitees anderer Konferenzen. Praktizierender Trainer bei EPAM Systems und seit 2012 mit Hadoop/Spark und anderen Big Data befreundet.

In diesem Vortrag wird Alexey über die Probleme bei der Anpassung klassischer Algorithmen für maschinelles Lernen für die Ausführung im verteilten Modus sprechen, basierend auf seiner Erfahrung bei der Arbeit mit Apache Spark ML, Apache Mahout, Apache Flink ML und der Erfahrung bei der Erstellung von Apache Ignite ML. Alexey wird auch über die Implementierung verteilter ML-Algorithmen in diesen Frameworks sprechen.

Und zum Schluss noch zwei Berichte von Yandex über die Yandex-Datenbank.

Wladislaw Kusnezow - Yandex-Datenbank – wie wir Fehlertoleranz sicherstellen

19 Hydra-Köpfe. Toller Überblick über das Programm Vladislav ist Entwickler bei Yandex in der Gruppe der verteilten Plattformen. Yandex Database ist ein horizontal skalierbares, geografisch verteiltes, fehlertolerantes DBMS, das dem Ausfall von Festplatten, Servern, Racks und Rechenzentren standhalten kann, ohne die Konsistenz zu verlieren. Zur Gewährleistung der Fehlertoleranz werden ein proprietärer Algorithmus zur Erzielung eines verteilten Konsenses sowie eine Reihe technischer Lösungen verwendet, die im Bericht ausführlich erläutert werden. Der Bericht könnte sowohl für DBMS-Entwickler als auch für Entwickler von auf DBMS basierenden Anwendungslösungen von Interesse sein.

Semyon Checherinda - Verteilte Transaktionen in YDB

19 Hydra-Köpfe. Toller Überblick über das Programm Semyon ist Entwickler in der verteilten Plattformgruppe bei Yandex und arbeitet an der Möglichkeit einer mandantenfähigen Nutzung der YDB-Installation.

Yandex Database ist für OLTP-Abfragen konzipiert und erfüllt die ACID-Anforderungen für ein Transaktionssystem. In diesem Bericht betrachten wir den Transaktionsplanungsalgorithmus, der dem YDB-Transaktionssystem zugrunde liegt. Schauen wir uns an, welche Entitäten an Transaktionen teilnehmen, wer den Transaktionen eine globale Reihenfolge zuweist und wie die Atomizität, Zuverlässigkeit und ein striktes Maß an Isolation von Transaktionen erreicht werden. Schauen wir uns am Beispiel eines häufigen Problems Transaktionsimplementierungen an, die zweiphasige Festschreibungen und deterministische Transaktionen verwenden. Lassen Sie uns ihre Unterschiede besprechen.

Was kommt als nächstes?

Das Konferenzprogramm ist weiterhin gefüllt mit neuen Berichten. Insbesondere erwarten wir einen Bericht von Nikita Koval (ndkoval) von JetBrains und Oleg Anastasjew (Monstermind) von der Firma Odnoklassniki. Nikita arbeitet im Kotlin-Team an Algorithmen für Coroutinen und Oleg entwickelt Architektur und Lösungen für Hochlastsysteme auf der Odnoklassniki-Plattform. Darüber hinaus gibt es noch einen weiteren bedingt freien Platz, für den das Programmkomitee derzeit mit Kandidaten arbeitet.

Die Hydra-Konferenz findet vom 11. bis 12. Juli in St. Petersburg statt. Tickets sind verfügbar Kauf auf der offiziellen Website. Bitte achten Sie auf die Verfügbarkeit von Online-Tickets – falls Sie an diesen Tagen aus irgendeinem Grund nicht nach St. Petersburg gelangen können.

Wir sehen uns bei Hydra!

Source: habr.com

Kommentar hinzufügen