19 tĂȘtes de l'hydre. Grande revue du programme

La conférence se tiendra à Saint-Pétersbourg les 11 et 12 juillet. Hydra, dédiée au développement de systÚmes parallÚles et distribués. L'attrait d'Hydra réside dans le fait qu'elle regroupe d'éminents chercheurs (que l'on trouve généralement uniquement lors de conférences scientifiques à l'étranger) et des ingénieurs praticiens reconnus, au sein d'un vaste programme à l'intersection de la science et de la pratique.

Hydra est l'une de nos conférences les plus importantes de ces derniÚres années. Elle a été précédée d'une préparation sérieuse, du choix des intervenants et des présentations. La semaine derniÚre, à ce sujet, une interview a été publiée sur Habr avec le directeur de la société JUG.ru Group, Alexeï Fiodorov (23derevo).

Nous avons déjà parlé sur trois participants majeurs, pionniers de la théorie des systÚmes distribués - Leslie Lamport, Maurice Herlihy et Michael Scott. Il est temps de parler plus en détail de l'ensemble du programme !

19 tĂȘtes de l'hydre. Grande revue du programme

Motivation

Si vous ĂȘtes programmeur, vous ĂȘtes d'une maniĂšre ou d'une autre confrontĂ© Ă  la programmation multithread et aux calculs distribuĂ©s. Les spĂ©cialistes dans ces domaines y travaillent directement, mais la distribution se manifestent implicitement partout : dans tout ordinateur multicƓur ou service distribuĂ©, il y a quelque chose qui exĂ©cute des calculs en parallĂšle.

Il existe de nombreuses confĂ©rences qui explorent divers aspects de la programmation appliquĂ©e. À l'autre bout du spectre, nous avons des Ă©coles scientifiques spĂ©cialisĂ©es, qui Ă  travers des cours exposent d'Ă©normes volumes de thĂ©orie complexe. Par exemple, parallĂšlement Ă  Hydra, Ă  Saint-PĂ©tersbourg se tient l'Ă©cole SPTDC.. À la confĂ©rence Hydra, nous avons tentĂ© de rassembler la pratique rigoureuse, la science, et tout ce qui se trouve Ă  leur croisement.

RĂ©flĂ©chissez Ă  cela : nous vivons une Ă©poque incroyable, oĂč l'on peut rencontrer en personne les fondateurs du domaine scientifique et technique qui nous occupe. Les physiciens ne rencontreront ni Newton ni Einstein — le train est parti. Mais parmi nous vivent encore ceux qui ont créé les fondements de la thĂ©orie des systĂšmes distribuĂ©s, qui ont imaginĂ© des langages de programmation populaires et qui ont d'abord concrĂ©tisĂ© tout cela en prototypes fonctionnels. Ces personnes n'ont pas abandonnĂ© leur travail Ă  mi-chemin, elles s'attaquent actuellement Ă  des problĂšmes contemporains dans des universitĂ©s et des entreprises mondialement reconnues, et elles sont aujourd'hui parmi les plus grandes sources de connaissances et d'expĂ©rience.

D'un autre cĂŽtĂ©, la possibilitĂ© de les rencontrer reste gĂ©nĂ©ralement purement thĂ©orique : peu d'entre nous peuvent surveiller constamment les Ă©vĂ©nements publics dans une universitĂ© de Rochester pour ensuite se rendre aux États-Unis et revenir pour une confĂ©rence avec Michael Scott. Rencontrer tous les participants Ă  Hydra coĂ»terait une petite fortune, sans compter l'immense perte de temps (bien que cela ressemble Ă  une quĂȘte intĂ©ressante).

D'un autre cĂŽtĂ©, nous avons de nombreux ingĂ©nieurs de pointe qui travaillent actuellement sur des problĂšmes actuels des systĂšmes distribuĂ©s, et ils ont certainement des choses Ă  raconter. Mais voilĂ  le problĂšme : ils travaillent, et leur temps est prĂ©cieux. Oui, si vous ĂȘtes employĂ© chez Microsoft, Google ou JetBrains, la probabilitĂ© de croiser un des confĂ©renciers cĂ©lĂšbres lors d'un Ă©vĂ©nement interne augmente considĂ©rablement, mais en gĂ©nĂ©ral — non, ce n'est pas quelque chose qui arrive tous les jours.

