Este artículo técnico explica un atajo elegante para construir bases de datos rápidas sin recurrir a técnicas industrializadas como la vectorización o la compilación de consultas a código máquina. El autor parte de un problema conocido: implementar operadores de álgebra relacional como funciones puras es limpio, pero materializa cada resultado intermedio y resulta muy lento. La solución que propone llega de la mano del estilo de paso de continuaciones (CPS), una técnica clásica de los compiladores funcionales que consiste en redefinir cada operador para que, en lugar de producir un valor, reciba una continuación (una función que indica qué hacer con cada elemento) y la aplique directamente. Al anotar los operadores con directivas de inlinado, el compilador los despliega y los fusiona en un único bucle ajustado, sin asignaciones intermedias. Este mecanismo, conocido desde hace décadas como deforestación, tiene un efecto notable en Prela: un intérprete limpio escrito en CPS recupera automáticamente ejecución columnar eficiente al ser compilado. El texto detalla además el principio de diseño de Prela —"todo es una relación binaria"—, que permite mapear el modelo lógico entidad/relación sobre almacenamiento columnar, y muestra cómo las operaciones centrales de composición y producto, reescritas en CPS, eliminan joins innecesarios incluso para consultas tan simples como SELECT * FROM movie. El resultado es una arquitectura de base de datos que combina expresividad, modularidad y rendimiento sin requerir los equipos de ingeniería de sistemas como DuckDB o Umbra.
Cómo Prela logra ejecución columnar rápida usando continuaciones
Fuentes:
Passing DBs Through Continuations
