19 Köpfe der Hydra. Umfassende Programmübersicht

Am 11. und 12. Juli findet in St. Petersburg eine Konferenz statt Hydra, die sich mit der Entwicklung von parallelen und verteilten Systemen beschäftigt. Das Besondere an Hydra ist, dass sie herausragende Wissenschaftler (die man normalerweise nur auf internationalen wissenschaftlichen Konferenzen findet) und namhafte Praktiker in ein umfassendes Programm an der Schnittstelle von Wissenschaft und Praxis vereint.

Hydra ist eine unserer wichtigsten Konferenzen der letzten Jahre. Ihr ging eine sehr intensive Vorbereitung voraus, bei der Redner und Vorträge ausgewählt wurden. In der vergangenen Woche wurde ein Interview auf Habr veröffentlicht mit dem Direktor der JUG.ru Group, Alexey Fyodorov (23derevo).

Wir bereits berichtet haben über drei wichtige Teilnehmer, die Pioniere der Theorie verteilter Systeme – Leslie Lamport, Maurice Herlihy und Michael Scott. Es ist an der Zeit, die gesamte Programmgestaltung genauer zu besprechen!

19 Köpfe der Hydra. Umfassende Programmübersicht

Motivation

Wenn Sie Programmierung betreiben, sind Sie zwangsläufig mit Multithreading und verteiltem Rechnen konfrontiert. Fachleute auf diesen Gebieten arbeiten direkt damit, doch die zugrunde liegende Verteilung zeigt sich überall: In jedem Mehrkerncomputer oder verteilten Dienst gibt es einen Aspekt, der parallele Berechnungen durchführt.

Es gibt zahlreiche Konferenzen, die verschiedene Aspekte des angewandten Programmierens beleuchten. Auf der anderen Seite des Spektrums finden sich spezielle wissenschaftliche Schulen, die in Form von Vorlesungen große Mengen komplexer Theorie vermitteln. Zum Beispiel findet parallel zur Hydra in St. Petersburg die SPTDC-Schule. statt. Auf der Hydra-Konferenz haben wir versucht, strenge Praxis, Wissenschaft und alles, was sich an der Schnittstelle befindet, zusammenzubringen.

Denken Sie darüber nach: Wir leben in einer erstaunlichen Zeit, in der wir die Gründer der Wissenschafts- und Ingenieurfelder, in denen wir tätig sind, persönlich treffen können. Physiker werden Newton oder Einstein nicht mehr begegnen — der Zug ist abgefahren. Doch neben uns leben immer noch die Pioniere, die die Grundlagen der verteilten Systeme geschaffen, beliebte Programmiersprachen erfunden und all dies zum ersten Mal in funktionierende Prototypen umgesetzt haben. Diese Menschen haben ihre Arbeit nicht halbherzig aufgegeben, beschäftigen sich derzeit mit aktuellen Herausforderungen an weltweit renommierten Universitäten und Unternehmen und sind bis heute unglaublich wertvolle Quellen für Wissen und Erfahrung.

Auf der anderen Seite bleibt die Möglichkeit, sie zu treffen, normalerweise rein theoretisch: Nur wenige von uns können ständig öffentliche Veranstaltungen an irgendeiner Universität in Rochester im Auge behalten, um dann schnell in die USA zu fliegen und wieder zurück zu einer Vorlesung bei Michael Scott. Alle Teilnehmer von Hydra zu besuchen, würde eine kleine Vermögen kosten, ganz zu schweigen von der erlittenen Zeitverschwendung (obwohl es wie ein interessantes Abenteuer klingt).

Auf der anderen Seite haben wir viele hochqualifizierte Ingenieure, die gerade an aktuellen Problemen verteilter Systeme arbeiten und die sicherlich viel zu erzählen haben. Aber das Problem ist—sie mit der sechsten Version des Protokolls., und ihre Zeit ist kostbar. Ja, wenn Sie Mitarbeiter bei Microsoft, Google oder JetBrains sind, steigt die Wahrscheinlichkeit, einen der bekannten Referenten bei einer internen Veranstaltung zu treffen, erheblich. Aber ansonsten—nicht jeden Tag kommt das vor.