Ainsi, la confĂ©rence Hydra remplit une tĂąche importante que la plupart d'entre nous ne peuvent accomplir seuls — elle rĂ©unit en un mĂȘme endroit et Ă  un mĂȘme moment des personnes dont les idĂ©es ou la communication pourraient transformer votre vie. J'admets que tout le monde n'a pas besoin de systĂšmes distribuĂ©s, ni de concepts fondamentaux complexes. On peut passer toute sa vie Ă  programmer des CRUD en PHP et rester tout Ă  fait heureux. Mais pour ceux qui en ont besoin — c'est votre chance.

Il s'est dĂ©jĂ  Ă©coulĂ© pas mal de temps depuis la premiĂšre annonce de la confĂ©rence Hydra sur Habr. Pendant ce temps, un Ă©norme travail a Ă©tĂ© accompli — et voilĂ , nous avons une liste presque complĂšte de toutes les prĂ©sentations. Pas de longs algorithmes monotĂąches, juste du pur matĂ©riel distribuĂ© ! Passons aux choses sĂ©rieuses et regardons ce que nous avons maintenant en main.

Keynotes

Les keynotes ouvrent et clÎturent les journées de la conférence. Généralement, le but de la keynote d'ouverture est de définir l'esprit général et la direction de la conférence. La keynote de clÎture résume et explique comment vivre avec les connaissances et compétences acquises pendant les jours de la conférence. Le début et la fin : ce qui sera le mieux retenu et a donc une importance accrue.

Cliff Click — L'algorithme K/V distribuĂ© H2O

19 tĂȘtes de l'hydre. Grande revue du programme Cliff est une lĂ©gende dans le monde de Java. À la fin des annĂ©es 90, pour sa thĂšse de doctorat, il a Ă©crit un travail intitulĂ© «Combining Analyses, Combining Optimizations», qui est devenu, aprĂšs un certain temps, la base pour le HotSpot JVM Server Compiler. Deux ans plus tard, il travaillait dĂ©jĂ  chez Sun Microsystems sur la JVM et a montrĂ© au monde entier que le JIT avait sa place. Toute cette histoire sur le fait que Java est l'un des runtimes modernes les plus rapides avec les optimisations les plus intelligentes et les plus rapides a commencĂ© avec Cliff Click. Au dĂ©but, on pensait que si quelque chose Ă©tait accessible Ă  un compilateur statique, cela ne valait mĂȘme pas la peine d'ĂȘtre jitifiĂ©. GrĂące aux travaux de Cliff et de son Ă©quipe, tous les nouveaux langages ont commencĂ© Ă  ĂȘtre créés avec l'idĂ©e de la compilation JIT par dĂ©faut. Bien sĂ»r, ce n'Ă©tait pas une tĂąche pour une seule personne, mais Cliff a jouĂ© un rĂŽle trĂšs important dans ce processus.

Dans son discours d'ouverture, Cliff parlera de son autre projet — H20, une plateforme en mĂ©moire pour l'apprentissage automatique distribuĂ© et Ă©volutif Ă  des fins industrielles. Plus prĂ©cisĂ©ment — d'un stockage distribuĂ© de paires « clĂ©-valeur » Ă  l'intĂ©rieur de celle-ci. C'est un stockage trĂšs rapide avec une multitude de propriĂ©tĂ©s intĂ©ressantes (la liste exacte se trouve dans la description), qui permettent d'utiliser de telles solutions dans les mathĂ©matiques de streaming de grandes donnĂ©es.

Une autre prĂ©sentation que fera Cliff — L'expĂ©rience de la mĂ©moire transactionnelle matĂ©rielle Azul. Une autre partie de sa biographie — dix ans de travail chez Azul, oĂč il a mis Ă  jour et amĂ©liorĂ© de nombreuses choses dans le matĂ©riel et la pile technologique d'Azul : compilateurs JIT, runtime, modĂšle de threads, gestion des erreurs, gestion de la pile, interruptions matĂ©rielles, chargement de classes, et ainsi de suite — vous voyez ce que je veux dire.

