Construir PlanetScale desde cero: la capa de infraestructura de Homescale

Fuentes: Let's Build PlanetScale From Scratch: Infrastructure

Homescale es un proyecto de código abierto que replica a pequeña escala el modelo de clonado de bases de datos de PlanetScale. Permite crear instancias de base de datos escribibles y ramas con instantáneas en un punto del tiempo, sin duplicar los archivos originales. Para ello, aísla la capa de almacenamiento de la de cómputo, siguiendo un esquema similar al de Amazon RDS, Google Cloud SQL, Aurora o Azure SQL Hyperscale: el motor de base de datos lee y escribe sobre un dispositivo de bloques convencional, pero los datos persistentes no dependen del disco local del host.

La herramienta adopta la metáfora de imágenes y contenedores de Docker: una imagen es un punto de partida inmutable; un contenedor, un clon escribible creado a partir de esa imagen; una rama, otro contenedor generado desde el estado actual de uno existente. Esto se traduce en una CLI sencilla con comandos como homescale image create, homescale container create o homescale branch create. Aunque los ejemplos del proyecto usan Postgres, el modelo de almacenamiento es agnóstico al motor.

La pieza clave es la copia en escritura (COW), que permite que una rama de una base de datos de 100 GB aparente ocupar 100 GB sin requerir una copia inicial completa: los datos no modificados se comparten con la imagen padre y solo las escrituras nuevas se almacenan por separado. Homescale se apoya en Ceph y, en concreto, en RBD para ofrecer dispositivos de bloques persistentes, instantáneas inmutables y clones COW escribibles. El proyecto está disponible en GitHub y se plantea como una alternativa autoalojada para entornos de desarrollo, pruebas y entornos efímeros.