19 têtes d'hydre. Très bon aperçu du programme

Une conférence aura lieu les 11 et 12 juillet à Saint-Pétersbourg Hydra, dédié au développement de systèmes parallèles et distribués. L’astuce d’Hydra est qu’il réunit des scientifiques cool (que l’on ne trouve généralement que lors de conférences scientifiques étrangères) et des ingénieurs en exercice célèbres dans 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 très sérieuse, d'une sélection d'orateurs et de rapports. La semaine dernière à ce sujet L'interview de Habro est sortie avec le directeur du groupe JUG.ru, Alexey Fedorov (23derevo).

Nous Déjà dit sur trois participants importants, les fondateurs 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 d'hydre. Très bon aperçu du programme

Motivation

Si vous êtes impliqué dans la programmation, vous avez d'une manière ou d'une autre affaire au multithreading et à l'informatique distribuée. Les experts dans les domaines concernés travaillent directement avec eux, mais implicitement, la distribution nous regarde de partout : dans tout ordinateur multicœur ou service distribué, il y a quelque chose qui effectue des calculs en parallèle.

Il existe de nombreuses conférences qui couvrent divers aspects de la programmation d'applications. De l’autre côté du spectre, nous avons des écoles scientifiques spécialisées qui révèlent de grandes quantités de théories complexes sous forme de cours magistraux. Par exemple, parallèlement à Hydra à Saint-Pétersbourg, il y a École SPTDC. Lors de la conférence Hydra, nous avons essayé de rassembler les pratiques difficiles, la science et tout ce qui se trouve à leur intersection.

Pensez-y : nous vivons une époque incroyable où vous pouvez rencontrer en personne les fondateurs du domaine des sciences et de l’ingénierie que nous étudions. Les physiciens ne rencontreront ni Newton ni Einstein - le train est parti. Mais à côté de nous vivent encore ceux qui ont jeté les bases de la théorie des systèmes distribués, inventé des langages de programmation populaires et pour la première fois incarné tout cela dans des prototypes fonctionnels. Ces personnes n’ont pas quitté leur emploi à mi-chemin, elles travaillent actuellement sur des problèmes urgents dans des universités et des entreprises de renommée mondiale et constituent aujourd’hui les plus grandes sources de connaissances et d’expériences.

D'un autre côté, la possibilité de les rencontrer reste généralement purement théorique : peu d'entre nous peuvent suivre en permanence les événements publics dans une université de Rochester, puis se précipiter aux États-Unis et revenir pour une conférence avec Michael Scott. Visiter tous les membres d’Hydra coûterait une petite fortune, sans compter l’abîme du temps perdu (même si cela semble être une quête intéressante).

D’un autre côté, nous avons de nombreux ingénieurs de haut niveau qui travaillent actuellement sur des problèmes urgents dans les systèmes distribués, et ils ont certainement beaucoup à dire. Mais voici le problème : ils travailler, et leur temps est précieux. Oui, si vous êtes employé de Microsoft, Google ou JetBrains, la probabilité de rencontrer l'un des conférenciers célèbres lors d'un événement interne augmente fortement, mais en général, non, cela n'arrive pas tous les jours.

De cette manière, la Conférence Hydra accomplit une tâche importante que la plupart d'entre nous ne peuvent pas accomplir seuls : en un seul endroit et à un même moment, elle rassemble des personnes dont les idées ou les interactions avec qui peuvent changer votre vie. J'admets que tout le monde n'a pas besoin de systèmes distribués ou de choses fondamentales complexes. Vous pouvez programmer des CRUD en PHP pour le reste de votre vie et rester complètement satisfait. Mais quiconque en a besoin, c'est votre chance.

Beaucoup de temps s'est écoulé depuis la première annonce de la conférence Hydra sur Habré. Pendant ce temps, beaucoup de travail a été fait - et nous avons maintenant une liste de presque tous les rapports. Pas d'algorithmes monothread lents, juste du pur hardcore distribué ! Terminons par des mots généraux et voyons ce que nous avons entre les mains maintenant.

Keynotes

Les keynotes commencent et terminent les journées de la conférence. Habituellement, le but d'un discours d'ouverture est de définir l'esprit général et l'orientation de la conférence. Le discours de clôture trace une ligne et explique comment nous pouvons vivre avec les connaissances et les compétences acquises lors de la conférence. Le début et la fin : ce dont on se souvient le mieux, et en général, a une signification accrue.