Die Hydra-Konferenz erfüllt somit eine wichtige Aufgabe, die die meisten von uns nicht selbst erledigen können—sie bringt an einem Ort und zu einer Zeit Menschen zusammen, deren Ideen oder deren Kommunikation Ihr Leben verändern könnten. Ich gehe davon aus, dass nicht jeder an verteilten Systemen oder an komplizierten, grundlegenden Themen interessiert ist. Man kann ein Leben lang CRUD-Anwendungen in PHP programmieren und dabei durchaus glücklich sein. Aber für die, die interessiert sind—das ist Ihre Chance.

Seit der ersten Ankündigung der Hydra-Konferenz auf Habré ist schon viel Zeit vergangen. In dieser Zeit wurde enorme Arbeit geleistet – und nun haben wir eine Liste fast aller Vorträge. Keine lahmen einstufigen Algorithmen, nur reiner verteilte Hardcore! Lassen Sie uns mit den allgemeinen Worten aufhören und sehen, was wir jetzt in den Händen halten.

Keynotes

Die Keynotes beginnen und beenden die Tage der Konferenz. In der Regel soll die Eröffnungs-Keynote den allgemeinen Geist und die Richtung der Konferenz festlegen. Die Abschluss-Keynote zieht Bilanz und erklärt, wie wir mit dem Wissen und den Fähigkeiten, die wir während der Konferenz erworben haben, leben können. Beginn und Ende: das, was am besten im Gedächtnis bleibt und insgesamt von großer Bedeutung ist.

Cliff Click — Der H2O verteilte K/V-Algorithmus

19 Köpfe der Hydra. Umfassende Programmübersicht Cliff ist eine Legende in der Java-Welt. Ende der 90er Jahre schrieb er für seine Doktorarbeit ein Paper mit dem Titel „Combining Analyses, Combining Optimizations“, das irgendwann die Grundlage für den HotSpot JVM Server Compiler wurde. Zwei Jahre später arbeitete er bereits bei Sun Microsystems an der JVM und bewies der Welt, dass JIT einen festen Platz hat. Diese Geschichte zeigt, dass Java eine der schnellsten modernen Laufzeiten mit den intelligentesten und schnellsten Optimierungen ist, und dies begann alles mit Cliff Click. Zu Beginn wurde angenommen, dass, wenn etwas für einen statischen Compiler verfügbar ist, es keinen Sinn macht, es zu just-in-time zu kompilieren. Dank der Arbeiten von Cliff und seinem Team wurden alle neuen Programmiersprachen mit der Idee von JIT-Kompilierung als Standard entwickelt. Dies war zweifellos eine Teamleistung, aber Cliff spielte eine sehr wichtige Rolle darin.

In der Eröffnungs-Keynote wird Cliff von seinem neuesten Projekt erzählen — H2O, einer In-Memory-Plattform für verteiltes und skalierbares maschinelles Lernen für industrielle Anwendungen. Genauer gesagt — von dem verteilten Key-Value-Speicher innerhalb davon. Es handelt sich um einen sehr schnellen Speicher mit vielen interessanten Eigenschaften (eine genaue Liste finden Sie in Beschreibung), die es ermöglichen, ähnliche Lösungen in der Mathematik des Streamings großer Daten zu verwenden.

Eine weitere Präsentation, die Cliff halten wird — Die Azul Hardware Transaktionale Speicher-Erfahrung. Ein weiterer Teil seiner Biographie sind zehn Jahre bei Azul, wo er viel in Bezug auf die Hardware und den Technologie-Stack von Azul verbessert und aktualisiert hat: JIT-Compiler, Runtime, Thread-Modell, Fehlerbehandlung, Stack-Management, Hardware-Interrupts, Klassen-Laden und so weiter — nun, Sie wissen schon.

