19 Köpfe der Hydra. Großer Überblick über das Programm.

Am 11.-12. Juli findet in Санкт-Петербург eine Konferenz statt Hydra, die sich mit der Entwicklung von parallelen und verteilten Systemen beschäftigt. Das Besondere an Hydra ist, dass sie großartige Wissenschaftler (die normalerweise nur auf ausländischen Wissenschaftskonferenzen zu finden sind) und bekannte praktizierende Ingenieure in ein großes Programm an der Schnittstelle von Wissenschaft und Praxis vereint.

Hydra ist eine unserer wichtigsten Konferenzen in den letzten Jahren. Sie wurde durch eine sehr gründliche Vorbereitung, die Auswahl von Speakern und Vorträgen, eingeleitet. Letzte Woche erschien dazu ein Habr-Interview mit dem Direktor der JUG.ru Group, Alexey Fedorov (23derevo).

Wir hat bereits darüber berichtet über drei wichtige Teilnehmer, die Pioniere der Theorie verteilter Systeme — Leslie Lamport, Maurice Herlihy und Michael Scott. Es ist an der Zeit, detaillierter über das gesamte Programm zu sprechen!

19 Köpfe der Hydra. Großer Überblick über das Programm.

Motivation

Wenn Sie Programmierung betreiben, haben Sie auf die eine oder andere Weise mit Multithreading und verteiltem Rechnen zu tun. Fachleute in den entsprechenden Bereichen arbeiten direkt damit, aber die Verteilung schaut uns überall subtil an: In jedem Multikerncomputer oder in einem verteilten Dienst gibt es etwas, das Berechnungen parallel ausführt.

Es gibt viele Konferenzen, die verschiedene Aspekte der angewandten Programmierung beleuchten. Auf der anderen Seite des Spektrums haben wir spezielle wissenschaftliche Schulen, die in Form von Vorlesungen riesige Mengen komplexer Theorie aufdecken. Zum Beispiel findet parallel zu Hydra in St. Petersburg eine SPTDC-Schule statt.. Auf der Konferenz Hydra haben wir versucht, strenge Praxis, Wissenschaft und alles, was an ihrem Schnittpunkt liegt, zusammenzubringen.

Denken Sie einmal darüber nach: Wir leben in einer erstaunlichen Zeit, in der man die Gründer des Wissenschafts- und Ingenieurbereichs, in dem wir tätig sind, persönlich treffen kann. Physiker werden weder Newton noch Einstein treffen — der Zug ist abgefahren. Aber neben uns leben immer noch die, die die Grundlagen der Theorie verteilter Systeme geschaffen, beliebte Programmiersprachen erfunden und das alles zum ersten Mal in funktionierenden Prototypen umgesetzt haben. Diese Menschen haben ihre Arbeit nicht halbherzig aufgegeben, beschäftigen sich gerade jetzt mit aktuellen Herausforderungen an weltbekannten Universitäten und Unternehmen und sind die größten Wissens- und Erfahrungsträger unserer Zeit.

Auf der anderen Seite bleibt die Möglichkeit, ihnen zu begegnen, oft rein theoretischer Natur: Nur wenige von uns können ständig öffentliche Veranstaltungen an irgendeiner Universität in Rochester überwachen, um dann in die USA zu reisen und zurück für eine Vorlesung bei Michael Scott. Alle Teilnehmer von Hydra zu besuchen, würde ein kleines Vermögen kosten, ganz zu schweigen von der Menge an verlorener Zeit (auch wenn das wie eine interessante Quest klingt).

Auf der anderen Seite haben wir viele Top-Ingenieure, die gerade an aktuellen Problemen verteilte Systeme arbeiten, und sie haben sicherlich etwas zu erzählen. Aber das Problem ist — sie die, und ihre Zeit ist kostbar. Ja, wenn du Mitarbeiter von Microsoft, Google oder JetBrains bist, steigt die Wahrscheinlichkeit, einen der bekannten Referenten bei einer internen Veranstaltung zu treffen, erheblich, aber im Allgemeinen — nein, das passiert nicht jeden Tag.

Somit erfüllt die Hydra-Konferenz eine wichtige Aufgabe, die die meisten von uns nicht selbst erledigen können — sie vereint an einem Ort und zu einer Zeit Menschen, deren Ideen oder der Austausch mit denen dein Leben verändern kann. Ich gebe zu, dass nicht jeder an verteilten Systemen oder an irgendeiner komplexen grundlegenden Dinge interessiert ist. Man kann ein Leben lang CRUDs in PHP programmieren und dabei ganz glücklich bleiben. Aber für die, die daran interessiert sind — das ist eure Chance.