Clic sur la falaise L'algorithme K/V distribué H2O

19 têtes d'hydre. Très bon aperçu du programme Cliff est une légende dans le monde Java. À la fin des années 90, pour sa thèse de doctorat, il a rédigé un article intitulé "Combiner les analyses, combiner les optimisations", qui est devenu quelque temps plus tard la base du compilateur de serveur HotSpot JVM. Deux ans plus tard, il travaillait déjà chez Sun Microsystems sur la JVM et montrait au monde entier que JIT avait le droit d'exister. Toute cette histoire sur la façon dont Java est l'un des environnements d'exécution modernes les plus rapides avec les optimisations les plus intelligentes et les plus rapides est venue de Cliff Click. Au tout début, on pensait que si quelque chose était accessible à un compilateur statique, il n’était même pas nécessaire d’essayer de le lancer. Grâce au travail de Cliff et de son équipe, tous les nouveaux langages ont commencé à être créés avec l'idée de compilation JIT par défaut. Bien sûr, il ne s’agissait pas du travail d’un seul homme, mais Cliff y a joué un rôle très important.

Dans le discours d'ouverture, Cliff parlera de son autre projet : H20, une plateforme en mémoire pour l'apprentissage automatique distribué et évolutif pour les applications industrielles. Ou plus précisément, sur le stockage distribué des paires clé-valeur à l'intérieur. C'est un stockage très rapide avec beaucoup de propriétés intéressantes (la liste exacte est dans la description), qui permettent l’utilisation de solutions similaires dans les mathématiques du streaming big data.

Un autre rapport que Cliff donnera est - L'expérience de mémoire transactionnelle matérielle Azul. Une autre partie de sa biographie - dix ans travailler chez Azul, où il a mis à jour et amélioré beaucoup de choses dans la pile matérielle et technologique Azul : compilateurs JIT, runtime, modèle de thread, gestion des erreurs, gestion de la pile, interruptions matérielles, chargement de classe, etc. - eh bien, vous obtenez le idée.

La partie la plus intéressante a commencé lorsqu'ils ont fabriqué du matériel pour une grande entreprise : un superordinateur pour exécuter Java. C'était une chose plutôt innovante, spécialement conçue pour Java, qui avait des exigences particulières - barrières de mémoire de lecture pour le garbage collection à faible pause, tableaux avec vérification des limites, appels virtuels... L'une des technologies les plus intéressantes est la mémoire transactionnelle matérielle. L'intégralité du L1 de n'importe lequel des 864 cœurs pourrait participer à l'écriture transactionnelle, ce qui est particulièrement important pour travailler avec des verrous en Java (les blocs synchronisés peuvent fonctionner en parallèle tant qu'il n'y a pas de véritable conflit de mémoire). Mais cette belle idée a été écrasée par la dure réalité - et dans cet exposé, Cliff vous expliquera pourquoi HTM et STM ne sont pas très bien adaptés aux besoins pratiques de l'informatique multithread.

Michael Scott - Structures de données doubles

19 têtes d'hydre. Très bon aperçu du programme Michel Scott - Professeur d'informatique à l'Université de Rochester, avec qui le destin l'a lié déjà 34 ans, et dans son université natale du Wisconsin-Madison, il a été doyen pendant cinq ans. Il effectue des recherches et enseigne aux étudiants la programmation parallèle et distribuée et la conception de langages.

Le monde entier connaît Michael grâce au manuel "Pragmatique du langage de programmation", dont la dernière édition a été publiée relativement récemment - en 2015. Son travail "Algorithmes de synchronisation évolutive sur multiprocesseurs à mémoire partagée" reçu Prix ​​Dijkstra comme l'un des plus célèbres dans le domaine de l'informatique distribuée et mentir ouvertement à la bibliothèque en ligne de l'Université de Rochester. Vous le connaissez peut-être aussi comme l'auteur de l'algorithme de Michael-Scott de "Algorithmes de file d'attente simultanés non bloquants et bloquants simples, rapides et pratiques".

Quant au monde Java, il s'agit d'un cas particulier : avec Doug Lea, il a développé les algorithmes non bloquants et les files d'attente synchrones sur lesquelles fonctionnent les bibliothèques Java. C'est exactement le sujet du discours d'ouverture « Dual data structures » : l'introduction de ces structures dans Java SE 6 a amélioré les performances de 10 fois. java.util.concurrent.ThreadPoolExecutor. Si vous vous demandez à l’avance ce que sont ces « structures de données doubles », alors il y a des informations à ce sujet travaux connexes.