Die interessanteste Phase begann, als sie Hardware für große Unternehmen entwickelten — einen Supercomputer für die Ausführung von Java. Dies war eine ziemlich innovative Lösung, die speziell auf Java zugeschnitten war und besondere Anforderungen aufwies — Lese-Speicherbarrieren für eine niedrige Pause beim Garbage Collecting, Grenzüberprüfungen für Arrays, virtuelle Aufrufe… Eine der innovativsten Technologien war die hardwareunterstützte transaktionale Speichertechnik. Jedes L1 eines der 864 Kerne konnte an der transaktionalen Aufzeichnung teilnehmen, was besonders wichtig für den Umgang mit Locks in Java ist (synchronized-Blöcke können parallel laufen, solange es keinen echten Konflikt im Speicher gibt). Aber die schöne Idee scheiterte an der harten Realität — und in dieser Präsentation wird Cliff erklären, warum HTM und STM nicht besonders gut für die praktischen Anforderungen der Multithread-Verarbeitung geeignet sind.

Michael Scott — Dual-Datenstrukturen

19 Köpfe der Hydra. Umfassende Programmübersicht Michael Scott — Professor für Informatik an der University of Rochester, wo er seit 34 Jahren tätig ist , und war fünf Jahre lang Dekan an seiner Alma Mater, der University of Wisconsin–Madison. Er forscht im Bereich paralleler und verteilter Programmierung sowie Sprachdesign und unterrichtet dies auch.Die Welt kennt Michael dank seines Lehrbuchs

„Programming Language Pragmatics“ , dessen neueste Auflage erst 2015 erschienen ist. Seine Arbeit„Algorithms for scalable synchronization on shared-memory multiprocessors“ wurde mit dem Dijkstra-Preis ausgezeichnet erhalten und zählt zu den bekanntesten Arbeiten im Bereich der verteilten Berechnungen und ist frei zugänglich in der Online-Bibliothek der University of Rochester. Vielleicht kennen Sie ihn auch als Autor des berühmten Michael-Scott-Algorithmus aus „Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms“ Was die Java-Welt betrifft, ist es hier besonders: Zusammen mit Doug Lea entwickelte er die nicht blockierenden Algorithmen und synchronen Warteschlangen, auf denen die Java-Bibliotheken basieren. Genau darum wird es in seinem Keynote „Dual-Datenstrukturen“ gehen — die Einführung dieser Strukturen in Java SE 6 verbesserte die Leistung um das Zehnfache.

von java.util.concurrent.ThreadPoolExecutor. java.util.concurrent.ThreadPoolExecutor. Wenn Sie sich im Voraus fragen, was es mit diesen „Dual Data Structures“ auf sich hat, gibt es dazu eine entsprechende Arbeit.

Maurice Herlihy — Blockchains und die Zukunft des verteilten Rechnens

19 Köpfe der Hydra. Umfassende Programmübersicht Maurice Herlihy — Inhaber gleich zweier Dijkstra-Preise. Der erste — für die Arbeit über „Wait-Free Synchronization“ (Brown University), und der zweite, neuere — „Transactional Memory: Architectural Support for Lock-Free Data Structures“ (Virginia Tech University). Der Dijkstra-Preis wird für Arbeiten verliehen, deren Bedeutung und Einfluss über einen Zeitraum von mindestens zehn Jahren erkennbar waren, und offensichtlich ist Maurice einer der bekanntesten Experten auf diesem Gebiet. Aktuell ist er Professor an der Brown University und hat zahlreiche Auszeichnungen vorzuweisen.

In diesem abschließenden Keynote wird Maurice über die Theorie und Praxis von Blockchain-verteilten Systemen aus der Perspektive der klassischen verteilten Berechnung sprechen und darüber, wie dies viele damit verbundene Probleme erleichtert. Diese Präsentation dreht sich ausschließlich um das Thema der Konferenz — nicht um den Mining-Hype, sondern vielmehr darum, wie unsere Kenntnisse erstaunlich effektiv und relevant für die verschiedensten Aufgaben genutzt werden können.