La partie la plus intĂ©ressante a commencĂ© lorsqu'ils ont créé le matĂ©riel pour les grandes entreprises — un superordinateur pour exĂ©cuter Java. C'Ă©tait une piĂšce assez innovante, spĂ©cifiquement conçue pour Java, qui a des exigences particuliĂšres — barriĂšres mĂ©moire pour lecture pour un ramasse-miettes Ă  faible pause, tableaux avec vĂ©rification de limites, appels virtuels
 L'une des technologies les plus intĂ©ressantes — la mĂ©moire transactionnelle matĂ©rielle. Tout le L1 de chacun des 864 cƓurs pouvait participer Ă  une Ă©criture transactionnelle, ce qui est particuliĂšrement important pour la gestion des verrous en Java (les blocs synchronisĂ©s peuvent fonctionner en parallĂšle tant qu'il n'y a pas de conflit rĂ©el en mĂ©moire). Mais la belle idĂ©e a Ă©tĂ© confrontĂ©e Ă  la dure rĂ©alitĂ© — et dans cette prĂ©sentation, Cliff expliquera pourquoi le HTM et le STM ne conviennent pas trĂšs bien aux besoins pratiques des calculs multithreads.

Michael Scott — Structures de donnĂ©es doubles

19 tĂȘtes de l'hydre. Grande revue du programme Michael Scott — professeur en Informatique Ă  l'UniversitĂ© de Rochester, avec laquelle son destin l'a liĂ© depuis 34 ans, et Ă  l'UniversitĂ© du Wisconsin–Madison, il a Ă©tĂ© doyen pendant cinq ans. Il mĂšne des recherches dans le domaine de la programmation parallĂšle et distribuĂ©e ainsi que dans la conception de langages, et enseigne cela aux Ă©tudiants.

Le monde entier connaĂźt Michael grĂące Ă  son manuel «Programming Language Pragmatics», dont la derniĂšre Ă©dition est sortie relativement rĂ©cemment — en 2015. Son travail «Algorithms for scalable synchronization on shared-memory multiprocessors» a reçu a reçu le prix Dijkstra comme l'une des Ɠuvres les plus reconnues dans le domaine du calcul distribuĂ© et est disponible dans la bibliothĂšque en ligne de l'UniversitĂ© de Rochester. Vous pouvez Ă©galement le connaĂźtre comme l'auteur de l'algorithme de Michael-Scott dans «Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms».

En ce qui concerne le monde de Java, c'est un cas particulier : avec Doug Lea, il a dĂ©veloppĂ© ces algorithmes non bloquants et les files d'attente synchrones, sur lesquels reposent les bibliothĂšques Java. C'est exactement ce dont traitera le discours d'ouverture «Structures de donnĂ©es doubles» — l'intĂ©gration de ces structures dans Java SE 6 a permis d'amĂ©liorer les performances par dix java.util.concurrent.ThreadPoolExecutor. Si vous ĂȘtes dĂ©jĂ  curieux de savoir ce que sont ces fameuses «Structures de donnĂ©es doubles», il existe un travail correspondant.

Maurice Herlihy — Blockchains et l'avenir de l'informatique distribuĂ©e

19 tĂȘtes de l'hydre. Grande revue du programme Maurice Herlihy — laurĂ©at de deux prix Dijkstra. Le premier — pour son travail sur «Wait-Free Synchronization» (UniversitĂ© Brown), et le second, plus rĂ©cent — «Transactional Memory: Architectural Support for Lock-Free Data Structures» (UniversitĂ© Virginia Tech). Le prix Dijkstra est attribuĂ© pour des travaux dont l'importance et l'impact ont Ă©tĂ© visibles pendant au moins dix ans, et il est clair que Maurice est l'un des spĂ©cialistes les plus connus dans ce domaine. Actuellement, il est professeur Ă  l'UniversitĂ© Brown et possĂšde de nombreuses rĂ©alisations dignes d'un long paragraphe.