Maurice Herlihy - Les blockchains et l'avenir de l'informatique distribuée

19 têtes d'hydre. Très bon aperçu du programme Maurice Herlihy - lauréat de deux prix Dijkstra. Le premier concerne les travaux sur "Synchronisation sans attente" (Brown University), et la seconde, plus récente - "Mémoire transactionnelle : prise en charge architecturale des structures de données sans verrouillage" (Université technologique de Virginie). Le prix Dijkstra récompense un travail dont l'importance et l'impact sont visibles depuis au moins dix ans, et Maurice est clairement l'un des experts les plus renommés dans le domaine. Il travaille actuellement comme professeur à l'Université Brown et possède une liste de réalisations longue d'un paragraphe.

Dans ce discours de clôture, Maurice parlera de la théorie et de la pratique des systèmes distribués blockchain 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'un rapport exclusivement sur le thème de la conférence - pas du tout sur le battage médiatique minier, mais plutôt sur la manière dont nos connaissances peuvent être utilisées de manière étonnamment efficace et appropriée dans le cadre d'une variété de tâches.

En juillet 2017, Maurice est déjà venu en Russie pour fréquenter l'école SPTDC, a participé au meetup JUG.ru, et l'enregistrement peut être visionné sur YouTube :

Programme principal

Il y aura ensuite un bref aperçu des rapports inclus dans le programme. Certains rapports sont décrits ici en détail, d'autres plus brièvement. Les longues descriptions concernaient principalement des rapports en anglais qui nécessitaient des liens vers des articles scientifiques, des termes sur Wikipédia, etc. La liste complète est disponible voir sur le site de la conférence. La liste sur le site Internet sera mise à jour et complétée.

Leslie Lamport QUESTIONS RÉPONSES

19 têtes d'hydre. Très bon aperçu du programme Leslie Lamport est l'auteur d'ouvrages fondateurs sur l'informatique distribuée. "Latex" signifie "Lamport TeX". C'est lui qui, le premier, en 1979, a introduit le concept cohérence constante, et son article "Comment faire un ordinateur multiprocesseur qui exécute correctement les programmes multiprocessus" a reçu le prix Dijkstra.

Il s’agit de la partie du programme la plus inhabituelle en termes de format, car il ne s’agit même pas d’un rapport, mais d’une séance de questions et réponses. Lorsqu'une partie importante du public connaît déjà (ou peut se familiariser) avec toutes sortes d'ouvrages basés sur la « théorie de Lamport », ses propres articles et rapports, il est plus important de consacrer tout le temps disponible à la communication directe.

L'idée est simple : vous regardez deux reportages sur YouTube : "La programmation devrait être plus que du codage" и "Si vous n'écrivez pas de programme, n'utilisez pas de langage de programmation" et préparez au moins une question, et Leslie répond.

La première de ces deux vidéos que nous avons déjà transformé en article habro. Si vous n'avez pas une heure pour regarder la vidéo, vous pouvez la lire rapidement sous forme de texte.

Remarque : Il existe de nombreuses autres vidéos de Leslie Lamport sur YouTube. Par exemple, il existe un grand Cours TLA+. Une version hors ligne de l'intégralité de ce cours est disponible sur page d'accueil de l'auteur, et il l'a téléchargé sur YouTube pour une visualisation plus facile sur les appareils mobiles.

Martin Kleppmann- Synchronisation des données sur les appareils des utilisateurs pour une collaboration distribuée

19 têtes d'hydre. Très bon aperçu du programme Martin Kleppmann est chercheur à l'Université de Cambridge travaillant sur le CRDT et la vérification formelle des algorithmes. Le livre de Martin "Concevoir des applications gourmandes en données", publié en 2017, a connu un grand succès et s'est inscrit sur la liste des best-sellers dans le domaine du stockage et du traitement des données. Kevin Scott, directeur technique chez Microsoft, dit une fois: « Ce livre devrait être un incontournable pour les ingénieurs logiciels. Il s’agit d’une ressource rare qui combine théorie et pratique pour aider les développeurs à concevoir et mettre en œuvre plus intelligemment des infrastructures et des systèmes de données. Le créateur de Kafka et CTO de Confluent, Jay Kreps, a dit quelque chose de similaire.