Im Juli 2017 reiste Maurice bereits nach Russland zur SPTDC-Schule, nahm an dem Meetup von JUG.ru teil, und die Aufzeichnung kann auf YouTube angesehen werden:

Video abspielen

Hauptprogramm

Im Folgenden gibt es einen kurzen Überblick über die Vorträge, die in das Programm aufgenommen wurden. Einige Vorträge sind hier detailliert beschrieben, während andere kürzer gefasst sind. Längere Beschreibungen sind hauptsächlich englischsprachigen Vorträgen vorbehalten, die auf wissenschaftliche Arbeiten, Begriffe auf Wikipedia usw. verweisen. Eine vollständige Liste kann auf der Konferenzwebsite eingesehen werden. Die Liste auf der Website wird aktualisiert und ergänzt.

Leslie Lamport — Q & A

19 Köpfe der Hydra. Umfassende Programmübersicht Leslie Lamport ist der Autor grundlegender Arbeiten in der verteilten Berechnung. «LaTeX» steht für «Lamport TeX». Er führte erstmals 1979 das Konzept der sequentiellen Konsistenzein, und sein Artikel «How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs» wurde mit dem Dijkstra-Preis ausgezeichnet.

Dies ist der ungewöhnlichste Teil des Programms, denn es handelt sich nicht um einen Vortrag, sondern um eine Fragerunde. Da ein erheblicher Teil des Publikums bereits mit den verschiedenen Arbeiten, die auf der „Lamport-Theorie“ basieren, sowie seinen eigenen Artikeln und Vorträgen vertraut ist (oder sich damit vertraut machen kann), ist es wichtig, die gesamte verfügbare Zeit für direkten Austausch zu nutzen.

Die Idee ist einfach – Sie sehen sich auf YouTube zwei Vorträge an: „Programmierung sollte mehr sein als Codierung“ und „Wenn Sie kein Programm schreiben, verwenden Sie keine Programmiersprache“ und bereiten Sie mindestens eine Frage vor, auf die Leslie antwortet.

Das erste dieser beiden Videos haben wir bereits in einem Hub-Artikel. Wenn Sie keine Stunde Zeit haben, um das Video anzusehen, können Sie das Ganze schnell in Form eines Textes lesen.

Zur Kenntnisnahme: Auf YouTube gibt es viele weitere Videos mit Leslie Lamport. Zum Beispiel gibt es einen hervorragenden Kurs über TLA+. Die Offline-Version des gesamten Kurses finden Sie auf der Homepage des Autors, und auf YouTube hat er sie für ein leichteres Ansehen auf mobilen Geräten hochgeladen.

Martin Kleppmann — Daten zwischen Benutzgeräten für verteilte Zusammenarbeit synchronisieren

19 Köpfe der Hydra. Umfassende Programmübersicht Martin Kleppmann ist Forscher an der Universität Cambridge und arbeitet an CRDT und der formalen Verifikation von Algorithmen. Martins Buch „Data-Intensive Anwendungen entwickeln“, veröffentlicht im Jahr 2017, war sehr erfolgreich und schaffte es auf die Bestsellerlisten im Bereich der Datenlagerung und Datenverarbeitung. Kevin Scott, CTO bei Microsoft, sagte einmal: „Dieses Buch sollte Pflichtlektüre für Softwareentwickler sein. Es ist eine seltene Ressource, die Theorie und Praxis verbindet und Entwicklern hilft, ihre Infrastruktur und Datenverarbeitungssysteme intelligenter zu gestalten und umzusetzen.“ Ähnliches äußerte auch der Schöpfer von Kafka und CTO von Confluent, Jay Kreps.

Bevor er sich akademischen Forschungen widmete, arbeitete Martin in der Industrie und war Mitbegründer von zwei erfolgreichen Startups:

  • Rapportive, das sich mit der Anzeige von sozialen Profilen von Kontakten in Ihrer E-Mail befasste und 2012 von LinkedIn übernommen wurde;
  • Go Test It, ein Service zur automatischen Tests von Websites in verschiedenen Browsern, der 2009 von RedGate aufgekauft wurde.

