Présentation de Homescale
Homescale est un projet qui vise à créer des instances de bases de données écrites et des branches à un moment donné à partir de snapshots immuables sans copier la base de données entière.
Le projet utilise le modèle d'image et de conteneur de Docker pour représenter l'état de la base de données : une image de base de données est un point de départ immuable, un conteneur de base de données est une copie écrite créée à partir de cette image.
Architecture de Homescale
Homescale utilise un modèle de stockage indépendant du processus de base de données, ce qui permet de créer des branches sans avoir besoin de copier la base de données entière.
Le projet utilise le mécanisme de copy-on-write (COW) pour permettre à une copie écrite de partager des données inchangées avec l'état immuable dont elle a été créée.
homescale image create --engine postgres postgres-base
homescale container create --image postgres-base dev-db
homescale container connect dev-db
homescale branch create --container dev-db feature-login
homescale container connect feature-login
Implémentation de Homescale
Homescale utilise Ceph pour fournir les opérations de stockage nécessaires, notamment les disques blocs persistants, les snapshots immuables et les clones COW écritables.
Le projet utilise le modèle de stockage de Ceph pour créer des branches de bases de données sans avoir besoin de copier la base de données entière, ce qui réduit les coûts de stockage et améliore les performances.
Avantages et limites de Homescale
Homescale offre plusieurs avantages, notamment la possibilité de créer des branches de bases de données sans copier la base de données entière, ce qui réduit les coûts de stockage et améliore les performances.
Cependant, le projet présente également des limites, notamment la complexité de la mise en œuvre et la nécessité d'un stockage persistant pour les disques blocs.