Avant de se lancer dans la recherche universitaire, Martin a travaillé dans l'industrie et a cofondé deux start-ups à succès :

  • Rapportive, dédié à l'affichage du profil social des contacts de votre messagerie, que LinkedIn a racheté en 2012 ;
  • Go Test It, un service permettant de tester automatiquement les sites Web dans divers navigateurs, acheté par RedGate en 2009.

De manière générale, Martin, bien que moins célèbre que nos keynotes, a déjà pu apporter une certaine contribution au développement de l'informatique distribuée et à l'industrie.

Dans cette conférence, Martin abordera un sujet plus proche de ses recherches universitaires. Dans Google Docs et les canapés de co-édition de documents similaires, « l'édition collaborative » fait référence à une tâche de réplication : chaque utilisateur possède sa propre réplique du document partagé, qu'il modifie ensuite, et toutes les modifications sont envoyées via le réseau au reste du participants. Les modifications apportées aux documents hors ligne entraînent une incohérence temporaire du document par rapport aux autres participants, et la resynchronisation nécessite une gestion des conflits. C'est exactement pour cela qu'ils existent Types de données répliquées sans conflit (CRDT), en fait, est une chose assez nouvelle, dont l'essence n'a été formulée qu'en 2011. Cette conférence discute de ce qui s'est passé depuis lors dans le monde du CRDT, des avancées les plus récentes, de l'approche de création d'applications locales en général et de l'utilisation d'une bibliothèque open source. Fusion automatique en particulier.

La semaine prochaine nous publierons une longue interview de Martin sur Habré, ce sera intéressant.

Pedro Ramalhete - Structures de données sans attente et transactions sans attente

19 têtes d'hydre. Très bon aperçu du programme Pedro travaille chez Cisco et développe des algorithmes parallèles depuis une dizaine d'années, y compris des mécanismes de synchronisation, des structures de données sans verrouillage et sans attente et tout ce que vous pouvez imaginer sur ce sujet. Ses intérêts actuels en matière de recherche et d'ingénierie se concentrent sur les constructions universelles, la mémoire transactionnelle logicielle, la mémoire persistante et les technologies similaires qui permettent des applications correctes, évolutives et tolérantes aux pannes. Il est également l'auteur d'un blog largement connu dans les cercles restreints Freaks de la concurrence.

La plupart des applications multithread s'exécutent désormais sur des structures de données parallèles, depuis l'utilisation de files d'attente de messages entre acteurs jusqu'aux structures de données indexées dans des magasins clé-valeur. Ils fonctionnent avec succès dans le JDK Java depuis de nombreuses années et sont progressivement ajoutés au C++.

Le moyen le plus simple d'implémenter une structure de données parallèle est une implémentation séquentielle (à thread unique) dans laquelle les méthodes sont protégées par des mutex. Ceci est accessible à tout mois de juin, mais présente des problèmes évidents de mise à l'échelle et de performances. Dans le même temps, les structures de données sans verrouillage et sans attente résistent non seulement mieux aux erreurs, mais ont également un meilleur profil de performances. Cependant, leur développement nécessite une expertise approfondie et une adaptation à une application spécifique. Une mauvaise ligne de code suffit à tout casser.

Comment pouvons-nous faire en sorte que même 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 thread-safe en utilisant soit conception universelle, ou mémoire transactionnelle. D’une part, ils peuvent abaisser les barrières à l’entrée pour résoudre ce problème. Cependant, les deux solutions conduisent généralement à une mise en œuvre inefficace. Pedro expliquera comment ils ont réussi à rendre ces conceptions plus efficaces et comment vous pouvez les utiliser pour vos algorithmes.

Heidi Howard- Libérer le consensus distribué

19 têtes d'hydre. Très bon aperçu du programme Heidi Howard est, comme Martin, chercheuse en systèmes distribués à l'Université de Cambridge. Ses spécialités sont la cohérence, la tolérance aux pannes, la performance et le consensus distribué. Elle est surtout connue pour sa généralisation de l'algorithme Paxos appelé Paxos flexibles.

Rappelons que Paxos est une famille de protocoles permettant de résoudre le problème du consensus dans un réseau d'ordinateurs peu fiables, basé sur les travaux de Leslie Lamport. Ainsi, certains de nos intervenants travaillent sur des problèmes initialement proposés par nos autres intervenants - et c'est merveilleux.