Lors de ce discours de clĂŽture, Maurice parlera de la thĂ©orie et de la pratique des systĂšmes distribuĂ©s basĂ©s sur les blockchains du point de vue des classiques de l'informatique distribuĂ©e et de la maniĂšre dont cela simplifie de nombreux problĂšmes connexes. Il s'agit d'une confĂ©rence strictement liĂ©e au thĂšme — pas du tout sur le buzz du minage, mais plutĂŽt sur comment nos connaissances peuvent ĂȘtre Ă©tonnamment efficaces et pertinentes pour diverses tĂąches.

En juillet 2017, Maurice est déjà venu en Russie pour l'école SPTDC, a participé au meetup JUG.ru, et vous pouvez regarder l'enregistrement sur YouTube :

Lire la vidéo

Programme principal

Voici un aperçu des présentations incluses dans le programme. Certaines sont décrites en détail, d'autres de maniÚre plus concise. Les descriptions longues concernent principalement les présentations en anglais, qui nécessitent des références à des travaux scientifiques, des terminologies sur Wikipédia, etc. Vous pouvez voir la liste complÚte sur le site de la conférence. La liste sur le site sera mise à jour et complétée.

Leslie Lamport — Q & A

19 tĂȘtes de l'hydre. Grande revue du programme Leslie Lamport est l'auteur d'ouvrages fondamentaux en informatique distribuĂ©e. «LaTeX» signifie «Lamport TeX». C'est lui qui a introduit pour la premiĂšre fois, en 1979, le concept cohĂ©rence sĂ©quentielle, et son article «How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs» a reçu le prix Dijkstra.

C'est la partie du programme au format le plus inhabituel, car il ne s'agit mĂȘme pas d'une prĂ©sentation, mais d'une session de questions et rĂ©ponses. Lorsque une grande partie du public est dĂ©jĂ  familiarisĂ©e (ou peut le devenir) avec divers travaux basĂ©s sur «la thĂ©orie de Lamport», ses propres articles et prĂ©sentations, il est crucial d'utiliser tout le temps disponible pour une communication directe.

L'idĂ©e est simple : vous regardez sur YouTube deux prĂ©sentations : «Programming Should Be More Than Coding» et «If You’re Not Writing a Program, Don’t Use a Programming Language» et vous prĂ©parez au moins une question, pendant que Leslie rĂ©pond.

Nous avons déjà transformé la premiÚre de ces deux vidéos en article de hub. Si vous n'avez pas une heure pour regarder la vidéo, vous pouvez rapidement lire tout cela sous forme de texte.

À noter : il y a beaucoup plus de vidĂ©os avec Leslie Lamport sur YouTube. Par exemple, il existe un excellent cours sur TLA+. Une version hors ligne de tout ce cours est disponible sur la page d'accueil de l'auteur, et sur YouTube, il l'a transfĂ©rĂ©e pour un visionnage plus pratique sur les appareils mobiles.

Martin Kleppmann — Synchronisation des donnĂ©es entre les appareils des utilisateurs pour une collaboration distribuĂ©e

19 tĂȘtes de l'hydre. Grande revue du programme Martin Kleppmann est chercheur Ă  l'UniversitĂ© de Cambridge, travaillant sur les CRDT et la vĂ©rification formelle des algorithmes. Le livre de Martin «Designing Data-Intensive Applications», publiĂ© en 2017, a rencontrĂ© un grand succĂšs et est devenu un best-seller dans le domaine du stockage et du traitement des donnĂ©es. Kevin Scott, CTO chez Microsoft, a un jour dĂ©clarĂ©: «Ce livre devrait ĂȘtre obligatoire pour les ingĂ©nieurs dĂ©veloppeurs. C'est une ressource rare qui allie thĂ©orie et pratique, aidant les dĂ©veloppeurs Ă  concevoir et Ă  mettre en Ɠuvre plus intelligemment l'infrastructure et les systĂšmes de traitement des donnĂ©es.» Quelque chose de similaire a Ă©tĂ© dit par le crĂ©ateur de Kafka et CTO de Confluent, Jay Kreps.