Insgesamt ist Martin zwar weniger bekannt als unsere Hauptredner, hat jedoch bereits einen gewissen Beitrag zur Entwicklung verteilter Berechnungen und zur Branche geleistet.

In diesem Bericht wird Martin über ein Thema sprechen, das näher an seinen akademischen Forschungen steht. In Google Docs und ähnlichen Tools zur gleichzeitigen Bearbeitung von Dokumenten bedeutet „gemeinsame Bearbeitung“ die Aufgabe der Replikation: Jeder Benutzer hat eine eigene Kopie des gemeinsamen Dokuments, die er anschließend ändert, und alle Änderungen werden über das Netzwerk an die anderen Teilnehmer gesendet. Änderungen an Dokumenten im Offline-Modus führen zu vorübergehenden Inkonsistenzen des Dokuments im Vergleich zu den anderen Teilnehmern, und die erneute Synchronisierung erfordert die Bearbeitung von Konflikten. Genau dafür existieren konfliktfreie replizierte Datentypen (CRDT), im Grunde eine ziemlich neue Sache, deren Konzept erst 2011 formuliert wurde. In diesem Bericht wird erörtert, was seitdem in der Welt der CRDTs passiert ist, welche die neuesten Errungenschaften sind und welcher Ansatz bei der Erstellung von lokal zuerst-App verwendet wird, sowie die Nutzung der Open-Source-Bibliothek Automerge insbesondere.

Nächste Woche werden wir auf Habr ein umfassendes Interview mit Martin veröffentlichen, das sehr interessant sein wird.

Pedro Ramalhete — Wartefreie Datenstrukturen und wartefreie Transaktionen

19 Köpfe der Hydra. Umfassende Programmübersicht Pedro arbeitet bei Cisco und entwickelt seit etwa zehn Jahren parallele Algorithmen, einschließlich Synchronisationsmechanismen, lock-free und wait-free Datenstrukturen sowie alles, was Sie sich zu diesem Thema vorstellen können. Seine aktuellen wissenschaftlichen und ingenieurtechnischen Interessen konzentrieren sich auf universelle Konstruktionen, Software Transactional Memory, Persistent Memory und ähnliche Technologien, die es ermöglichen, korrekte, skalierbare und ausfallsichere Anwendungen zu realisieren. Zudem ist er der Autor eines in Fachkreisen weithin bekannten Blogs. Concurrency Freaks.

Die meisten mehrschichtigen Anwendungen basieren derzeit auf parallelen Datenstrukturen, von der Nutzung von Nachrichtenwarteschlangen zwischen Akteuren bis hin zu indizierten Datenstrukturen in Key-Value-Speichern. In der Java JDK funktionieren sie seit vielen Jahren erfolgreich und auch in C++ werden sie nach und nach hinzugefügt.

Der einfachste Weg, eine parallele Datenstruktur zu realisieren, ist die sequenzielle (einzelne) Implementierung, bei der die Methoden durch Mutexes geschützt sind. Dies ist für jeden Junior-Entwickler zugänglich, hat jedoch offensichtliche Probleme mit der Skalierbarkeit und Leistung. Gleichzeitig bieten lock-free und wait-free Datenstrukturen nicht nur eine bessere Fehlerbewältigung, sondern auch ein vorteilhafteres Leistungsprofil – jedoch erfordert deren Entwicklung tiefgehende Expertise und Anpassung an spezifische Anwendungsszenarien. Eine falsche Codezeile kann alles zum Absturz bringen.

Wie kann man es so gestalten, dass selbst ein Nicht-Experte solche Datenstrukturen entwerfen und implementieren kann? Es ist bekannt, dass jeder sequenzielle Algorithmus durch entweder eine universelle Konstruktion, oder transaktionale Speicher sicher gemacht werden kann. Beide Ansätze können die Eintrittsbarriere zur Lösung dieses Problems senken. Allerdings führen beide Lösungen in der Regel zu ineffizienten Implementierungen. Pedro wird erläutern, wie es ihnen gelungen ist, diese Konstruktionen effizienter zu gestalten und wie sie für ihre Algorithmen verwendet werden können.