La capacité à trouver un consensus entre plusieurs hôtes (pour l'adressage, l'élection des dirigeants, le blocage ou la coordination) est un problème fondamental dans les systèmes distribués modernes. Paxos est désormais le principal moyen de résoudre les problèmes de consensus, et de nombreuses recherches sont en cours autour de lui pour étendre et optimiser l'algorithme pour divers besoins pratiques.

Dans cet exposé, nous revisiterons les bases théoriques de Paxos, en assouplissant les exigences initiales et en généralisant l'algorithme. Nous verrons que Paxos n'est essentiellement qu'une option parmi une vaste gamme d'approches consensuelles, 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 grâce à la réplication transitoire et aux quorums bon marché

19 têtes d'hydre. Très bon aperçu du programme Alex est un spécialiste des bases de données et des systèmes de stockage, et plus important encore pour nous, un commiter dans Cassandra. Il travaille actuellement sur un livre, Database Internals, avec O'Reilly.

Pour les systèmes avec cohérence éventuelle (dans la terminologie russe - « cohérence ultime »), après une panne d'un nœud ou une scission du réseau, vous devez résoudre le dilemme suivant : soit continuer à exécuter les requêtes, en sacrifiant la cohérence, soit refuser de les exécuter et sacrifier la disponibilité. Dans un tel système, les quorums, qui chevauchent des sous-ensembles de nœuds et garantissent qu'au moins un nœud contient la valeur la plus récente, peuvent être une bonne solution de pointe. Vous pouvez survivre aux pannes et à la perte de connectivité de certains nœuds tout en répondant avec les dernières valeurs.

Cependant, tout a son prix. Un schéma de réplication de quorum entraîne une augmentation des coûts de stockage : les données redondantes doivent être stockées sur plusieurs nœuds à la fois pour garantir qu'il y a suffisamment de copies disponibles lorsqu'un problème survient. Il s'avère que vous n'êtes pas obligé de stocker toutes les données sur toutes les répliques. Vous pouvez réduire la charge sur le stockage si vous stockez les données uniquement sur une partie des nœuds et utilisez des nœuds spéciaux (Transient Replica) pour les scénarios de gestion des pannes.

Au cours du rapport, nous examinerons Répliques de témoins, le schéma de réplication utilisé dans clé à molette и Mégastore, et l'implémentation de ce concept dans Apache Cassandra appelée Réplication transitoire et quorums bon marché.

Dmitri Vyukov - Les Goroutines exposés

19 têtes d'hydre. Très bon aperçu du programme Dmitry est un développeur chez Google qui travaille sur des tests dynamiques pour C/C++ et Go - Address/Memory/ThreadSanitizer, ainsi que sur des outils similaires pour le noyau Linux. Contribution à Go, un planificateur de goroutines évolutif, un observateur de réseau et un garbage collector parallèle. Il est expert en multithreading, auteur d'une douzaine de nouveaux algorithmes non bloquants et propriétaire de Ceinture noire Intel.

