Stockage : SQL, NoSQL, Indexes, Sharding
Dans cette leçon, tu apprends à choisir où une application garde ses données. Une base de données (database — l'endroit organisé où le logiciel stocke l'information, comme un immense meuble à dossiers) est le cœur du système. On la choisit selon les access patterns (les schémas d'accès — comment les
Le System Design (System Design — comment concevoir un logiciel de grande taille qui sert beaucoup de monde) ressemble à la planification d'une ville : routes, entrepôts, feux de circulation et équipes d'entretien, pour que la ville continue de bien fonctionner même aux heures de pointe les plus chargées.
- Modélisation du stockage
- La compétence centrale de cette leçon : choisir où stocker les données (une base de données) selon la façon dont elles sont vraiment lues et écrites (access patterns), selon la cohérence, selon les indexes (une « table des matières » qui accélère la recherche), et selon le sharding (répartir les données en plusieurs parties quand elles deviennent trop volumineuses).
- Trade-off
- Un choix conscient qui comporte à la fois un gain et un coût — un peu comme choisir un itinéraire : la route rapide coûte un péage, la gratuite prend plus de temps. En entretien, tu expliques à la personne qui mène l'entretien le gain et le coût de chaque choix.
- Métrique opérationnelle
- Un chiffre qui montre si la décision fonctionne vraiment une fois le système en ligne et au service d'utilisateurs réels (production). Par exemple : la latency (le temps nécessaire pour obtenir une réponse), l'error rate (la part des requêtes qui échouent), le queue lag (le nombre de tâches qui attendent dans la file), et le cache hit ratio (la fréquence à laquelle on trouve une réponse déjà prête). Comme les cadrans du tableau de bord d'une voiture — ils indiquent si tout va bien.