Heidi Howard – Liberating distributed consensus

19 Köpfe der Hydra. Umfassende Programmübersicht Heidi Howard ist, wie Martin, Forscherin für verteilte Systeme an der Universität Cambridge. Ihr Spezialgebiet sind Konsistenz, Fehlertoleranz, Leistung und verteilter Konsens. Am bekanntesten ist sie für die Verallgemeinerung des Paxos-Algorithmus mit dem Namen Flexible Paxos.

Wir erinnern daran, dass Paxos – eine Familie von Protokollen zur Lösung des Konsensproblems in Netzwerken unsicherer Rechenoperationen, die auf den Arbeiten von Leslie Lamport basieren. So arbeiten einige unserer Referenten an Aufgaben, die ursprünglich von anderen Referenten vorgeschlagen wurden – und das ist großartig.

Die Möglichkeit, einen Konsens zwischen mehreren Hosts zu finden – für Adressierung, Führungswahlen, Sperrmechanismen oder Koordination – ist eine grundlegende Frage moderner verteilter Systeme. Paxos ist derzeit der Hauptansatz zur Lösung von Konsensproblemen, und es werden viele Forschungen betrieben, um den Algorithmus auf verschiedene praktische Bedürfnisse zu erweitern und zu optimieren.

In diesem Bericht werden wir die theoretischen Grundlagen von Paxos überarbeiten, indem wir die ursprünglichen Anforderungen lockern und den Algorithmus generalisieren. Wir werden feststellen, dass Paxos im Wesentlichen nur eine von vielen Möglichkeiten im breiten Spektrum von Konsensansätzen ist, und dass auch andere Punkte im Spektrum sehr nützlich sind für den Aufbau guter verteilte Systeme.

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

19 Köpfe der Hydra. Umfassende Programmübersicht Alex ist Datenbank- und Speichersystemexperte und was für uns besonders wichtig ist - Committer bei Cassandra,. Gemeinsam mit O’Reilly arbeitet er derzeit an dem Buch Database Internals.

Für Systeme mit eventual consistency (in der deutschsprachigen Terminologie als „Konsistenz letztlich“ bekannt) steht man nach einem Knotenfehler oder einer Netzwerkpartition vor folgendem Dilemma: Soll man weiterhin Anfragen bearbeiten und dabei die Konsistenz opfern, oder die Bearbeitung verweigern und die Verfügbarkeit gefährden? In einem solchen System können Quoren, sich überschneidende Untergruppen von Knoten, die garantieren, dass mindestens ein Knoten den aktuellsten Wert enthält, eine sinnvolle Kompromisslösung darstellen. Man kann Ausfälle und den Verlust der Verbindung zu einigen Knoten überstehen und dennoch mit den aktuellsten Werten antworten.

Dennoch hat alles seinen Preis. Das Quorum-Replikationsschema bedeutet höhere Speicher- kosten: Es müssen redundante Daten auf mehreren Knoten gespeichert werden, um eine ausreichende Anzahl an verfügbaren Kopien im Problementfall sicherzustellen. Es zeigt sich, dass nicht alle Daten auf allen Replikaten gespeichert werden müssen. Die Speicherbelastung kann verringert werden, wenn Daten nur auf einem Teil der Knoten gehalten werden und für Szenarien zur Fehlerbehandlung spezielle Knoten (Transient Replica) verwendet werden.

Im Verlauf des Vortrags werden wir behandeln Witness Replicas, das Replikationsschema, das wir in Spanner und Megastore, und die Umsetzung dieses Konzepts in Apache Cassandra unter den Namen Transient Replication & Cheap Quorums.

Dmitry Vyukov — Goroutines offengelegt