Parlons maintenant un peu du rapport lui-même. Le langage Go prend en charge nativement le multithreading sous la forme de goroutines (threads légers) et de canaux (files d'attente FIFO). Ces mécanismes permettent aux utilisateurs d’écrire très facilement et agréablement des applications multithread modernes, et cela semble magique. Comme nous le comprenons, il n’y a pas de magie ici. Dans cette présentation, Dmitry approfondira les subtilités du planificateur Go et montrera les secrets de la mise en œuvre de cette « magie ». Tout d’abord, il vous donnera un aperçu des principaux composants du planificateur et vous expliquera son fonctionnement. Ensuite, nous examinerons de plus près certains aspects tels que la stratégie de stationnement/déparkage et la gestion des appels système de blocage. Enfin, Dmitry parlera un peu des améliorations possibles du planificateur.

Dmitri Bugaïchenko - Accélérer l'analyse de graphiques distribués avec des croquis probabilistes et bien plus encore

19 têtes d'hydre. Très bon aperçu du programme Dmitry a travaillé dans l'externalisation pendant près de 9 ans sans perdre le contact avec l'université et la communauté scientifique. L'analyse des mégadonnées à Odnoklassniki est devenue pour lui une occasion unique de combiner formation théorique et fondation scientifique avec le développement de produits réels et demandés.

L'analyse de graphes distribués a été et reste une tâche difficile : lorsqu'il devient nécessaire d'obtenir des informations sur les connexions d'un sommet voisin, les données doivent souvent être transférées entre machines, ce qui entraîne une augmentation du temps d'exécution et de la charge sur l'infrastructure réseau. Dans cet exposé, nous verrons comment obtenir des vitesses de traitement significatives en utilisant des structures de données probabilistes ou des faits comme la symétrie du graphique d'amitié dans un réseau social. Tout cela est illustré par des exemples de code dans Apache Spark.

Denis Rystsov - Réduisez vos coûts de stockage grâce à la réplication transitoire et aux quorums bon marché

19 têtes d'hydre. Très bon aperçu du programme Denis - développeur Base de données Cosmos, un expert dans la vérification des modèles de cohérence, des algorithmes de consensus et des 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 examinerons les protocoles de transaction distribués qui ont été inventés au cours des dernières années, qui peuvent être implémentés côté client au-dessus de n'importe quel magasin de données prenant en charge la mise à jour conditionnelle (comparer et définir). L'essentiel est que la vie ne se termine pas par une validation en deux phases, les 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) ont des compromis différents et ne nous sont pas donnés. gratuitement.

Alexeï Zinoviev - Tous les algorithmes ML n’atteignent pas le paradis distribué

19 têtes d'hydre. Très bon aperçu du programme Alexeï (salade de chou) est conférencier de longue date et membre des comités de programme d'autres conférences. Formateur en exercice chez EPAM Systems, et ami avec Hadoop/Spark et d'autres big data depuis 2012.

Dans cette conférence, Alexey parlera des problèmes d'adaptation des algorithmes d'apprentissage automatique classiques pour une exécution en mode distribué, sur la base de son expérience de travail avec Apache Spark ML, Apache Mahout, Apache Flink ML et de son expérience de création d'Apache Ignite ML. Alexey parlera également de la mise en œuvre d'algorithmes de ML distribués dans ces frameworks.

Et enfin, deux rapports de Yandex sur la base de données Yandex.

Vladislav Kouznetsov - Base de données Yandex - comment nous garantissons la tolérance aux pannes

19 têtes d'hydre. Très bon aperçu du programme Vladislav est développeur chez Yandex dans le groupe de plates-formes distribuées. Yandex Database est un SGBD évolutif horizontalement, géodistribué et tolérant aux pannes, capable de résister aux pannes de disques, de serveurs, de racks et de centres de données sans perdre en cohérence. Pour garantir la tolérance aux pannes, un algorithme propriétaire permettant d'obtenir un consensus distribué est utilisé, ainsi qu'un certain nombre de solutions techniques, qui sont discutées en détail dans le rapport. Le rapport peut intéresser à la fois les développeurs de SGBD et les développeurs de solutions d'application basées sur les SGBD.

Semyon Checherinda - Transactions distribuées dans YDB

19 têtes d'hydre. Très bon aperçu du programme Semyon est un développeur du groupe de plates-formes distribuées chez Yandex, travaillant sur la possibilité d'une utilisation multi-locataire de l'installation YDB.

La base de données Yandex est conçue pour les requêtes OLTP et est conforme aux exigences ACID pour un système transactionnel. Dans ce rapport, nous examinerons l'algorithme de planification des transactions qui sous-tend le système de transactions YDB. Examinons quelles entités participent aux transactions, qui attribue un ordre global aux transactions, comment l'atomicité, la fiabilité et un niveau strict d'isolement des transactions sont atteints. En utilisant un problème courant comme exemple, examinons les implémentations de transactions utilisant des validations en deux phases et des transactions déterministes. Discutons de leurs différences.

Quelle est la prochaine?

Le programme de la conférence continue d'être rempli de nouveaux rapports. Nous attendons notamment un rapport de Nikita Koval (ndkoval) de JetBrains et Oleg Anastasiev (esprit mental) de la société Odnoklassniki. Nikita travaille sur des algorithmes pour les coroutines au sein de l'équipe Kotlin, et Oleg développe une architecture et des solutions pour les systèmes à forte charge sur la plateforme Odnoklassniki. De plus, il y a 1 autre emplacement conditionnellement vide, le comité de programme travaille actuellement avec les candidats pour cela.

La conférence Hydra aura lieu les 11 et 12 juillet à Saint-Pétersbourg. Les billets sont disponibles achat sur le site officiel. Veuillez faire attention à la disponibilité des billets en ligne - si, pour une raison quelconque, vous ne pouvez pas vous rendre à Saint-Pétersbourg ces jours-ci.

Rendez-vous à Hydra !

Source: habr.com

Ajouter un commentaire