Avant de se lancer dans la recherche académique, Martin a travaillé dans l'industrie et cofondé deux startups prospÚres :

  • Rapportive, dĂ©diĂ© Ă  l'affichage du profil social des contacts de votre e-mail, achetĂ© par LinkedIn en 2012 ;
  • Go Test It, un service pour tester automatiquement des sites web dans diffĂ©rents navigateurs, achetĂ© par RedGate en 2009.

En général, bien que Martin soit moins connu que nos conférenciers principaux, il a déjà réussi à contribuer au développement de l'informatique distribuée ainsi qu'à l'industrie.

Dans cette présentation, Martin parlera d'un sujet plus proche de ses recherches académiques. Dans Google Docs et autres logiciels similaires pour la coédition de documents, la « coédition » fait référence à la tùche de réplication : chaque utilisateur a sa propre réplique d'un document commun, qu'ils modifient ensuite, et toutes les modifications sont envoyées aux autres participants. Les modifications des documents hors ligne entraßnent une incohérence temporaire du document par rapport aux autres participants, et la resynchronisation nécessite de gérer des conflits. C'est précisément pour cela qu'existent les types de données répliquées sans conflit (CRDT), en réalité, une notion assez nouvelle, dont le principe a été formulé seulement en 2011. Cette présentation aborde ce qui s'est passé depuis dans le monde des CRDT, quelles sont les derniÚres réalisations et discute de l'approche pour créer des applications « first-local » en général et de l'utilisation de la bibliothÚque open-source Automerge en particulier.

La semaine prochaine, nous publierons sur Habr un long entretien avec Martin, cela promet d'ĂȘtre intĂ©ressant.

Pedro Ramalhete — Structures de donnĂ©es sans attente et transactions sans attente

19 tĂȘtes de l'hydre. Grande revue du programme Pedro travaille chez Cisco et dĂ©veloppe des algorithmes parallĂšles depuis environ dix ans, y compris des mĂ©canismes de synchronisation, des structures de donnĂ©es sans verrou et sans attente, et tout ce que vous pouvez imaginer Ă  ce sujet. Ses intĂ©rĂȘts scientifiques et techniques actuels se concentrent sur les constructions universelles, la mĂ©moire transactionnelle logicielle, la mĂ©moire persistante et des technologies similaires permettant de rĂ©aliser des applications fiables, Ă©volutives et tolĂ©rantes aux pannes. Il est Ă©galement l'auteur d'un blog largement reconnu dans des cercles restreints Concurrency Freaks.

La plupart des applications multithread fonctionnent actuellement sur des structures de données parallÚles, allant de l'utilisation de files de messages entre acteurs à des structures de données indexées dans des stockages clé-valeur. Dans Java JDK, elles fonctionnent avec succÚs depuis de nombreuses années, et en C++, elles sont progressivement ajoutées.

La maniĂšre la plus simple de mettre en Ɠuvre une structure de donnĂ©es parallĂšle est une implĂ©mentation sĂ©quentielle (monothread) oĂč les mĂ©thodes sont protĂ©gĂ©es par des mutex. Cela est Ă  la portĂ©e de n'importe quel dĂ©butant, mais prĂ©sente des problĂšmes Ă©vidents en termes d'Ă©volutivitĂ© et de performance. En revanche, les structures de donnĂ©es sans verrou et sans attente non seulement gĂšrent mieux les erreurs, mais ont Ă©galement un meilleur profil de performance — cependant, leur dĂ©veloppement nĂ©cessite une expertise approfondie et une adaptation Ă  des usages spĂ©cifiques. Une seule ligne de code incorrecte peut suffire Ă  tout faire Ă©chouer.

Comment faire en sorte qu'un non-expert puisse concevoir et mettre en Ɠuvre de telles structures de donnĂ©es ? Il est connu que tout algorithme sĂ©quentiel peut ĂȘtre rendu sĂ»r pour les threads par l'utilisation soit d'une construction universelle, soit de la mĂ©moire transactionnelle. Les deux peuvent abaisser le seuil d'entrĂ©e pour rĂ©soudre ce problĂšme. Cependant, ces deux solutions mĂšnent gĂ©nĂ©ralement Ă  une mise en Ɠuvre inefficace. Pedro parlera de la façon dont ils ont rĂ©ussi Ă  rendre ces constructions plus efficaces et comment elles peuvent ĂȘtre utilisĂ©es pour des algorithmes.