Seit der ersten Ankündigung der Hydra-Konferenz auf Habrа ist bereits viel Zeit vergangen. In dieser Zeit wurde eine enorme Menge Arbeit geleistet — und hier haben wir eine Liste von fast allen Vorträgen. Keine lahmenden einsträngigen Algorithmen, nur reiner verteilte Hardcore! Lassen Sie uns mit den allgemeinen Worten abschließen und sehen, was wir jetzt in den Händen halten.

Keynotes

Keynotes beginnen und beenden die Tage der Konferenz. In der Regel besteht der Sinn des eröffnenden Keynotes darin, den allgemeinen Geist und die Richtung der Konferenz zu setzen. Der Schluss-Keynote zieht eine Linie und erklärt, wie wir mit dem Wissen und den Fähigkeiten leben, die wir an den Konferenztagen erworben haben. Der Anfang und das Ende: Das, was am besten in Erinnerung bleibt, und hat im Allgemeinen ein erhöhtes Gewicht.

Cliff Click — Der H2O verteilte K/V-Algorithmus

19 Köpfe der Hydra. Großer Überblick über das Programm. Cliff ist eine Legende in der Java-Welt. Ende der 90er Jahre schrieb er für seine Dissertation eine Arbeit mit dem Titel „Kombinieren von Analysen, Kombinieren von Optimierungen“, die nach einiger Zeit die Grundlage für den HotSpot JVM Server Compiler wurde. Nach zwei Jahren arbeitete er bereits bei Sun Microsystems an der JVM und zeigte der Welt, dass JIT eine Daseinsberechtigung hat. Diese gesamte Geschichte, dass Java eine der schnellsten modernen Laufzeitumgebungen mit den cleversten und schnellsten Optimierungen ist, stammt tatsächlich von Cliff Click. Zu Beginn wurde angenommen, dass, wenn etwas für einen statischen Compiler verfügbar ist, es sich nicht lohnen würde, es zu jittieren. Dank der Arbeiten von Cliff und seinem Team begannen alle neuen Sprachen mit der Idee einer Standard-JIT-Kompilierung entwickelt zu werden. Natürlich war dies keine Aufgabe für nur eine Person, aber Cliff spielte dabei eine sehr wichtige Rolle.

Im Eröffnungsvortrag wird Cliff über ein anderes seiner Projekte berichten — H20, einer In-Memory-Plattform für verteiltes und skalierbares maschinelles Lernen für industrielle Anwendungen. Genauer gesagt — über den verteilten Schlüssel-Wert-Speicher darin. Dies ist ein sehr schneller Speicher mit einer Vielzahl interessanter Eigenschaften (eine genaue Liste findet sich im Beschreibung), die es ermöglichen, solche Lösungen im Bereich Streaming-Mathematik der großen Daten zu verwenden.

Ein weiterer Vortrag, den Cliff halten wird — Die Azul Hardware Transactional Memory-Erfahrung. Ein weiterer Teil seiner Biographie — zehn Jahre Arbeit bei Azul, wo er viele verschiedene Dinge in der Hardware und im Technologie-Stack von Azul aktualisiert und verbessert hat: JIT-Compiler, Laufzeitumgebung, Thread-Modell, Fehlerbehandlung, Arbeiten mit dem Stack, hardwaregestützte Interrupts, Klassenladen und so weiter und so fort — nun, Sie wissen, was ich meine.

Der interessanteste Teil begann, als sie Hardware für große Unternehmen entwickelten — einen Supercomputer für den Betrieb von Java. Das war eine ziemlich innovative Sache, speziell auf Java zugeschnitten, die besondere Anforderungen hat — Lese-Speicherbarrieren für eine latenzarme Garbage Collection, Array-Grenzkontrollen, virtuelle Aufrufe… Eine der coolsten Technologien — hardwaregestützter transaktionaler Speicher. Der gesamte L1-Speicher eines der 864 Kerne konnte an einer transaktionalen Aufzeichnung teilnehmen, was besonders wichtig für die Arbeit mit Locking in Java ist (synchronized-Blöcke können parallel arbeiten, solange es keinen realen Konflikt im Speicher gibt). Aber die schöne Idee fiel einer harten Realität zum Opfer — und in diesem Vortrag wird Cliff erklären, warum HTM und STM nicht so gut für die praktischen Bedürfnisse der Multithread-Berechnungen geeignet sind.

