← Últimos artículos
💻 computer science

Aurora DSQL: Scalable, Multi-Region OLTP

Aurora DSQL es una base de datos SQL activa-activa, multi-región y sin servidor que logra escalabilidad elástica y consistencia fuerte mediante el desacoplamiento de cómputo, almacenamiento y coordinación de transacciones para minimizar la latencia entre regiones a través de la adjudicación en el momento del compromiso.

Autores originales: Marc Brooker, Marc Bowes, Mike Hershey, Zak van der Merwe, James Morle, Matthys Strydom

Publicado 2026-07-16
📖 9 min de lectura🧠 Análisis profundo

Autores originales: Marc Brooker, Marc Bowes, Mike Hershey, Zak van der Merwe, James Morle, Matthys Strydom

Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo

Imagina que estás intentando organizar una biblioteca masiva y caótica donde millones de personas intentan tomar prestados, leer y reescribir libros al mismo tiempo. En el mundo de la informática, este es el desafío de las bases de datos: sistemas que almacenan información para que las aplicaciones puedan encontrarla y cambiarla instantáneamente. Durante décadas, la gran pregunta fue cómo hacer que estas bibliotecas crecieran para manejar todo el internet sin colapsar. La forma antigua era como tener un único bibliotecario que tenía que sellar cada libro, creando una larga fila que ralentizaba a todo el mundo. El método más nuevo, de "consistencia eventual", era como dejar que la gente adivinara lo que decía el libro y corregir los errores después, lo cual es rápido pero arriesgado si necesitas la verdad en este preciso momento. El objetivo de la ingeniería de bases de datos moderna es construir un sistema que sea tan rápido como el método de adivinar pero tan confiable como el método del sellado, capaz de manejar millones de transacciones por segundo sin que nadie tenga que gestionar los estantes manualmente.

Este artículo presenta Aurora DSQL, un nuevo tipo de base de datos diseñado por Amazon Web Services para resolver exactamente este problema. Piensa en esto como una biblioteca superinteligente y autónoma que puede expandirse o contraerse instantáneamente dependiendo de cuántas personas la visiten. Los autores construyeron un sistema que separa el "pensamiento" (ejecutar el código SQL) del "almacenamiento" (guardar los libros) y las "reglas" (asegurarse de que no haya dos personas cambiando la misma página a la vez). Al utilizar un "Journal" (Diario) especial que actúa como un diario permanente e inalterable de cada cambio realizado, DSQL permite que las diferentes partes del sistema trabajen de forma independiente. El artículo muestra que este diseño permite que la base de datos escale de cero usuarios a millones de transacciones por segundo, funciona a través de diferentes continentes sin ralentizarse y mantiene los datos perfectamente consistentes para que nunca tengas que preocuparte por leer un libro que alguien más está reescribiendo actualmente.

La magia de la biblioteca desconectada

Para entender cómo funciona Aurora DSQL, imagina una biblioteca gigante donde los bibliotecarios, los estantes y los encargados de las reglas están todos en edificios diferentes, conectados por telegramas superrápidos. En los sistemas antiguos, estas partes estaban pegadas; si los estantes se llenaban demasiado, toda la biblioteca tenía que detenerse y reorganizarse. DSQL las separa.

Primero, están los Procesadores de Consultas (Query Processors). Estos son los bibliotecarios que hablan contigo. Cuando pides un libro, ellos no cargan los libros pesados ellos mismos. En su lugar, se ejecutan dentro de pequeñas y seguras salas virtuales llamadas Firecracker MicroVMs. Estas salas son tan eficientes que pueden crearse o destruirse en un parpadeo. Si tienes una súbita oleada de visitantes, el sistema construye instantáneamente más salas. Si la oleada se detiene, las desmantela para que no pagues por espacio vacío. Esta es la parte "serverless" (sin servidor): tú no gestionas a los bibliotecarios; ellos simplemente aparecen cuando los necesitas.

Después, están los Nodos de Almacenamiento (Storage Nodes). Estos son los estantes de libros. No contienen toda la biblioteca; solo contienen secciones específicas de libros basadas en una "clave de partición" (shard key), como clasificar los libros por la primera letra del nombre del autor. Debido a que los bibliotecarios y los estantes están separados, los bibliotecarios pueden llevar su propio ritmo sin esperar a que los estantes se pongan al día. Leen del estante más cercano en su propio vecindario (Zona de Disponibilidad), lo que hace que la lectura sea increíblemente rápida.

Finalmente, están los Adjudicadores (Adjudicators) y el Diario (Journal). Los Adjudicadores son los encargados de las reglas que deciden si un cambio está permitido. El Diario es el cuaderno de bitácora maestro. Cuando quieres cambiar un libro (una "escritura"), el bibliotecario escribe el cambio en un papel, pero aún no lo pone en el estante. Lo envía al encargado de las reglas. El encargado de las reglas verifica si alguien más está intentando cambiar ese mismo libro al mismo tiempo. Si está despejado, el encargado escribe el cambio en el Diario. Este Diario es la parte más importante: es una lista permanente y ordenada de cada cambio que ha ocurrido. Una vez que algo está en el Diario, está seguro para siempre, incluso si los estantes o los bibliotecarios desaparecen.

El truco de lectura "sin espera"