Heidi Howard — LibĂ©ration du consensus distribuĂ©

19 tĂȘtes de l'hydre. Grande revue du programme Heidi Howard — tout comme Martin, est chercheuse en systĂšmes distribuĂ©s Ă  l'UniversitĂ© de Cambridge. Sa spĂ©cialitĂ© concerne la cohĂ©rence, la rĂ©silience, la performance et le consensus distribuĂ©. Elle est surtout connue pour sa gĂ©nĂ©ralisation de l'algorithme Paxos appelĂ© Paxos Flexible.

Rappelons que Paxos — une famille de protocoles visant Ă  rĂ©soudre le problĂšme du consensus dans un rĂ©seau de calculateurs non fiables, basĂ©e sur les travaux de Leslie Lamport. Ainsi, certains de nos intervenants travaillent sur des problĂšmes initialement proposĂ©s par d'autres de nos intervenants — et c'est merveilleux.

La possibilitĂ© de trouver un consensus entre plusieurs hĂŽtes — pour l'adressage, le choix d'un leader, le blocage ou la coordination — est une question fondamentale des systĂšmes distribuĂ©s modernes. Paxos est actuellement le moyen principal de rĂ©soudre les problĂšmes de consensus, et de nombreuses recherches sont menĂ©es pour Ă©tendre et optimiser l'algorithme en fonction de divers besoins pratiques.

Dans cet exposé, nous allons revisiter la base théorique de Paxos, en assouplissant les exigences initiales et en généralisant l'algorithme. Nous verrons que Paxos, en essence, n'est qu'une des options parmi un vaste éventail d'approches de consensus, et que d'autres points du spectre sont également trÚs utiles pour construire de bons systÚmes distribués.

Alex Petrov — RĂ©duisez vos coĂ»ts de stockage avec la RĂ©plication Transitoire et les Kourums Bon MarchĂ©

19 tĂȘtes de l'hydre. Grande revue du programme Alex est un expert en bases de donnĂ©es et en systĂšmes de stockage, et ce qui est le plus important pour nous — il est commiteur chez Cassandra. Actuellement, il travaille avec O'Reilly sur un livre intitulĂ© Database Internals.

Pour les systĂšmes avec la cohĂ©rence Ă©ventuelle (en terminologie francophone — « cohĂ©rence Ă  terme »), aprĂšs la chute d'un nƓud ou une sĂ©paration de rĂ©seau, il faut rĂ©soudre le dilemme suivant : continuer Ă  exĂ©cuter des requĂȘtes, sacrifiant la cohĂ©rence, ou refuser leur exĂ©cution en sacrifiant la disponibilitĂ©. Dans un tel systĂšme, les kourums, sous-ensembles d'hĂŽtes qui garantissent qu'au moins un nƓud contiendra la derniĂšre valeur, peuvent devenir une bonne solution de compromis. Il est possible de supporter des pannes et la perte de connexion avec certains nƓuds, tout en continuant Ă  rĂ©pondre avec les valeurs les plus rĂ©centes.

Cependant, tout a un prix. Le schĂ©ma de rĂ©plication par kourum implique un coĂ»t de stockage accru : il est nĂ©cessaire de conserver des donnĂ©es redondantes sur plusieurs nƓuds Ă  la fois pour garantir un nombre suffisant de copies disponibles au moment oĂč un problĂšme survient. Il s'avĂšre qu'il n'est pas nĂ©cessaire de stocker toutes les donnĂ©es sur toutes les rĂ©pliques. On peut rĂ©duire la charge sur le stockage en conservant les donnĂ©es uniquement sur une partie des nƓuds, et utiliser des nƓuds spĂ©ciaux (RĂ©plica Transitoire) pour les scĂ©narios de traitement des pannes.

Au cours de l'exposé, nous allons examiner Répliques Témoin, un schéma de réplication utilisé dans Spanner et Megastore, et l'implémentation de ce concept dans Apache Cassandra sous les noms Réplication Transitoire & Kourums Bon Marché.

