Notions fondamentales sur les bases de données
(tontinton.com)Les bases de bashdb
bashdb, le programme de base de données le plus simple, se compose de deux fonctions bash.- La fonction
db_setajoute des données à un fichier, et la fonctiondb_getrecherche les données. - Parmi les problèmes de
bashdb, on trouve la durabilité, l’atomicité, l’isolation et les performances.
Améliorer bashdb pour le rendre ACID
- ACID désigne les propriétés des transactions de base de données : atomicité, cohérence, isolation et durabilité.
- Pour améliorer la durabilité de
bashdb, on ajoute la commandesyncàdb_set. - Pour l’isolation, on ajoute un verrouillage de fichier à l’aide du programme
flock.
Durabilité
fsyncetfdatasyncsont des appels système qui vident les tampons d’écriture sur le disque.- La commande
syncvide toutes les pages « sales » sur le disque, et l’option-dappellefdatasync.
Isolation
flockpermet d’apporter une isolation multi-processus àbashdb.flockest un programme Linux de verrouillage de fichiers, et l’option-spermet les lectures simultanées.
La mauvaise nouvelle
- Il n’existe pas de méthode simple pour garantir l’atomicité avec
bashdb. - Pour améliorer les performances, il faut optimiser l’algorithme en
O(n).
Moteur de stockage
- Le rôle d’un moteur de stockage est de fournir une abstraction pour lire et écrire des données dans un stockage persistant.
- La conception d’un moteur de stockage vise à minimiser les E/S disque et les recherches sur disque.
B-arbre mutable
- Un B-arbre est une variante du BST dotée d’une localité spatiale, qui minimise les E/S disque et les recherches.
- Un B-arbre est un BST généralisé dans lequel les nœuds peuvent avoir davantage d’enfants.
Arbre LSM immuable
- Un arbre LSM est une structure de données immuable écrite séquentiellement, avantageuse pour les charges de travail orientées écriture.
- L’arbre LSM met les données en tampon en mémoire, puis les vide en SSTable triées lorsqu’une certaine capacité est atteinte.
Filtre de Bloom
- Un filtre de Bloom est une structure de données probabiliste qui permet de vérifier efficacement qu’un élément n’est pas présent dans un ensemble.
- Les filtres de Bloom fonctionnent à l’aide de fonctions de hachage et ont une complexité spatiale en
O(log n).
Write Ahead Log
- Le WAL est un fichier spécial qui journalise toutes les opérations de transaction et permet de reconstruire l’état au démarrage du processus de base de données.
Isolation
- Pour atteindre l’isolation, on peut utiliser le verrouillage pessimiste, le verrouillage optimiste ou le MVCC.
- La norme ANSI/ISO SQL 92 définit différents niveaux d’isolation de lecture.
Systèmes distribués
- Les systèmes distribués ajoutent de la complexité et peuvent répartir les données sur plusieurs machines pour la disponibilité et la montée en charge horizontale.
- Selon le théorème CAP, un système ne peut garantir que deux propriétés parmi la cohérence, la disponibilité et la tolérance au partitionnement.
Hachage cohérent
- Le hachage cohérent est une méthode de partitionnement des données qui réduit la quantité d’éléments migrés lors de l’ajout ou de la suppression de nœuds.
Avis de GN⁺ :
- Comprendre les problèmes fondamentaux des bases de données et les propriétés ACID est au cœur de l’ingénierie des bases de données.
- L’exemple de
bashdbaide à comprendre les problèmes qui se posent dans les systèmes de bases de données réels. - La conception des moteurs de stockage et des systèmes distribués est un facteur clé qui détermine les performances et la fiabilité d’une base de données.
1 commentaires
Avis sur Hacker News
Résumé du premier commentaire :
Résumé du deuxième commentaire :
Résumé du troisième commentaire :
Résumé du quatrième commentaire :
Résumé du cinquième commentaire :
Résumé du sixième commentaire :
Résumé du septième commentaire :
sync; mv; sync.Résumé du huitième commentaire :
Résumé du neuvième commentaire :
Résumé du dixième commentaire :