PGSimCity: una ciudad 3D para explorar el funcionamiento interno de PostgreSQL

Fuentes: PGSimCity: a 3D city to explore how PostgreSQL actually works

PGSimCity es una visualización tridimensional e interactiva que convierte un clúster de PostgreSQL en una ciudad que se puede inspeccionar, recorrer y manipular. El proyecto, publicado en GitHub por NikolayS, está dirigido a ingenieros de software con experiencia en desarrollo que nunca han operado una base de datos y necesitan entender por qué un checkpoint dispara la latencia, por qué una transacción olvidada hincha una tabla de forma indefinida o qué coste real implica la opción synchronous_commit.

La ciudad se organiza en distritos con significado funcional: el client sky representa las conexiones entrantes; el postmaster actúa como supervisor; una fila de 16 backends muestra el estado de cada proceso mediante su iluminación; el buffer pool agrupa una muestra de 1.024 frames junto a wal_buffers, el ProcArray, la tabla de bloqueos, el CLOG y la tabla de mapeo de buffers. Bajo el suelo se sitúa la excavación, que marca el límite entre memoria y almacenamiento, y más abajo aparecen los heap files como campos de páginas de 8 KiB, los índices B-tree como árboles reales, la zona TOAST, el FSM, el mapa de visibilidad, la caché de páginas del sistema operativo y los discos. A este esquema se suman el distrito WAL al este, el patio de mantenimiento al oeste con checkpointer, background writer y autovacuum, un standby al sur y el barrio de continuidad con archivo WAL, copias de seguridad y recuperación point-in-time. Encima de los backends se encuentra el laboratorio de consultas, que despliega el recorrido parse → rewrite → plan → execute al seleccionar un proceso.

El color tiene valor semántico: WAL en ámbar, páginas sucias en rojo, limpias en azul, vacuum en violeta, checkpoints en rosa, replicación en naranja. PGSimCity incluye una visita guiada de 14 capítulos, escenarios ejecutables como cache thrash, tormenta de checkpoints, transacción larga o replay lento, un modo paseo a 1,7 metros de altura y un panel de inspección. Está implementado en TypeScript con three.js r185 y Vite, sin frameworks adicionales, y cuenta con 234 pruebas automatizadas. El proyecto es independiente, no comercial y declara no estar afiliado con Electronic Arts ni con la marca SimCity.