Michael Scott — Duale Datenstrukturen

19 Köpfe der Hydra. Großer Überblick über das Programm. Michael Scott — Professor für Informatik an der University of Rochester, mit der ihn das Schicksal verband bereits seit 34 Jahren, und an der heimischen Universität Wisconsin–Madison war er fünf Jahre lang Dekan. Er forscht im Bereich der parallelen und verteilten Programmierung sowie des Sprachdesigns und unterrichtet dies an Studierenden.

Die ganze Welt kennt Michael durch sein Lehrbuch „Programming Language Pragmatics“, dessen letzte Ausgabe relativ neu erschien — im Jahr 2015. Seine Arbeit „Algorithms for scalable synchronization on shared-memory multiprocessors“ eine wurde mit dem Dijkstra-Preis ausgezeichnet und gilt als eine der bekanntesten im Bereich der verteilten Berechnungen und liegt offen in der Online-Bibliothek der University of Rochester. Sie können ihn auch als Autor des bekannten Michael-Scott-Algorithmus aus „Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms“.

Im Java-Bereich ist die Situation besonders: Zusammen mit Doug Lea hat er die nicht blockierenden Algorithmen und synchronen Warteschlangen entwickelt, auf denen die Java-Bibliotheken basieren. Genau darum wird es im Keynote „Duale Datenstrukturen“ gehen — die Implementierung dieser Strukturen in Java SE 6 ermöglichte eine zehnfache Verbesserung der Leistung java.util.concurrent.ThreadPoolExecutor. Wenn Sie vorher interessiert sind, was diese „Duale Datenstrukturen“ sind, gibt es dazu eine entsprechende Arbeit.

Maurice Herlihy — Blockchains und die Zukunft der verteilten Berechnung

19 Köpfe der Hydra. Großer Überblick über das Programm. Maurice Herlihy — Träger von gleich zwei Dijkstra-Preisen. 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 bemerkbar waren, und offensichtlich ist Maurice einer der bekanntesten Spezialisten auf diesem Gebiet. Momentan ist er Professor an der Brown University und hat zahlreiche Erfolge, die einen ganzen Absatz füllen.

In diesem Abschluss-Keynote wird Maurice über die Theorie und Praxis von Blockchain-verteilten Systemen aus der Perspektive der klassischen verteilten Berechnungen berichten und darüber, wie dies viele verwandte Probleme vereinfacht. Dies ist ein Vortrag, der ausschließlich im Thema der Konferenz liegt — es geht nicht um Mining-Hype, sondern vielmehr darum, wie wir unser Wissen erstaunlich effizient und passend auf die unterschiedlichsten Aufgaben anwenden können.

Im Juli 2017 war Maurice bereits in Russland bei der Schule SPTDC, nahm an einem Meetup von JUG.ru teil, und die Aufzeichnung kann auf YouTube angesehen werden:

Video abspielen

Hauptprogramm

Weiter wird es einen kurzen Überblick über die Vorträge geben, die in das Programm aufgenommen wurden. Einige Vorträge werden hier ausführlicher beschrieben, andere – kürzer. Längere Beschreibungen wurden hauptsächlich englischsprachigen Vorträgen gewidmet, die auf wissenschaftliche Arbeiten, Begriffe aus Wikipedia usw. verweisen müssen. Eine vollständige Liste kann auf der Konferenzwebseite eingesehen werden. Die Liste auf der Webseite wird aktualisiert und ergänzt.

Leslie Lamport – Q & A

19 Köpfe der Hydra. Großer Überblick über das Programm. Leslie Lamport ist der Autor grundlegendender Arbeiten im Bereich der verteilten Berechnungen. »LaTeX« steht für »Lamport TeX«. Er führte erstmals 1979 das Konzept ein, 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, da es sich nicht einmal um einen Vortrag handelt, sondern um eine Frage-und-Antwort-Sitzung. Wenn ein erheblicher Teil des Publikums bereits bekannt ist (oder sich mit den verschiedenen Arbeiten, die auf der »Lampert-Theorie« basieren, seinen eigenen Artikeln und Vorträgen vertraut machen kann), ist es wichtig, die gesamte verfügbare Zeit für direkte Kommunikation zu nutzen.