Dmitry Vyukov — Goroutines exposĂ©es

19 tĂȘtes de l'hydre. Grande revue du programme Dmitri est dĂ©veloppeur chez Google, travaillant sur le test dynamique en C/C++ et Go — Address/Memory/ThreadSanitizer, ainsi que sur des outils similaires pour le noyau Linux. Il a contribuĂ© Ă  Go avec un planificateur de goroutines scalable, un poller rĂ©seau et un ramasse-miettes parallĂšle. Il est expert en programmation multithread et est l'auteur d'une douzaine de nouveaux algorithmes non-bloquants. Ceinture noire Intel.

Maintenant, parlons un peu de la prĂ©sentation. Le langage Go a un support natif pour le multithreading sous la forme de goroutines (lĂ©gers threads) et de canaux (queues FIFO). GrĂące Ă  ces mĂ©canismes, il est trĂšs facile et agrĂ©able pour les utilisateurs d'Ă©crire des applications modernes multithread, et cela semble magique. Comme nous pouvons le comprendre, il n'y a ici aucune magie. Dans cette prĂ©sentation, Dmitri plongera dans les subtilitĂ©s du fonctionnement du planificateur Go et montrera les secrets de la mise en Ɠuvre de cette "magie". Au dĂ©but, il donnera un aperçu des principaux composants du planificateur et expliquera comment cela fonctionne. Ensuite, nous examinerons de plus prĂšs des aspects spĂ©cifiques tels que les stratĂ©gies de stationnement/dĂ©stationnement et le traitement des appels systĂšme bloquants. Enfin, Dmitri partagera quelques suggestions d'amĂ©liorations pour le planificateur.

Dmitri Bugaychenko est Accélérer l'analyse distribuée des graphes à l'aide de croquis probabilistes et plus encore

19 tĂȘtes de l'hydre. Grande revue du programme Dmitri a travaillĂ© pendant prĂšs de 9 ans dans l'externalisation, tout en restant en contact avec l'universitĂ© et le milieu acadĂ©mique. L'analyse des grandes donnĂ©es chez Odnoklassniki a Ă©tĂ© pour lui une occasion unique de combiner sa formation thĂ©orique et ses bases scientifiques avec le dĂ©veloppement de produits rĂ©els et demandĂ©s.

L'analyse distribuée des graphes a toujours été et reste un défi complexe : lorsque l'on a besoin d'obtenir des informations sur les connexions d'un sommet adjacent, il faut souvent transférer des données entre des machines, ce qui entraßne une augmentation du temps d'exécution et de la charge sur l'infrastructure réseau. Dans cette présentation, nous verrons comment obtenir un gain de performance substantiel en utilisant des structures de données probabilistes ou des faits tels que la symétrie des graphes d'amitié dans un réseau social. Tout cela sera illustré par des exemples de code sur Apache Spark.

Denis Ryscov est Réduisez vos coûts de stockage avec la Réplication Transitoire et les Kourums Bon Marché

19 tĂȘtes de l'hydre. Grande revue du programme Denis est dĂ©veloppeur Cosmos DB, expert dans l'Ă©valuation des modĂšles de cohĂ©rence, dans les algorithmes de consensus et dans les transactions distribuĂ©es. Il travaille actuellement chez Microsoft, et avant cela, il a travaillĂ© sur des systĂšmes distribuĂ©s chez Amazon et Yandex.

Dans cette prĂ©sentation, nous explorerons les protocoles de transactions distribuĂ©es conçus au cours des derniĂšres annĂ©es, pouvant ĂȘtre implĂ©mentĂ©s cĂŽtĂ© client au-dessus de tout systĂšme de stockage supportant la mise Ă  jour conditionnelle (compare and set). L'idĂ©e est que la vie ne s'arrĂȘte pas au commit en deux phases ; des transactions peuvent ĂȘtre ajoutĂ©es au-dessus de n'importe quelle base de donnĂ©es — au niveau de l'application, mais diffĂ©rents protocoles (2PC, Percolator, RAMP) prĂ©sentent des compromis diffĂ©rents et ne sont pas gratuits.