19 Köpfe der Hydra. Umfassende Programmübersicht Dmitry ist Entwickler bei Google und arbeitet an dynamischem Testing für C/C++ und Go — Address/Memory/ThreadSanitizer sowie an ähnlichen Werkzeugen für den Linux-Kernel. Er hat zu Go einen skalierbaren Goroutine-Scheduler, einen Network Poller und einen parallelen Garbage Collector beigetragen. Er ist Experte in der Nebeneinanderverarbeitung, Autor von Dutzenden neuen nicht-blockierenden Algorithmen und Inhaber eines Schwarzen Gürtels bei Intel.

Jetzt kommen wir zum Vortrag selbst. Die Programmiersprache Go bietet eine integrierte Unterstützung für Multithreading in Form von Goroutinen (leichte Threads) und Kanälen (FIFO-Warteschlangen). Dank dieser Mechanismen ist es für Benutzer äußerst einfach und angenehm, moderne Multithread-Anwendungen zu schreiben, und es wirkt beinahe magisch. Wie wir verstehen, gibt es hier keine Magie. In diesem Vortrag wird Dmitrij in die Feinheiten des Go-Schedulers eintauchen und die Geheimnisse dieser „Magie“ offenbaren. Zunächst wird er einen Überblick über die Hauptkomponenten des Schedulers geben und erklären, wie er funktioniert. Anschließend werden wir uns damit beschäftigen, wie die verschiedenen Aspekte, wie die Park- und Unpark-Strategie sowie die Verarbeitung blockierender Systemaufrufe, umgesetzt werden. Am Ende wird Dmitrij auch einige mögliche Verbesserungen des Schedulers ansprechen.

Dmitrij Bugajtschenko — Wir beschleunigen die verteilte Analyse von Graphen mit probabilistischen Skizzen und mehr

19 Köpfe der Hydra. Umfassende Programmübersicht Dmitrij hat fast 9 Jahre in der Outsourcing-Branche gearbeitet und dabei den Kontakt zur Universität und wissenschaftlichen Umgebung nie verloren. Die Analyse großer Datenmengen bei Одноклассники bot ihm eine einzigartige Gelegenheit, seine theoretische Ausbildung und wissenschaftliche Grundlagen mit der Entwicklung realer, gefragter Produkte zu verbinden.

Die verteilte Analyse von Graphen ist eine komplexe Aufgabe: Wenn es notwendig wird, Informationen über die Verbindungen einer benachbarten Spitze zu erhalten, müssen die Daten oft zwischen Maschinen übertragen werden, was die Ausführungszeit verlängert und die Netzwerk-Infrastruktur belastet. In diesem Vortrag werden wir sehen, wie man die Verarbeitungszeit erheblich verkürzen kann, indem man probabilistische Datenstrukturen oder Tatsachen wie die Symmetrie von Freundesgraphen in sozialen Netzwerken verwendet. All dies wird anhand von Codebeispielen in Apache Spark veranschaulicht.

Denis Ryscov — Reduzieren Sie Ihre Speicherkosten mit transienter Replikation und günstigen Quoren

19 Köpfe der Hydra. Umfassende Programmübersicht Denis ist Entwickler Cosmos DB, Experte im Bereich der Überprüfung von Konsistenzmodellen, in Konsensalgorithmen und in verteilten Transaktionen. Derzeit arbeitet er bei Microsoft und war zuvor in den Bereichen verteilte Systeme bei Amazon und Yandex tätig.

In diesem Vortrag beschäftigen wir uns mit den in den letzten Jahren entwickelten Protokollen für verteilte Transaktionen, die auf der Client-Seite über jede Datenbank implementiert werden können, die bedingte Aktualisierungen (compare and set) unterstützt. Die Essenz ist, dass das Leben nicht mit dem Zwei-Phasen-Commit endet; Transaktionen können auf allen Datenbanken - auf Anwendungsebene - hinzugefügt werden. Verschiedene Protokolle (2PC, Percolator, RAMP) haben jedoch unterschiedliche Trade-offs und sind nicht kostenlos.