Die Idee ist einfach – Sie schauen sich auf YouTube zwei Vorträge an: »Programming Should Be More Than Coding« und »If You’re Not Writing a Program, Don’t Use a Programming Language« und bereiten mindestens eine Frage vor, die Leslie beantworten wird.

Das erste dieser beiden Videos haben wir bereits in einen Hubartikel verwandelt. Wenn Sie keine Stunde Zeit haben, um sich das Video anzusehen, können Sie alles schnell in Textform lesen.

Zur Information: Auf YouTube gibt es viel mehr Videos mit Leslie Lamport. Beispielsweise gibt es ein ausgezeichnetes Kurs über TLA+. Die Offline-Version dieses gesamten Kurses ist auf der Homepage des Autors, auf YouTube hat er es für ein bequemeres Ansehen auf mobilen Geräten hochgeladen.

Martin Kleppmann – Daten zwischen Benutzergeräten für verteilte Zusammenarbeit synchronisieren

19 Köpfe der Hydra. Großer Überblick über das Programm. Martin Kleppmann ist Forscher an der Universität Cambridge und beschäftigt sich mit CRDT und formeller Verifikation von Algorithmen. Martins Buch »Designing Data-Intensive Applications«, veröffentlicht im Jahr 2017, war sehr erfolgreich und landete in den Bestsellerlisten im Bereich Datenspeicherung und -verarbeitung. Kevin Scott, CTO von Microsoft, sagte einmal: »Dieses Buch sollte für Software-Entwickler Pflicht sein. Es ist eine seltene Ressource, die Theorie und Praxis vereint und Entwicklern hilft, die Infrastruktur und die Systeme zur Datenverarbeitung intelligenter zu gestalten und zu implementieren.« Ähnliches sagte auch der Erfinder von Kafka und CTO von Confluent, Jay Kreps.

Bevor Martin sich mit akademischen Forschungen beschäftigte, arbeitete er in der Industrie und war Mitgründer von zwei erfolgreichen Startups:

  • Rapportive, das dazu dient, soziale Profile von Kontakten aus Ihrer E-Mail anzuzeigen, das 2012 von LinkedIn gekauft wurde;
  • Go Test It, ein Dienst zur automatischen Überprüfung von Websites in verschiedenen Browsern, der 2009 von RedGate gekauft wurde.

Insgesamt ist Martin zwar weniger bekannt als unsere Hauptredner, hat aber bereits einen gewissen Beitrag zur Entwicklung verteilten Rechnens und zur Industrie geleistet.

In diesem Vortrag wird Martin über ein Thema sprechen, das näher an seinen akademischen Forschungen liegt. In Google Docs und ähnlicher Software für kollaboratives Dokumenten-Editing bezieht sich „kollaboratives Editing“ auf die Aufgabe der Replikation: Jeder Benutzer hat seine eigene Replik des gemeinsamen Dokuments, das er anschließend bearbeitet, und alle Änderungen werden im Netzwerk an die anderen Teilnehmer verteilt. Dokumentenänderungen im Offline-Modus führen zu vorübergehenden Inkonsistenzen des Dokuments im Vergleich zu anderen Teilnehmern, und das erneute Synchronisieren erfordert die Konfliktbearbeitung. Genau dafür gibt es konfliktfreie replizierte Datentypen (CRDT), im Grunde eine ziemlich neue Technik, deren Konzept erst 2011 formuliert wurde. In diesem Vortrag wird diskutiert, was seitdem in der Welt der CRDTs geschehen ist, was die neuesten Entwicklungen sind, und es wird ein Ansatz zur Erstellung von lokal-first Anwendungen im Allgemeinen sowie die Verwendung der Open-Source-Bibliothek Automerge im Besonderen behandelt.

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

Pedro Ramalhete — Wait-free-Datenstrukturen und wait-free Transaktionen

19 Köpfe der Hydra. Großer Überblick über das Programm. Pedro arbeitet bei Cisco und entwickelt seit etwa zehn Jahren parallele Algorithmen, einschließlich Synchronisationsmechanismen, lock-free und wait-free Datenstrukturen und alles, was man sich zu diesem Thema vorstellen kann. Seine aktuellen wissenschaftlichen und ingenieurtechnischen Interessen liegen im Bereich der universellen Konstruktionen, softwaretransaktionaler Speicher, persistentem Speicher und ähnlichen Technologien, die es ermöglichen, korrekte, skalierbare und fehlertolerante Anwendungen zu implementieren. Außerdem ist er Autor eines weitbekannten Blogs in engen Kreisen, Concurrency Freaks.