Uno de los trucos más geniales de este artículo es cómo maneja la lectura. En muchas bases de datos, si quieres leer un libro, tienes que esperar a que el bibliotecario se asegure de que nadie lo esté escribiendo en ese momento. Esto causa filas y retrasos. DSQL utiliza un ingenioso truco de viaje en el tiempo llamado Control de Concurrencia Multiversión (MVCC).

Imagina que cada vez que un libro se cambia, la biblioteca no borra la versión anterior. En su lugar, crea una nueva copia con una marca de tiempo. Cuando pides un libro, no pides "el libro"; pides "el libro tal como estaba a las 2:00 PM". El sistema entonces encuentra la versión que era válida a las 2:00 PM. Debido a que el sistema utiliza relojes superprecisos (exactos a microsegundos), sabe exactamente qué versión mostrarte. Esto significa que puedes leer un libro mientras alguien más está escribiendo uno nuevo, y no verás sus cambios desordenados y a medio terminar. Verás una instantánea perfecta y congelada del pasado. Esto permite que millones de personas lean a la vez sin bloquearse entre sí.

El superpoder multi-región

El artículo también aborda el problema de la distancia. Normalmente, si tienes una biblioteca en Nueva York y otra en Londres, mantenerlas sincronizadas toma tiempo debido a la velocidad de la luz. Si intentas actualizar un libro en ambos lugares a la vez, tienes que esperar a que un mensaje viaje a través del océano, lo que ralentiza todo.

DSQL resuelve esto siendo activo-activo. Esto significa que puedes tener una biblioteca en Nueva York y una biblioteca en Londres, y ambas están totalmente abiertas para el negocio al mismo tiempo. Cuando realizas un cambio en Nueva York, el sistema lo escribe en el Diario. El Diario luego envía una copia a Londres. La magia es que esto solo sucede una vez, en el preciso momento en que pulsas "commit" (terminar la transacción). El sistema no te impide leer o escribir mientras el mensaje viaja. Utiliza un sistema de "quórum", lo que significa que solo necesita confirmar el cambio en dos de tres regiones para considerarlo seguro.

El artículo midió esto y encontró que, incluso con la distancia entre Virginia y Oregón (unos 62 milisegundos de ida y vuelta), el sistema solo paga ese "impuesto de distancia" una vez por transacción. Para la lectura, es aún más rápido porque lees desde la biblioteca local. Los autores demuestran que este diseño permite que la base de datos se mantenga rápida y consistente incluso si una región entera (como una ciudad completa) queda fuera de servicio debido a un desastre.

Las reglas del juego

Los autores fueron muy cuidadosos con lo que prometían. Eligieron el Aislamiento de Instantánea (Snapshot Isolation), que es un conjunto específico de reglas sobre cómo se comportan las transacciones. Es como decir: "Puedes leer el libro tal como estaba cuando empezaste a leer, y puedes cambiarlo cuando termines, pero si alguien más lo cambió mientras tanto, tendrás que intentarlo de nuevo". Esto es diferente de las reglas más estrictas que te obligarían a esperar por un bloqueo, lo que ralentiza las cosas.

El artículo descarta explícitamente la idea de que necesites un único "líder" para gestionar todo. En muchos sistemas, una computadora es la jefa, y si se rompe, todo se detiene. DSQL no tiene un único jefe. Cada parte puede escalar hacia arriba o hacia abajo, y si una parte falla, las otras simplemente siguen adelante. El artículo también descarta la idea de que necesites gestionar el hardware tú mismo. El sistema gestiona el "calor" (qué partes se están volviendo demasiado ocupadas) automáticamente. Si una sección de la biblioteca se congestiona demasiado, el plano de control (el gerente de la biblioteca) divide automáticamente esa sección en dos secciones más pequeñas y mueve algunos libros a un nuevo estante, todo sin que tú hagas nada.

Probando la teoría

Los autores no solo supusieron que esto funcionaría; lo probaron intensamente. Utilizaron un método llamado simulación determinista, donde ejecutaron el sistema en un programa de computadora que podía simular millones de errores, retrasos de red y fallos en una fracción de segundo. Descubrieron que el sistema podía manejar estos errores sin perder datos ni confundirse.

También realizaron pruebas de estilo de mundo real (como el benchmark TPC-C, que simula una tienda con mucho movimiento). Los resultados mostraron que DSQL podía escalar desde un arranque en frío (donde tiene muy pocos recursos) hasta manejar millones de operaciones por minuto. Tardó unos 25 minutos en alcanzar su velocidad máxima desde un estado completamente vacío, pero una vez que estuvo "caliente", fue increíblemente rápido. El artículo señala que, aunque están muy seguros de estos resultados, todavía están trabajando en añadir más funciones como las claves foráneas (que vinculan tablas entre sí) y los procedimientos almacenados.

La conclusión

Aurora DSQL es una prueba de que puedes tener lo mejor de ambos mundos: una base de datos que es tan fácil de usar como un servicio simple (donde no gestionas nada) y tan poderosa como un sistema global masivo. Al separar el pensamiento, el almacenamiento y las reglas, y al utilizar un diario permanente para llevar la cuenta del tiempo, permite que las aplicaciones crezcan de cero a millones de transacciones sin despeinarse. Es un sistema diseñado para un mundo donde las cosas cambian rápido, donde los desastres ocurren y donde necesitas saber que la información que estás leyendo es la verdad absoluta, justo ahora.

¿Ahogado en artículos de tu campo?

Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.

Probar Digest →