Aleksey Zinovyev — Nicht alle ML-Algorithmen erreichen das verteilte Paradies.

19 Köpfe der Hydra. Umfassende Programmübersicht Aleksey (zaleslaw) — unser langjähriger Referent und Mitglied von Programmkomitees auf anderen Konferenzen. Praktizierender Trainer bei EPAM Systems und seit 2012 mit Hadoop/Spark und anderen Big-Data-Technologien vertraut.

In diesem Vortrag erläutert Aleksey die Herausforderungen bei der Anpassung klassischer Machine-Learning-Algorithmen für den Einsatz im verteilten Modus basierend auf seiner Erfahrung mit Apache Spark ML, Apache Mahout, Apache Flink ML und der Entwicklung von Apache Ignite ML. Außerdem spricht Aleksey über die Implementierung verteilter ML-Algorithmen in diesen Frameworks.

Und zum Abschluss - zwei Vorträge von Yandex über Yandex Database.

Vladislav Kuznetsov — Yandex Database — wie wir Ausfallsicherheit gewährleisten

19 Köpfe der Hydra. Umfassende Programmübersicht Vladislav ist Entwickler bei Yandex in der Gruppe für verteilte Plattformen. Yandex Database ist ein horizontal skalierbares geo-verteiltes, ausfallsicheres DBMS, das Ausfälle von Festplatten, Servern, Racks und Rechenzentren ohne Beeinträchtigung der Konsistenz übersteht. Zur Gewährleistung der Ausfallsicherheit wird ein eigener Algorithmus zur Erreichung eines verteilten Konsens sowie eine Reihe technischer Lösungen verwendet, die im Vortrag detailliert behandelt werden. Der Vortrag könnte sowohl für DBMS-Entwickler als auch für Entwickler von Anwendungslösungen auf Basis des DBMS von Interesse sein.

Semyon Checherinda — Verteilte Transaktionen in YDB

19 Köpfe der Hydra. Umfassende Programmübersicht Semyon ist Entwickler in der Gruppe für verteilte Plattformen bei Yandex und arbeitet an der Möglichkeit der Multi-Tenant-Nutzung der YDB-Instanz.

Die Yandex-Datenbank ist auf OLTP-Anfragen ausgelegt und erfüllt die ACID-Anforderungen für Transaktionssysteme. In diesem Vortrag werden wir den Transaktionsplanungsalgorithmus untersuchen, der dem Transaktionssystem YDB zugrunde liegt. Wir erläutern, welche Entitäten an den Transaktionen beteiligt sind, wer den globalen Order für Transaktionen festlegt, wie die Atomarität von Transaktionen, die Zuverlässigkeit und das strenge Isolationsniveau erreicht werden. Anhand eines gängigen Anwendungsfalls betrachten wir die Implementierung von Transaktionen unter Verwendung des Two-Phase-Commit und deterministischer Transaktionen. Wir diskutieren deren Unterschiede.

Wie geht es weiter?

Das Konferenzprogramm wird kontinuierlich mit neuen Vorträgen angereichert. Unter anderem erwarten wir einen Vortrag von Nikita Kowal (ndkoval) von JetBrains und Oleg Anastasiev (m0nstermind) von der Firma Odnoklassniki. Nikita beschäftigt sich mit Algorithmen für Koroutinen im Kotlin-Team, während Oleg die Architektur und Lösungen für hochbelastete Systeme auf der Plattform von Odnoklassniki entwickelt. Außerdem gibt es noch einen bedingt leeren Slot, für den das Programmkomitee derzeit Kandidaten evaluiert.

Die Hydra-Konferenz findet am 11. und 12. Juli in Sankt Petersburg statt. Tickets sind verfügbar. auf der offiziellen WebsiteWir möchten auf die Verfügbarkeit von Online-Tickets hinweisen – falls Sie aus irgendeinem Grund nicht persönlich nach St. Petersburg reisen können.

Wir sehen uns auf der Hydra!

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern | ProHoster