Die meisten Mehrprozessanwendungen arbeiten heute mit parallelen Datenstrukturen, von der Verwendung von Nachrichtenwarteschlangen zwischen Akteuren bis hin zu indexierten Datenstrukturen in Key-Value-Speichersystemen. In der Java JDK funktionieren sie seit vielen Jahren erfolgreich, und auch in C++ werden sie allmählich hinzugefügt.

Der einfachste Weg, eine parallele Datenstruktur zu implementieren, ist eine sequenzielle (einprozessige) Implementierung, bei der die Methoden durch Mutexes geschützt sind. Dies ist für jeden Anfänger zugänglich, hat aber offensichtliche Probleme mit der Skalierbarkeit und der Leistung. Gleichzeitig bewältigen lock-freie und wait-free Datenstrukturen nicht nur Fehler besser, sondern weisen auch ein günstigeres Leistungsprofil auf – jedoch erfordert ihre Entwicklung tiefgehende Expertise und Anpassung an die spezifische Anwendungsweise. Eine falsche Zeile Code reicht aus, um alles zum Scheitern zu bringen.

Wie kann man erreichen, dass sogar Nicht-Experten solche Datenstrukturen entwerfen und implementieren können? Bekannt ist, dass jeder sequenzielle Algorithmus durch entweder eine universelle Konstruktion, oder durch transaktionale Speicher für Thread-Sicherheit sorgen kann. Beide können die Eintrittsbarrieren zur Lösung dieses Problems senken. Allerdings führen beide Lösungen in der Regel zu ineffizienten Implementierungen. Pedro wird darüber berichten, wie es ihnen gelungen ist, diese Konstruktionen effizienter zu gestalten und wie man sie für eigene Algorithmen nutzen kann.

Heidi Howard — Die Befreiung des verteilten Konsenses

19 Köpfe der Hydra. Großer Überblick über das Programm. Heidi Howard ist, genau wie Martin, eine Forscherin für verteilte Systeme an der University of Cambridge. Ihr Spezialgebiet umfasst Konsistenz, Fehlertoleranz, Leistung und verteilten Konsens. Sie ist am bekanntesten für die Verallgemeinerung des Paxos-Algorithmus, der als Flexibles Paxos.

Wir erinnern daran, dass Paxos bekannt ist – eine Familie von Protokollen zur Lösung des Konsensproblems in einem Netzwerk von unzuverlässigen Rechnern, die auf den Arbeiten von Leslie Lamport basiert. So arbeiten einige unserer Referenten an Problemen, die ursprünglich von anderen unseren Referenten vorgeschlagen wurden – und das ist großartig.

Die Möglichkeit, einen Konsens zwischen mehreren Hosts für Adressierung, Führungswahl, Sperrung oder Koordination zu finden, ist eine fundamentale Frage moderner verteilter Systeme. Paxos ist derzeit die Hauptmethode zur Lösung von Konsensproblemen, und es werden zahlreiche Studien durchgeführt, um den Algorithmus für verschiedene praktische Bedürfnisse zu erweitern und zu optimieren.

In diesem Vortrag werden wir die theoretischen Grundlagen von Paxos überarbeiten, indem wir die ursprünglichen Anforderungen abschwächen und den Algorithmus verallgemeinern. Wir werden sehen, dass Paxos im Grunde nur eine von vielen Ansätzen zum Konsens ist und dass auch andere Ansätze im Spektrum sehr nützlich sein können, um gute verteilte Systeme zu bauen.

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

19 Köpfe der Hydra. Großer Überblick über das Programm. Alex ist Datenbankspezialist und Speicherexperte und was uns betrifft – Contributor bei Cassandra. Zusammen mit O'Reilly arbeitet er derzeit an dem Buch Database Internals.

Für Systeme mit eventual consistency (in der russischen Terminologie – „sichere Konsistenz“) muss nach einem Ausfall eines Knotens oder einer Netzwerkpartition die folgende Dilemma gelöst werden: soll man weiterhin Anfragen ausführen und dabei Konsistenz opfern oder die Verarbeitung ablehnen und damit Verfügbarkeit opfern. In einem solchen System können Quoren, überlappende Teilmengen von Knoten, die garantieren, dass mindestens ein Knoten den neuesten Wert enthält, eine gute Grenzlösung darstellen. Man kann Ausfälle und Verbindungsverluste zu einigen Knoten überstehen und dabei weiterhin mit den aktuellsten Werten antworten.

Dennoch hat alles seinen Preis. Ein Quoren-Replikationsschema bedeutet höhere Speicherkosten: Es müssen redundante Daten auf mehreren Knoten gleichzeitig gespeichert werden, um eine ausreichende Anzahl verfügbarer Kopien zum Zeitpunkt eines Problems zu garantieren. Es stellt sich heraus, dass nicht alle Daten auf allen Replikaten gespeichert werden müssen. Man kann die Speicherauslastung reduzieren, indem man Daten nur auf einigen Knoten hält und spezielle Knoten (Transient Replica) für Fehlerszenarien einsetzt.

Im Verlauf des Vortrags werden wir Witness Replicas, das Replikationsschema, das in Spanner und Megastore, und die Umsetzung dieses Konzepts in Apache Cassandra unter den Bezeichnungen Transiente Replikation & günstige Quoren.

Dmitri Vjukov — Goroutines exposed

19 Köpfe der Hydra. Großer Überblick über das Programm. Dmitri ist Entwickler bei Google und arbeitet an dynamischem Testing in C/C++ und Go — Address/Memory/ThreadSanitizer sowie ähnlichen Tools für den Linux-Kernel. Er hat zu Go einen skalierbaren Goroutine-Scheduler, einen Netzwerk-Poller und einen parallelen Garbage Collector beigetragen. Er ist Experte für Mehrereitung, Autor von dutzenden neuen nicht-blockierenden Algorithmen und ist Inhaber des Schwarzen Gürtels Intel.

Jetzt etwas über den Vortrag selbst. Die Go-Sprache unterstützt nativ Mehrereitung in Form von Goroutinen (leichten Threads) und Kanälen (FIFO-Warteschlangen). Dank dieser Mechanismen ist es für Entwickler sehr einfach und angenehm, moderne mehrkernige Anwendungen zu schreiben, und es sieht aus wie Magie. Wie wir wissen, gibt es hier keine Magie. In diesem Vortrag wird Dmitri in die Feinheiten der Funktionsweise des Go-Schedulers eintauchen und die Geheimnisse der Umsetzung dieser "Magie" präsentieren. Zunächst wird er einen Überblick über die Hauptkomponenten des Schedulers geben und erläutern, wie er funktioniert. Danach werden wir uns genauer mit einzelnen Aspekten wie der Park-/Unpark-Strategie und dem Umgang mit blockierenden Systemaufrufen befassen. Schließlich wird Dmitri einige mögliche Verbesserungen im Scheduler vorstellen.

Dmitri Bugaychenko — Wir beschleunigen die verteilte Graphanalyse mit probabilistischen Skizzen und mehr

19 Köpfe der Hydra. Großer Überblick über das Programm. Dmitri hat fast 9 Jahre in der Outsourcing-Branche gearbeitet und dabei den Kontakt zur Universität und zur wissenschaftlichen Gemeinschaft nicht verloren. Die Analyse großer Daten in Odnoklassniki wurde für ihn zu einer einzigartigen Gelegenheit, theoretische Ausbildung und wissenschaftliche Basis mit der Entwicklung realer, gefragter Produkte zu verbinden.

Verteilte Graphanalyse war und bleibt eine komplexe Aufgabe: Wenn es darum geht, Informationen über die Verbindungen benachbarter Knoten zu erhalten, müssen die Daten häufig zwischen Maschinen übertragen werden, was die Ausführungszeit und die Belastung der Netzwerk-Infrastruktur erhöht. In diesem Vortrag werden wir sehen, wie man die Verarbeitung erheblich beschleunigen kann, indem man probabilistische Datenstrukturen oder Aspekte wie die Symmetrie von Freundschaftsgraphen in sozialen Netzwerken nutzt. All dies wird durch Code-Beispiele auf Apache Spark veranschaulicht.

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

19 Köpfe der Hydra. Großer Überblick über das Programm. Denis ist Entwickler Cosmos DB, Experte im Bereich der Konsistenzmodellprüfung, in Konsensalgorithmen und in verteilten Transaktionen. Derzeit arbeitet er bei Microsoft und davor war er in verteilten Systemen bei Amazon und Yandex tätig.

