Résumé du livre
Designing Data-Intensive Applications
The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
La référence des systèmes de données modernes. Réplication, partitionnement, transactions, consensus, batch et stream : les grands principes derrière les bases de données et les systèmes distribués.
Commencer 11 chapitres · ~206 min de lecture
Sommaire
- 01 Fiabilité, scalabilité, maintenabilité Les trois préoccupations de tout système de données — et comment les mesurer : pannes, percentiles de latence, montée en charge et exploitabilité. 17 min
- 02 Modèles de données & langages de requête Relationnel, document ou graphe : choisir son modèle de données, et le langage pour l'interroger (SQL, MapReduce, Cypher). 16 min
- 03 Stockage et indexation Comment une base range et retrouve les données : journaux et LSM-trees contre arbres B, index, et OLTP contre OLAP. 22 min
- 04 Encodage & évolution des schémas Sérialiser les données pour les faire durer et évoluer : JSON, Thrift, Protocol Buffers, Avro, et la compatibilité ascendante/descendante. 17 min
- 05 La réplication Copier les données sur plusieurs nœuds : leader/suiveurs, multi-leader, sans leader, et les pièges de la latence de réplication. 21 min
- 06 Le partitionnement (sharding) Découper un grand jeu de données en partitions : par intervalle ou par hachage, index secondaires, rééquilibrage et routage. 17 min
- 07 Les transactions ACID, niveaux d'isolation faibles (read committed, snapshot, write skew) et sérialisabilité (verrouillage 2PL, SSI). 19 min
- 08 Les pièges des systèmes distribués Réseaux, horloges et processus peu fiables : défaillances partielles, vérité, mensonges et modèles de système. 18 min
- 09 Cohérence & consensus Linéarisabilité, ordre causal, broadcast à ordre total, commit à deux phases et consensus (Raft, Paxos, ZooKeeper). 20 min
- 10 Le traitement par lots (batch) Traiter d'énormes volumes hors-ligne : la philosophie Unix, MapReduce, jointures et moteurs de dataflow. 20 min
- 11 Le traitement de flux (streaming) Traiter les données en continu : systèmes de messagerie, logs partitionnés (Kafka), CDC, event sourcing et raisonnement sur le temps. 19 min