Alexey Zinovyev — Tous les algorithmes ML ne parviennent pas au paradis distribuĂ©

19 tĂȘtes de l'hydre. Grande revue du programme Alexey (zaleslaw) — notre confĂ©rencier de longue date et membre des comitĂ©s de programme d'autres confĂ©rences. Formateur praticien chez EPAM Systems, il est en contact avec Hadoop/Spark et autre Big Data depuis 2012.

Dans cette présentation, Alexey parlera des problÚmes d'adaptation des algorithmes classiques d'apprentissage machine pour l'exécution en mode distribué, basé sur son expérience avec Apache Spark ML, Apache Mahout, Apache Flink ML et sur son expérience dans la création d'Apache Ignite ML. Alexey parlera également de l'implémentation d'algorithmes ML distribués dans ces frameworks.

Et pour conclure — deux prĂ©sentations de la sociĂ©tĂ© Yandex sur Yandex Database.

Vladislav Kuznetsov — Yandex Database — comment nous assurons la tolĂ©rance aux pannes

19 tĂȘtes de l'hydre. Grande revue du programme Vladislav est dĂ©veloppeur chez Yandex dans le groupe de plateforme distribuĂ©e. Yandex Database est un SGBD gĂ©o-rĂ©parti, tolĂ©rant aux pannes et Ă©volutif horizontalement, capable de rĂ©sister aux dĂ©faillances de disques, de serveurs, de racks et de centres de donnĂ©es sans compromettre la cohĂ©rence. Pour assurer la tolĂ©rance aux pannes, un algorithme propriĂ©taire de consensus distribuĂ© est utilisĂ©, ainsi qu'une sĂ©rie de solutions techniques qui seront dĂ©taillĂ©es dans la prĂ©sentation. La prĂ©sentation pourrait intĂ©resser tant les dĂ©veloppeurs de SGBD que ceux des solutions applicatives basĂ©es sur SGBD.

Semyon Checherinda — Transactions distribuĂ©es dans YDB

19 tĂȘtes de l'hydre. Grande revue du programme Semyon est dĂ©veloppeur dans le groupe de plateforme distribuĂ©e chez Yandex, travaillant sur la possibilitĂ© d'une utilisation multi-locataire de l'installation YDB.

Yandex Database est conçue pour les requĂȘtes OLTP et rĂ©pond aux exigences ACID d'un systĂšme transactionnel. Dans ce rapport, nous examinerons l'algorithme de planification des transactions qui sous-tend le systĂšme transactionnel YDB. Nous Ă©tudierons les entitĂ©s impliquĂ©es dans les transactions, qui Ă©tablit l'ordre global des transactions, comment l'atomicitĂ© des transactions, leur fiabilitĂ© et un niveau d'isolation strict sont atteints. À travers un exemple de tĂąche courante, nous examinerons les implĂ©mentations des transactions utilisant le commit en deux phases et les transactions dĂ©terministes. Nous discuterons de leurs diffĂ©rences.

Et aprĂšs ?

Le programme de la conférence continue de se remplir de nouveaux rapports. En particulier, nous attendons un rapport de Nikita Koval (ndkoval) de JetBrains et Oleg Anastasyev (m0nstermind) de la société Odnoklassniki. Nikita travaille sur des algorithmes pour les coroutines au sein de l'équipe Kotlin, tandis qu'Oleg développe l'architecture et des solutions pour des systÚmes à haute charge sur la plateforme de la société Odnoklassniki. De plus, il y a encore 1 créneau conditionnellement vide, avec des candidats sur lesquels le comité de programme travaille actuellement.

La confĂ©rence Hydra se tiendra les 11 et 12 juillet Ă  Saint-PĂ©tersbourg. Les billets peuvent ĂȘtre achetĂ©s sur le site officiel. Nous attirons votre attention sur la disponibilitĂ© des billets en ligne - si vous ne pouvez pas, pour une raison quelconque, vous rendre en personne Ă  Saint-PĂ©tersbourg pendant ces jours-lĂ .

Rendez-vous sur Hydra !

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster