Die Hydra- Konferenz findet vom 11. bis 12. Juli in St. Petersburg statt und widmet sich der Entwicklung paralleler und verteilter Systeme. Das Merkmal von Hydra ist, 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. Ihr ging eine sehr ernsthafte Vorbereitung voraus, die Auswahl von Rednern und Berichten. Letzte Woche wurde ein Habrointerview mit dem Direktor der JUG.ru Group, Alexei Fedorov ( 23derevo ), darüber veröffentlicht .
Wir haben bereits über drei wichtige Teilnehmer gesprochen, die Begründer der Theorie verteilter Systeme - Leslie Lamport, Maurice Herlichi und Michael Scott. Es ist Zeit, mehr über das gesamte Programm zu sprechen!

Motivation
Wenn Sie programmieren, haben Sie es irgendwie mit Multithreading und verteiltem Computing zu tun. Experten in den relevanten Bereichen arbeiten direkt mit ihnen zusammen, aber implizit betrachtet uns die Verteilung von überall: In jedem Multi-Core-Computer oder verteilten Dienst gibt es etwas, das Berechnungen parallel durchführt.
Es gibt viele Konferenzen, die verschiedene Aspekte der angewandten Programmierung aufzeigen. Auf der anderen Seite des Spektrums haben wir spezielle wissenschaftliche Schulen im Format von Vorlesungen, die riesige Mengen komplexer Theorie enthüllen. Zum Beispiel läuft die SPTDC-Schule parallel zu Hydra in St. Petersburg. Bei Hydra haben wir versucht, harte Praxis, Wissenschaft und alles an ihrer Kreuzung zusammenzubringen.
Denken Sie darüber nach: Wir leben in einer erstaunlichen Zeit, in der Sie die Gründer des Bereichs Wissenschaft und Technik treffen können, in dem wir tätig sind. Physiker werden weder Newton noch Einstein treffen - der Zug fährt ab. Aber es gibt immer noch Menschen in unserer Nähe, die die Grundlagen der Theorie verteilter Systeme geschaffen, populäre Programmiersprachen entwickelt und all dies zum ersten Mal in funktionierende Prototypen umgesetzt haben. Diese Menschen haben ihre Arbeit nicht auf halbem Weg aufgegeben, sondern sind derzeit mit dringenden Aufgaben an weltberühmten Universitäten und Unternehmen beschäftigt. Sie sind die bislang größten Quellen für Wissen und Erfahrung.
Andererseits bleibt die Gelegenheit, sich mit ihnen zu treffen, normalerweise rein theoretisch: Nur wenige von uns können öffentliche Veranstaltungen an einer Universität von Rochester ständig überwachen, dann in die USA eilen und zu einem Vortrag vor Michael Scott zurückkehren. Alle Hydra-Teilnehmer im Allgemeinen zu besuchen, wäre in einem kleinen Zustand, ohne den Abgrund der aufgewendeten Zeit zu zählen (obwohl dies nach einer interessanten Aufgabe klingt).
Auf der anderen Seite haben wir viele Top-Ingenieure, die gerade an dringenden Problemen verteilter Systeme arbeiten, und sie haben definitiv etwas zu erzählen. Aber hier ist das Problem - sie arbeiten und ihre Zeit ist teuer. Ja, wenn Sie Mitarbeiter von Microsoft, Google oder JetBrains sind, steigt die Wahrscheinlichkeit, einen der bekannten Redner bei einer internen Veranstaltung zu treffen, dramatisch an, aber im Allgemeinen - nein, nicht jeden Tag.
Somit erfüllt die Hydra-Konferenz eine wichtige Aufgabe, die die meisten von uns nicht selbst erledigen können - an einem Ort und gleichzeitig bringt sie Menschen zusammen, deren Ideen oder Kommunikation mit denen Ihr Leben verändern kann. Ich gebe zu, dass nicht jeder verteilte Systeme benötigt, einige komplexe grundlegende Dinge. Sie können CRUDs in PHP für den Rest Ihres Lebens programmieren und bleiben vollkommen glücklich. Aber wer es braucht, ist Ihre Chance.
Seit der ersten Ankündigung der Hydra-Konferenz über Habré ist ziemlich viel Zeit vergangen. In dieser Zeit wurde viel Arbeit geleistet - und jetzt haben wir eine Liste mit fast allen Berichten. Keine trägen Single-Threaded-Algorithmen, nur reiner verteilter Hardcore! Lassen Sie uns mit allgemeinen Worten abschließen und sehen, was wir jetzt zur Hand haben.
Keynotes
Keynotes beginnen und beenden die Konferenztage. Normalerweise besteht die Bedeutung der Eröffnungsrede darin, den allgemeinen Geist und die Richtung der Konferenz festzulegen. Die abschließende Keynote zieht eine Linie und erklärt, wie man mit den während der Konferenztage erworbenen Kenntnissen und Fähigkeiten umgeht. Anfang und Ende: Das, woran man sich am besten und im Allgemeinen erinnern wird, ist von zunehmender Bedeutung.
Cliff ist eine Legende in der Java-Welt. In den späten 90er Jahren schrieb er für die Doktorarbeit 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. Zwei Jahre später arbeitete er bereits bei Sun Microsystems an der JVM und zeigte der Welt, dass JIT ein Existenzrecht hat. Die ganze Geschichte, dass Java eine der schnellsten modernen Laufzeiten mit den intelligentesten und schnellsten Optimierungen ist, stammt von Cliff Click. Am Anfang wurde angenommen, dass man nicht einmal versuchen kann, zu jit, wenn dem statischen Compiler etwas zur Verfügung steht. Dank der Arbeit von Cliff und dem Team wurden alle neuen Sprachen mit der Idee der Standard-JIT-Kompilierung erstellt. Natürlich war dies kein Job für eine Person, aber Cliff spielte dabei eine sehr wichtige Rolle.
In der Eröffnungsrede wird Cliff über sein anderes Unterfangen sprechen - den H20 , eine In-Memory-Plattform für verteiltes und skalierbares maschinelles Lernen für industrielle Anwendungen. Oder vielmehr über die verteilte Speicherung von Schlüssel-Wert-Paaren darin. Dies ist ein sehr schnelles Repository mit vielen interessanten Eigenschaften (die genaue Liste finden Sie in der Beschreibung ), mit denen Sie ähnliche Lösungen in der Mathematik des Streaming von Big Data verwenden können.
Ein weiterer Vortrag, den Cliff halten wird, ist das Azul Hardware Transactional Memory-Erlebnis . Ein weiterer Teil seiner Biografie ist die zehnjährige Arbeit in Azul , wo er viele Dinge in Bezug auf Hardware und den Azul-Technologie-Stack aktualisiert und verbessert hat: JIT-Compiler, Laufzeit, Thread-Modell, Fehlerbehandlung, Stack-Arbeit, Hardware-Interrupts, Laden von Klassen usw. solche Dinge - nun, Sie verstehen es.
Der interessanteste Teil begann, als sie Hardware für große Unternehmen herstellten - einen Supercomputer für Java. Es war eine ziemlich innovative Sache, die speziell für Java entwickelt wurde und besondere Anforderungen stellt - Speicherbarrieren beim Lesen für die Speicherbereinigung in kleinen Gruben, Arrays mit Grenzüberprüfung, virtuelle Anrufe ... Eine der coolsten Technologien ist der Hardware-Transaktionsspeicher. Alle L1 aller 864 Kerne können am Transaktionsschreiben teilnehmen, was besonders wichtig für die Arbeit mit Sperren in Java ist (synchronisierte Blöcke können parallel arbeiten, solange kein wirklicher Speicherkonflikt besteht). Aber eine schöne Idee ist in die harte Realität geraten - und in diesem Bericht wird Cliff erklären, warum HTM und STM für die praktischen Anforderungen des Multithread-Computing nicht sehr geeignet sind.
Michael Scott ist Professor für Informatik an der Universität von Rochester, mit der ihn das Schicksal bereits seit 34 Jahren verbunden hatte , und an der Heimatuniversität von Wisconsin - Madison war er fünf Jahre lang Dekan. Er forscht auf dem Gebiet der parallelen und verteilten Programmierung und des Sprachdesigns und lehrt die Studierenden dies.
Die ganze Welt kennt Michael dank des Lehrbuchs „Programming Language Pragmatics“ , dessen letzte Ausgabe erst vor relativ kurzer Zeit veröffentlicht wurde - im Jahr 2015. Seine Arbeit , Algorithmen zur skalierbaren Synchronisation auf Multiprozessoren mit gemeinsamem Speicher, erhielt den Dijkstra-Preis als eine der bekanntesten auf dem Gebiet des verteilten Rechnens und liegt offen in der Online-Bibliothek der Universität von Rochester. Sie können ihn auch als Autor desselben Michael-Scott-Algorithmus aus "Einfache, schnelle und praktische Algorithmen zum Blockieren und Blockieren gleichzeitiger Warteschlangen" kennen .
Für die Java-Welt ist dies ein Sonderfall: Zusammen mit Doug Lea entwickelte er die nicht blockierenden Algorithmen und synchronen Warteschlangen, mit denen die Java-Bibliotheken ausgeführt werden. Genau das wird die Keynote zu Dual Data Structures sein - die Einführung dieser Strukturen in Java SE 6 ermöglichte zehnmal die Verbesserung der Leistung von java.util.concurrent.ThreadPoolExecutor
. Wenn Sie im Voraus interessiert sind, was diese „dualen Datenstrukturen“ sind, dann gibt es eine entsprechende Arbeit darüber.
Maurice Herlichi ist der Gewinner von zwei Dijkstra-Preisen. Die erste ist für die wartungsfreie Synchronisation (Brown University) und die zweite, neuere, ist Transaktionsspeicher: Architekturunterstützung für sperrenfreie Datenstrukturen (Virginia Tech University). Der Dijkstra-Preis wird für Werke vergeben, deren Bedeutung und Einfluss seit mindestens zehn Jahren spürbar sind, und Maurice ist offensichtlich einer der bekanntesten Spezialisten auf diesem Gebiet. Derzeit arbeitet er als Professor an der Brown University und hat viele Erfolge für einen ganzen Absatz in der Länge.
In dieser abschließenden Keynote wird Maurice über die Theorie und Praxis von Blockchain-verteilten Systemen im Hinblick auf die Klassiker des verteilten Rechnens sprechen und wie dies viele verwandte Probleme vereinfacht. Dieser Bericht befasst sich ausschließlich mit dem Thema der Konferenz - nicht mit dem Mining-Hype, sondern vielmehr damit, wie unser Wissen erstaunlich effektiv und angemessen sein kann, um es auf eine Vielzahl von Aufgaben anzuwenden.
Im Juli 2017 kam Maurice an der SPTDC-Schule nach Russland, nahm an der JUG.ru-Rallye teil und die Aufzeichnung kann auf YouTube angesehen werden:
Hauptprogramm
Als nächstes folgt eine kurze Übersicht über die im Programm enthaltenen Berichte. Einige der Berichte werden hier ausführlich beschrieben, andere sind kürzer. Lange Beschreibungen wurden hauptsächlich in englischsprachigen Berichten erhalten, die Links zu wissenschaftlichen Veröffentlichungen, Begriffen auf Wikipedia usw. erfordern. Die vollständige Liste finden Sie auf der Konferenzwebsite . Die Liste auf der Website wird aktualisiert und ergänzt.
Leslie Lampport ist der Autor grundlegender Arbeiten im Bereich Distributed Computing. LaTeX steht für Lamport TeX. Dies war das erste Mal, dass er 1979 das Konzept der konsistenten Konsistenz einführte, und sein Artikel „Wie man einen Multiprozessor-Computer herstellt, der Multiprozess-Programme korrekt ausführt“ gewann den Dijkstra-Preis.
Dies ist der formatmäßig ungewöhnlichste Teil des Programms, da es sich nicht einmal um einen Bericht handelt, sondern um eine Frage-Antwort-Sitzung. Wenn ein bedeutender Teil des Publikums bereits mit allen Arten von Werken vertraut ist (oder sich mit diesen vertraut machen kann), die auf der „Lamport-Theorie“, seinen eigenen Artikeln und Berichten basieren, ist es wichtig, die gesamte verfügbare Zeit für die direkte Kommunikation aufzuwenden.
Die Idee ist einfach: Sie sehen sich zwei Berichte auf YouTube an: „Programmieren sollte mehr als Codieren sein“ und „Wenn Sie kein Programm schreiben, verwenden Sie keine Programmiersprache“ und bereiten mindestens eine Frage vor, und Leslie antwortet.
Das erste dieser beiden Videos haben wir bereits in Habrosta verwandelt . Wenn Sie keine Stunde Zeit haben, um das Video anzusehen, können Sie dies alles schnell im Text lesen.
Hinweis: Es gibt viel mehr Videos von Leslie Lamport auf YouTube. Zum Beispiel gibt es einen ausgezeichneten TLA + -Kurs . Die Offline-Version dieses gesamten Kurses befindet sich auf der Homepage des Autors. Auf YouTube hat er sie hochgeladen, um sie auf Mobilgeräten einfacher anzeigen zu können.
Martin Kleppmann ist Forscher an der Universität von Cambridge und beschäftigt sich mit CRDT und der formalen Verifizierung von Algorithmen. Martins 2017 veröffentlichtes Buch Designing Data-Intensive Applications erwies sich als sehr erfolgreich und schaffte es auf die Bestsellerliste im Bereich Datenspeicherung und -verarbeitung. Kevin Scott, CTO bei Microsoft, sagte einmal : „Dieses Buch sollte ein Muss für Entwicklungsingenieure sein. "Dies ist eine seltene Ressource, die Theorie und Praxis kombiniert und Entwicklern hilft, Infrastruktur- und Datenverarbeitungssysteme intelligenter zu entwerfen und zu implementieren." Ähnliches sagte der Schöpfer von Kafka und CEO Confluent, Jay Kreps.
Vor seiner akademischen Forschung war Martin in der Branche tätig und Mitbegründer von zwei erfolgreichen Startups:
- Rapportive, das das soziale Profil von Kontakten aus Ihrer E-Mail anzeigt, die LinkedIn 2012 gekauft hat;
- Go Test It, ein Dienst zum automatischen Überprüfen von Websites in verschiedenen Browsern, den RedGate 2009 gekauft hat.
Im Allgemeinen konnte Martin, obwohl weniger bekannt als unsere Keynoter, bereits einen Beitrag zur Entwicklung des verteilten Rechnens und zur Industrie leisten.
In diesem Bericht wird Martin über ein Thema sprechen, das seiner akademischen Forschung näher kommt. In Google Text & Tabellen und einem ähnlichen Sofa zum gemeinsamen Bearbeiten von Dokumenten bedeutet „gemeinsames Bearbeiten“ die Aufgabe der Replikation: Jeder Benutzer verfügt über eine eigene Replik des gemeinsamen Dokuments, die er dann ändert, und alle Änderungen werden über das Netzwerk an die anderen Teilnehmer gesendet. Offline-Änderungen an Dokumenten führen zu vorübergehenden Inkonsistenzen des Dokuments in Bezug auf andere Teilnehmer, und die erneute Synchronisierung erfordert eine Konfliktbehandlung. Aus diesem Grund gibt es tatsächlich konfliktfreie replizierte Datentypen (CRDT) - eine ziemlich neue Sache, deren Kern erst 2011 formuliert wurde. In diesem Bericht wird erläutert, was seitdem in der CRDT-Welt geschehen ist, was die neuesten Errungenschaften sind, wie der Ansatz zum Erstellen von Local-First-Anwendungen im Allgemeinen und die Verwendung der Open-Source-Bibliothek Automerge im Besonderen erörtert werden .
Nächste Woche werden wir auf Habré ein großes Interview mit Martin veröffentlichen, es wird interessant sein.
Pedro hat bei Cisco gearbeitet und in den letzten zehn Jahren parallele Algorithmen entwickelt, darunter Synchronisationsmechanismen, sperren- und wartungsfreie Datenstrukturen und alles, was Sie sich zu diesem Thema vorstellen können. Seine aktuellen Forschungs- und Konstruktionsinteressen konzentrieren sich auf universelle Konstruktionen, Software-Transaktionsspeicher, persistenten Speicher und ähnliche Technologien, die die Implementierung korrekter, skalierbarer und fehlertoleranter Anwendungen ermöglichen. Er ist auch der Autor des Concurrency Freaks- Blogs, der in engen Kreisen weithin bekannt ist.
Die meisten Multithread-Anwendungen arbeiten jetzt mit parallelen Datenstrukturen, beginnend mit der Verwendung von Nachrichtenwarteschlangen zwischen Akteuren und endend mit indizierten Datenstrukturen in Schlüsselwertspeichern. In Java JDK arbeiten sie seit vielen Jahren erfolgreich und in C ++ werden sie langsam hinzugefügt.
Der einfachste Weg, eine parallele Datenstruktur zu implementieren, ist eine sequentielle Implementierung (Single-Threaded), bei der Methoden durch Mutexe geschützt sind. Dies ist für jeden Juni zugänglich, hat jedoch offensichtliche Probleme mit der Skalierung und Leistung. Gleichzeitig bewältigen sperrenfreie und wartungsfreie Datenstrukturen nicht nur Fehler besser, sondern weisen auch ein erfolgreicheres Leistungsprofil auf. Ihre Entwicklung erfordert jedoch fundiertes Fachwissen und die Anpassung an eine bestimmte Anwendung. Eine falsche Codezeile reicht aus, um alles zu beschädigen.
Wie kann auch ein Nicht-Experte solche Datenstrukturen entwerfen und implementieren? Es ist bekannt, dass jeder sequentielle Algorithmus unter Verwendung eines universellen Designs oder eines Transaktionsspeichers threadsicher gemacht werden kann. Zum einen können sie den Schwellenwert für die Eingabe dieser Aufgabe senken. Beide Lösungen führen jedoch tendenziell zu einer ineffizienten Implementierung. Pedro wird darüber sprechen, wie sie es geschafft haben, diese Designs effizienter zu gestalten und wie sie für ihre Algorithmen verwendet werden können.
Heidi Howard ist wie Martin eine Forscherin für verteilte Systeme an der Universität von Cambridge. Ihre Spezialisierung ist Konsistenz, Fehlertoleranz, Leistung und verteilter Konsens. Sie ist am besten dafür bekannt, den Paxos-Algorithmus namens Flexible Paxos zu verallgemeinern.
Denken Sie daran, dass Paxos eine Familie von Protokollen zur Lösung des Konsensproblems in einem Netzwerk unzuverlässiger Computer ist, die auf der Arbeit von Leslie Lamport basieren. Daher arbeiten einige unserer Redner an Aufgaben, 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, Auswahl von Führungskräften, Blockierung oder Koordination - ist ein grundlegendes Problem in modernen verteilten Systemen. Paxos ist jetzt der Hauptweg, um die Probleme der Konsensfindung zu lösen, und es wird viel Forschung betrieben, um den Algorithmus für verschiedene praktische Anforderungen zu erweitern und zu optimieren.
In diesem Bericht werden wir die theoretischen Grundlagen von Paxos überarbeiten, die anfänglichen Anforderungen lockern und den Algorithmus verallgemeinern. Wir werden sehen, dass Paxos tatsächlich nur eine Option unter einer Vielzahl von Konsensansätzen ist und dass andere Punkte im Spektrum ebenfalls sehr nützlich sind, um gute verteilte Systeme aufzubauen.
Alex ist Spezialist für Datenbanken und Speichersysteme und vor allem für uns Committer bei Cassandra . Zusammen mit O'Reilly arbeitet er derzeit an dem Buch Database Internals.
Bei Systemen mit eventueller Konsistenz (in der russischen Terminologie - „Konsistenz auf lange Sicht“) muss nach dem Ausfall eines Knotens oder der Aufteilung des Netzwerks das folgende Dilemma gelöst werden: entweder weiterhin Anforderungen erfüllen, Konsistenz opfern oder sich weigern, diese zu erfüllen und Verfügbarkeit zu opfern. In einem solchen System können Quoren, die Teilmengen von Knoten überlappen und sicherstellen, dass mindestens ein Knoten den neuesten Wert enthält, eine gute Grenzlösung sein. Sie können Fehler und Verbindungsverlust zu einigen Knoten überleben und weiterhin mit den neuesten Werten reagieren.
Alles hat jedoch seinen Preis. Ein Quorum-Replikationsschema bedeutet erhöhte Speicherkosten: Sie müssen redundante Daten auf mehreren Knoten gleichzeitig speichern, um eine ausreichende Anzahl verfügbarer Kopien zum Zeitpunkt des Problems zu gewährleisten. Es stellt sich heraus, dass Sie nicht alle Daten auf allen Replikaten speichern können. Sie können die Speicherlast reduzieren, indem Sie Daten nur auf einem Teil der Knoten speichern und spezielle Knoten (Transient Replica) für Fehlerverarbeitungsszenarien verwenden.
Im Verlauf des Berichts werden wir uns Witness Replicas , das von Spanner und Megastore verwendete Replikationsschema, und die Implementierung dieses Konzepts in Apache Cassandra unter den Namen Transient Replication & Cheap Quorums ansehen .
Dmitry ist ein Google-Entwickler, der an dynamischen Tests von C / C ++ und Go-Address / Memory / ThreadSanitizer sowie an ähnlichen Tools für den Linux-Kernel arbeitet. Go verfügt über einen skalierbaren Goroutine-Scheduler, einen Netzwerk-Poller und einen parallelen Garbage Collector. Er ist Experte für Multithreading, Autor eines Dutzend neuer nicht blockierender Algorithmen und Eigentümer des Intel Black Belt .
Nun ein wenig zum Bericht selbst. Go bietet native Unterstützung für Multithreading in Form von Goroutinen (Light Threads) und Kanälen (FIFO-Warteschlangen). Dank dieser Mechanismen ist es für Benutzer sehr einfach und angenehm, moderne Multithread-Anwendungen zu schreiben, und es sieht nach Magie aus. Wie wir verstehen, gibt es hier keine Magie. In diesem Bericht wird Dmitry die Feinheiten der Arbeit des Go-Schedulers untersuchen und die Geheimnisse der Implementierung dieser „Magie“ aufzeigen. Zunächst gibt er einen Überblick über die Hauptkomponenten des Schedulers und erklärt Ihnen, wie es funktioniert. Darüber hinaus werden wir uns bestimmte Aspekte genauer ansehen, z. B. die Strategie zum Parken / Auspacken und die Verarbeitung blockierender Systemaufrufe. Schließlich wird Dmitry ein wenig über mögliche Verbesserungen im Scheduler sprechen.
Dmitry war fast 9 Jahre im Outsourcing tätig, ohne den Kontakt zur Universität und zur wissenschaftlichen Gemeinschaft zu verlieren. Die Big-Data-Analyse bei Odnoklassniki war für ihn eine einzigartige Gelegenheit, theoretische Ausbildung und wissenschaftliche Grundlagen mit der Entwicklung realer, gefragter Produkte zu verbinden.
Die Analyse verteilter Graphen war und ist eine schwierige Aufgabe: Wenn Informationen über die Verbindungen eines benachbarten Scheitelpunkts abgerufen werden müssen, müssen die Daten häufig zwischen Maschinen destilliert werden, was zu einer Erhöhung der Ausführungszeit und der Belastung der Netzwerkinfrastruktur führt. In diesem Bericht werden wir sehen, wie Sie mithilfe probabilistischer Datenstrukturen oder Fakten wie der Symmetrie eines Freundschaftsgraphen in einem sozialen Netzwerk eine signifikante Verarbeitungsgeschwindigkeit erzielen können. All dies wird durch Apache Spark-Codebeispiele veranschaulicht.
Denis ist ein Cosmos DB- Entwickler, ein Experte auf dem Gebiet der Überprüfung von Konsistenzmodellen, Konsensalgorithmen und verteilten Transaktionen. Jetzt arbeitet er bei Microsoft und war zuvor in verteilten Systemen bei Amazon und Yandex tätig.
In diesem Bericht werden wir uns mit den in den letzten Jahren erfundenen verteilten Transaktionsprotokollen vertraut machen, die auf der Clientseite zusätzlich zu jedem Datenspeicher implementiert werden können, der die bedingte Aktualisierung (Vergleichen und Festlegen) unterstützt. Das Fazit ist, dass das Leben nicht mit einem zweiphasigen Commit endet. Transaktionen können über beliebige Datenbanken hinzugefügt werden - auf Anwendungsebene, aber verschiedene Protokolle (2PC, Percolator, RAMP) haben unterschiedliche Kompromisse und werden uns nicht kostenlos zur Verfügung gestellt.
Alexey ( zaleslaw ) ist unser langjähriger Redner und Mitglied von Programmkomitees bei anderen Konferenzen. Praktizierender Trainer bei EPAM Systems und seit 2012 mit Hadoop / Spark und anderen Bigdates befreundet.
In diesem Bericht wird Alexey über die Probleme bei der Anpassung klassischer Algorithmen für maschinelles Lernen für die verteilte Ausführung sprechen, basierend auf seinen Erfahrungen mit Apache Spark ML, Apache Mahout, Apache Flink ML und den Erfahrungen bei der Erstellung von Apache Ignite ML. Alexey wird auch über die Implementierung verteilter ML-Algorithmen in diesen Frameworks sprechen.
Und schließlich zwei Berichte von Yandex über die Yandex-Datenbank.
Vladislav ist ein Yandex-Entwickler in einer verteilten Plattformgruppe. Yandex Database ist ein horizontal skalierbares, geoverteiltes, fehlertolerantes DBMS, das dem Ausfall von Festplatten, Servern, Racks und Rechenzentren standhält, ohne die Konsistenz zu beeinträchtigen. Um die Fehlertoleranz sicherzustellen, werden ein proprietärer verteilter Konsensalgorithmus sowie eine Reihe technischer Lösungen verwendet, die im Bericht ausführlich erläutert werden. Der Bericht kann sowohl für DBMS-Entwickler als auch für Entwickler von auf DBMS basierenden Anwendungslösungen von Interesse sein.
Semyon - ein Entwickler in einer Gruppe einer verteilten Plattform in Yandex - arbeitet an der Möglichkeit der mandantenfähigen Nutzung der YDB-Installation.
Die Yandex-Datenbank wurde für OLTP-Anforderungen entwickelt und erfüllt die ACID-Anforderungen für ein Transaktionssystem. In dem Bericht werden wir den Transaktionsplanungsalgorithmus betrachten, der dem YDB-Transaktionssystem zugrunde liegt. Wir werden analysieren, welche Entitäten an Transaktionen teilnehmen, wer Transaktionen eine globale Reihenfolge zuweist, wie die Atomizität von Transaktionen, die Zuverlässigkeit und eine strikte Isolationsstufe erreicht werden. Anhand eines Beispiels für ein häufiges Problem betrachten wir die Implementierung von Transaktionen mithilfe eines zweiphasigen Commits und deterministischer Transaktionen. Wir diskutieren ihre Unterschiede.
Was weiter?
Das Konferenzprogramm wird weiterhin mit neuen Berichten gefüllt. Insbesondere erwarten wir einen Bericht von Nikita Koval ( ndkoval ) von JetBrains und Oleg Anastasiev ( m0nstermind ) von Odnoklassniki. Nikita beschäftigt sich im Kotlin-Team mit Algorithmen für Coroutinen, und Oleg entwickelt Architekturen und Lösungen für hoch belastete Systeme auf der Odnoklassniki-Plattform. Darüber hinaus gibt es noch einen bedingt leeren Platz mit Kandidaten, für die das Programmkomitee gerade arbeitet.
Die Hydra-Konferenz findet vom 11. bis 12. Juli in St. Petersburg statt. Tickets können auf der offiziellen Website gekauft werden . Wir machen auf die Verfügbarkeit von Online-Tickets aufmerksam - wenn Sie aus irgendeinem Grund heutzutage nicht live nach St. Petersburg kommen können.
Triff mich bei Hydra!