3. « Haute disponibilité » Capacité des systèmes informatiques à fournir le service prévu à tout moment, même en cas de panne d'une partie conséquente de leurs moyens matériels.
24. Scale in + scale out + réplication Écritures Lectures en local Réplication
25. Mais les requêtes SQL sont très gourmandes en ressources On essaye d'en faire le moins souvent possible On exécute les requêtes une fois puis on stocke leurs résultats en cache pour les accès suivants
26. Scale in + scale out + cache Écritures Lectures en cache Requêtes pour remplir le cache
27. Avec le cache, les données sont agrégées telles qu'on les utilise dans l'application Pourquoi ne pas stocker directement les données sous ce format ? En réduisant les fonctionnalités des bases de données, on peut augmenter leur scalabilité.
28. Avec le cache, les données sont agrégées telles qu'on les utilise dans l'application Pourquoi ne pas stocker directement les données sous ce format ? En réduisant les fonctionnalités des bases de données, on peut augmenter leur scalabilité. Bases de données non relationnelles
29. User - id - name - login Article - id - title - content - user_id Comment - id - date - text - article_id { name: "Amaury Bouchard" , login: "amaury" , articles: [ { title: "Article de test" , content: "Bla bla bla" , comments: [ { date: "2010-05-20" , text: "Super !" }, { date: "2010-05-21" , text: "Génial !" } ] }, { ... } , { ... } ] }
30. Solutions SQL alternatives Sharding Découper une base en plusieurs morceaux pour alléger et paralléliser les traitements Dénormalisation Dupliquer les données pour réduire le nombre de jointures nécessaires
31. Solutions SQL alternatives Sharding Découper une base en plusieurs morceaux pour alléger et paralléliser les traitements Dénormalisation Dupliquer les données pour réduire le nombre de jointures nécessaires Amélioration des performances Inutile pour la haute-disponibilité Est-ce encore un modèle relationnel ?
32. Théorème de Brewer Dans un environnement distribué, il est impossible de garantir à la fois : La consistance La disponibilité La tolérance aux pannes
33. Théorème de Brewer Dans un environnement distribué, il est impossible de garantir à la fois : La consistance La disponibilité La tolérance aux pannes Haute-disponibilité : consistance réduite
34. Modèles de duplication de données Centralisé Serveur de méta-données unique Multiples serveurs de données Décentralisé Données réparties sur plusieurs serveurs en fonction d'une clé de hachage
35. Et le cloud computing ? Virtualisation des serveurs Utilisation de ressources à la demande
36. Participer à des projets intéressants ? FineFS Système de fichiers redondé écrit en PHP Complètement décentralisé Synchrone et asynchrone Plus rapide que Memcache en lecture FineDB Base de données non relationnelle Orienté document (stockage JSON) Stockage basé sur FineFS