Liste de lectures sur les systèmes distribués
Introduction
- La chose la plus difficile dans les systèmes distribués est de changer sa manière de penser.
- Cette liste rassemble des ressources utiles pour favoriser ce changement.
Ressources qui stimulent la réflexion
- Une sélection de textes offrant de nouvelles perspectives sur la conception de systèmes à grande échelle.
- Harvest, Yield and Scalable Tolerant Systems : application concrète du théorème CAP.
- On Designing and Deploying Internet Scale Services : conception et déploiement de services à l’échelle d’Internet.
- The Perils of Good Abstractions : la difficulté de construire une API/interface parfaite.
- Chaotic Perspectives : imprévisibilité et parallélisme dans les systèmes à grande échelle.
- Data on the Outside versus Data on the Inside : deux approches de la gestion des données.
- Memories, Guesses and Apologies : l’incertitude dans le traitement des données.
- SOA and Newton's Universe : une approche philosophique de l’architecture orientée services.
- Building on Quicksand : construire un système sur des fondations instables.
- Why Distributed Computing? : pourquoi l’informatique distribuée est nécessaire.
- A Note on Distributed Computing : concepts de base de l’informatique distribuée.
- Stevey's Google Platforms Rant : retour d’expérience sur la plateforme SOA de Google.
Latence
- L’existence de la latence et les moyens d’y faire face.
- Latency Exists, Cope! : l’impact architectural de la latence.
- Latency - the new web performance bottleneck : le nouveau goulot d’étranglement des performances web.
- The Tail At Scale : les problèmes de latence dans les systèmes à grande échelle.
Amazon
- Des éléments intéressants sur la culture et l’organisation d’Amazon plus que sur la technologie.
- A Conversation with Werner Vogels : la transition vers une architecture orientée services.
- Discipline and Focus : compléments sur la transformation architecturale d’Amazon.
- Vogels on Scalability : le point de vue de Vogels sur la scalabilité.
Google
- Les technologies de pointe des systèmes distribués.
- MapReduce : modèle de traitement de données à grande échelle.
- Chubby Lock Manager : gestion distribuée des verrous.
- Google File System : système de fichiers à grande échelle.
- BigTable : système de stockage distribué.
- Data Management for Internet-Scale Single-Sign-On : gestion des données pour le single sign-on à l’échelle d’Internet.
- Dremel : analyse interactive de jeux de données à l’échelle du web.
- Large-scale Incremental Processing Using Distributed Transactions and Notifications : traitement incrémental à grande échelle via des transactions distribuées.
- Megastore : stockage scalable et hautement disponible pour les services interactifs.
- Spanner : base de données distribuée mondiale.
- Photon : jointure de flux continus de données.
- Mesa : système de data warehousing en temps réel.
Modèles de cohérence
- Trouver l’équilibre entre cohérence et disponibilité dans la conception des systèmes.
- CAP Conjecture : arbitrage entre cohérence, disponibilité et tolérance au partitionnement.
- Consistency, Availability, and Convergence : les limites supérieures de la cohérence.
- CAP Twelve Years Later : l’évolution de la théorie CAP.
- Consistency and Availability : relation entre cohérence et disponibilité.
- Eventual Consistency : cohérence éventuelle.
- Avoiding Two-Phase Commit : comment éviter le commit en deux phases.
- 2PC or not 2PC, Wherefore Art Thou XA? : les limites du commit en deux phases.
- Life Beyond Distributed Transactions : la gestion des données au-delà des transactions distribuées.
- If you have too much data, then 'good enough' is good enough : NoSQL et l’avenir de la théorie des données.
- Starbucks doesn't do two phase commit : mécanismes asynchrones.
- You Can't Sacrifice Partition Tolerance : l’importance de la tolérance au partitionnement.
- Optimistic Replication : approche de cohérence relâchée.
Théorie
- Des articles expliquant des éléments importants de la conception des systèmes distribués.
- Distributed Computing Economics : l’économie de l’informatique distribuée.
- Rules of Thumb in Data Engineering : règles empiriques en ingénierie des données.
- Fallacies of Distributed Computing : les idées reçues de l’informatique distribuée.
- Impossibility of distributed consensus with one faulty process : théorie FLP.
- Unreliable Failure Detectors for Reliable Distributed Systems : détecteurs de pannes pour systèmes distribués fiables.
- Lamport Clocks : synchronisation du temps dans les systèmes distribués.
- The Byzantine Generals Problem : le problème des généraux byzantins.
- Lazy Replication : exploitation de la sémantique dans les services distribués.
- Scalable Agreement : l’ordonnancement en tant que service.
- Scalable Eventually Consistent Counters over Unreliable Networks : compteurs scalables à cohérence éventuelle sur des réseaux peu fiables.
Langages et outils
- Les défis de la construction de systèmes distribués avec des technologies spécifiques.
- Programming Distributed Erlang Applications : créer des applications distribuées avec Erlang et OTP.
Infrastructure
- Principes robustes de gestion du temps sur Internet.
Stockage
- Consistent Hashing and Random Trees : hachage cohérent et arbres aléatoires.
- Amazon's Dynamo Storage Service : le service de stockage d’Amazon.
- Paxos Consensus : comprendre l’algorithme Paxos.
- The Part-Time Parliament : les bases de Paxos.
- Paxos Made Simple : une explication simple de Paxos.
- Paxos Made Live : une perspective d’ingénierie sur Paxos.
- Revisiting the Paxos Algorithm : réexamen de l’algorithme Paxos.
- How to build a highly available system with consensus : construire un système hautement disponible grâce au consensus.
- Reconfiguring a State Machine : reconfiguration d’une machine à états.
- Implementing Fault-Tolerant Services Using the State Machine Approach : mise en œuvre de services tolérants aux pannes avec l’approche machine à états.
Autres articles sur le consensus
- Mencius : construire des machines à états répliquées efficaces pour le WAN.
- In Search of an Understandable Consensus Algorithm : version étendue de l’algorithme RAFT.
Protocoles de gossip (Epidemic Behaviours)
- La puissance des protocoles de communication fondés sur le gossip.
- Astrolabe : techniques de supervision et de data mining pour systèmes distribués.
- Epidemic Computing at Cornell : l’informatique épidémique à Cornell.
- Fighting Fire With Fire : dépasser les limites de scalabilité avec un gossip aléatoire.
- Bi-Modal Multicast : multicast bimodal.
- ACM SIGOPS Operating Systems Review : réseaux fondés sur le gossip.
- SWIM : protocole de membership de groupe de processus, scalable, faiblement cohérent et de style épidémique.
P2P
- Chord : protocole scalable de recherche pair à pair pour les applications Internet.
- Kademlia : système d’information pair à pair fondé sur la métrique XOR.
- Pastry : localisation d’objets distribués et routage pour de grands systèmes pair à pair.
- PAST : utilitaire de stockage pair à pair persistant à grande échelle construit sur Pastry.
- SCRIBE : infrastructure multicast distribuée à grande échelle au niveau applicatif construite sur Pastry.
Résumé GN⁺
- Les systèmes distribués sont un domaine qui exige de transformer sa manière de penser pour résoudre des problèmes complexes.
- Cette sélection de ressources et d’articles apporte une compréhension approfondie de la conception et de l’implémentation des systèmes distribués.
- Cette liste couvre de nombreux aspects des systèmes distribués, avec un éclairage particulier sur les modèles de cohérence et les problèmes de latence.
- Elle peut constituer une ressource utile pour les développeurs ou chercheurs intéressés par les systèmes distribués.
- Parmi les projets aux fonctionnalités proches, Apache Kafka et Apache Cassandra sont également recommandés.
Aucun commentaire pour le moment.