In diesem Vortrag werden wir uns mit den Protokollen für verteilte Transaktionen vertraut machen, die in den letzten Jahren entwickelt wurden und die auf der Client-Seite über jedes Datenspeichersystem, das bedingte Updates (compare and set) unterstützt, implementiert werden können. Es ist wichtig zu erkennen, dass das Leben nicht mit einem zweiphasigen Commit endet; Transaktionen können auf jede Datenbank umgesetzt werden - auf Anwendungsebene. Allerdings haben verschiedene Protokolle (2PC, Percolator, RAMP) unterschiedliche Trade-offs und sind nicht umsonst.

Alexey Zinovyev — Nicht alle ML-Algorithmen kommen in das verteilte Paradies.

19 Köpfe der Hydra. Großer Überblick über das Programm. Alexey (zaleslaw) — unser langjähriger Sprecher und Mitglied von Programmkomitees auf anderen Konferenzen. Praktizierender Trainer bei EPAM Systems und arbeitet seit 2012 mit Hadoop/Spark und anderen Big-Data-Technologien.

In diesem Vortrag wird Alexey über die Herausforderungen der Anpassung klassischer Machine-Learning-Algorithmen für den verteilten Betrieb basierend auf seinen Erfahrungen mit Apache Spark ML, Apache Mahout, Apache Flink ML und der Entwicklung von Apache Ignite ML berichten. Zudem wird Alexey die Implementierung verteilter ML-Algorithmen in diesen Frameworks erläutern.

Und abschließend – zwei Vorträge von Yandex über Yandex Database.

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

19 Köpfe der Hydra. Großer Überblick über das Programm. Vladislav ist Entwickler bei Yandex in der Gruppe für verteilte Plattformen. Yandex Database ist eine horizontal skalierbare, geografisch verteilte, ausfallsichere Datenbank, die Ausfälle von Festplatten, Servern, Racks und Rechenzentren ohne Beeinträchtigung der Konsistenz bewältigt. Um die Ausfallsicherheit zu gewährleisten, wird ein eigener Algorithmus zur Erreichung eines verteilten Konsenses sowie eine Reihe technischer Lösungen verwendet, die im Vortrag detailliert behandelt werden. Die Präsentation könnte sowohl für Entwickler von Datenbanksystemen als auch für Entwickler von Anwendungen auf der Grundlage von Datenbanksystemen von Interesse sein.

Semyon Checherinda — Verteilte Transaktionen in YDB.

19 Köpfe der Hydra. Großer Überblick über das Programm. Semyon ist Entwickler in der Gruppe für verteilte Plattformen bei Yandex und arbeitet an der Möglichkeit der Multi-Tenancy- Nutzung der YDB-Installation.

Die Yandex-Datenbank ist für OLTP-Abfragen ausgelegt und erfüllt die ACID-Anforderungen an ein Transaktionssystem. Im Bericht werden wir den Algorithmus zur Transaktionsplanung betrachten, der dem Transaktionssystem YDB zugrunde liegt. Wir werden untersuchen, welche Entitäten an den Transaktionen beteiligt sind, wer den globalen Ablauf der Transaktionen festlegt und wie die Atomizität, Zuverlässigkeit und das strikte Isolationsniveau der Transaktionen erreicht werden. Anhand eines verbreiteten Beispiels werden wir die Implementierungen von Transaktionen mithilfe von Two-Phase-Commit und deterministischen Transaktionen erläutern. Wir werden ihre Unterschiede diskutieren.

Was folgt jetzt?

Das Programm der Konferenz wird weiterhin mit neuen Berichten ergänzt. Insbesondere erwarten wir einen Bericht von Nikita Koval (ndkoval) von JetBrains und Oleg Anastasev (m0nstermind) von der Firma Odnoklassniki. Nikita beschäftigt sich im Kotlin-Team mit Algorithmen für Coroutinen, während Oleg die Architektur und Lösungen für hochbelastete Systeme auf der Plattform von Odnoklassniki entwickelt. Darüber hinaus gibt es noch 1 bedingt leeren Slot, für den der Programmkomitee direkt jetzt an Kandidaten arbeitet.

Die Hydra-Konferenz findet am 11. und 12. Juli in St. Petersburg statt. Tickets können auf der offiziellen Website erworben werden. Wir weisen auf die Verfügbarkeit von Online-Tickets hin — falls Sie aus irgendeinem Grund nicht persönlich nach St. Petersburg kommen können.

Wir sehen uns bei Hydra!

Quelle: habr.com

60GB SSD 8Gb DDR4