Aurora DSQL
Aurora DSQL — это распределённая система управления реляционными базами данных (СУБД) с поддержкой SQL, разработанная компанией Amazon Web Services (AWS). Система ориентирована на обработку транзакционных и аналитических нагрузок с высокой доступностью, масштабируемостью и отказоустойчивостью, используя архитектуру, основанную на разделении вычислительных ресурсов и хранилища. Aurora DSQL является частью семейства сервисов AWS Aurora, но отличается от классической Amazon Aurora архитектурой, оптимизированной для работы в распределённых средах и облачных вычислениях.
История
Разработка Aurora DSQL была начата в 2020 году как ответ на растущие потребности клиентов AWS в базах данных, способных обрабатывать глобально распределённые транзакции с низкой задержкой и высокой пропускной способностью. В отличие от традиционных решений, Aurora DSQL с самого начала проектировалась для работы в мультирегиональных конфигурациях, что позволило обеспечить согласованность данных на уровне отдельных записей (строгая сериализуемость) без необходимости синхронизации всех узлов.
Первая публичная бета-версия Aurora DSQL была анонсирована на конференции AWS re:Invent в ноябре 2023 года. В 2024 году система вышла в общий доступ (GA) в нескольких регионах AWS, включая Северную Америку, Европу и Азиатско-Тихоокеанский регион. В 2025 году было объявлено о поддержке дополнительных функций, таких как глобальные таблицы и автоматическое шардирование.
Архитектура
Разделение вычислительных ресурсов и хранилища
Aurora DSQL использует архитектуру, в которой вычислительные узлы (compute nodes) и хранилище (storage) физически разделены. Вычислительные узлы выполняют SQL-запросы, управляют транзакциями и кэшируют данные, а хранилище, построенное на основе распределённой файловой системы AWS, обеспечивает долговременное хранение и репликацию данных. Это позволяет независимо масштабировать вычислительные мощности и объём хранилища.
Распределённая обработка транзакций
В отличие от классической Amazon Aurora, где все узлы кластера синхронизируются через единый журнал транзакций, Aurora DSQL использует протокол распределённой фиксации (distributed commit protocol), основанный на алгоритме Paxos. Это обеспечивает строгую сериализуемость (serializable isolation) для всех транзакций, даже в условиях глобальной репликации. Каждая запись в базе данных имеет свою копию в нескольких зонах доступности (Availability Zones), что гарантирует отказоустойчивость без потери данных.
Шардирование
Aurora DSQL автоматически распределяет данные по шардам (shards) на основе первичного ключа. Шардирование выполняется прозрачно для пользователя: разработчик не указывает схему шардирования, а система сама определяет оптимальное распределение данных и перераспределяет их при изменении нагрузки. Каждый шард управляется независимым набором вычислительных узлов, что позволяет горизонтально масштабировать производительность.
Ключевые характеристики
Производительность
- Пропускная способность: до нескольких миллионов транзакций в секунду (TPS) на кластер, в зависимости от конфигурации и типа нагрузки.
- Задержка: типичное время выполнения запроса составляет менее 10 миллисекунд для локальных операций и до 100 миллисекунд для глобальных транзакций (при репликации между регионами).
- Масштабируемость: автоматическое добавление вычислительных узлов при росте нагрузки без перерывов в обслуживании.
Доступность и отказоустойчивость
- Соглашение об уровне обслуживания (SLA): 99,999% доступности (пять девяток) для кластеров с несколькими зонами доступности.
- Репликация: данные автоматически реплицируются в три зоны доступности в пределах одного региона, а также могут быть реплицированы в другие регионы с помощью глобальных таблиц.
- Автоматическое восстановление: при сбое вычислительного узла или зоны доступности система переключает трафик на работающие узлы без потери данных.
Совместимость
Aurora DSQL поддерживает стандартный SQL-синтаксис, включая подмножество команд DDL (Data Definition Language) и DML (Data Manipulation Language). Полная совместимость с PostgreSQL или MySQL не гарантируется, однако основные конструкции (SELECT, INSERT, UPDATE, DELETE, JOIN, агрегатные функции) поддерживаются. Для взаимодействия с приложениями используется протокол, совместимый с PostgreSQL (через библиотеки libpq, psycopg2, pgx и другие).
Применение
Aurora DSQL используется в сценариях, требующих высокой доступности и глобальной согласованности данных:
- Финансовые системы: обработка платежей, биржевые транзакции, управление счетами, где критична строгая согласованность и низкая задержка.
- Электронная коммерция: каталоги товаров, корзины покупок, управление заказами в мультирегиональных магазинах.
- Игровая индустрия: хранение профилей игроков, игровых сессий и внутриигровых транзакций с низкой задержкой.
- Интернет вещей (IoT): сбор и обработка телеметрии с устройств, требующих быстрой записи и чтения данных.
- Социальные сети и мессенджеры: хранение сообщений, лент новостей, профилей пользователей с глобальной репликацией.
Ограничения
- Поддерживаемые типы данных: ограниченный набор по сравнению с полноценными СУБД (например, отсутствуют пользовательские типы данных и расширенные геометрические типы).
- Ограничения на запросы: не поддерживаются рекурсивные CTE (Common Table Expressions), оконные функции с нестандартными рамками, а также некоторые сложные подзапросы.
- Размер записи: максимальный размер одной строки — 64 КБ.
- Количество индексов: на одну таблицу можно создать не более 64 индексов.
- Глобальная согласованность: для глобальных таблиц задержка репликации может достигать нескольких секунд, хотя локальные транзакции остаются строго согласованными.
Сравнение с другими продуктами
| Характеристика | Aurora DSQL | Amazon Aurora (классическая) | Amazon DynamoDB |
|---|---|---|---|
| Модель данных | Реляционная (SQL) | Реляционная (SQL) | Документная/ключ-значение (NoSQL) |
| Согласованность | Строгая сериализуемость | Строгая сериализуемость (в пределах региона) | В конечном счёте (eventual) или строгая (по запросу) |
| Масштабирование | Автоматическое шардирование | Вертикальное и горизонтальное (чтение) | Автоматическое шардирование |
| Глобальная репликация | Встроенная (глобальные таблицы) | Через Aurora Global Database | Через DynamoDB Global Tables |
| Максимальная задержка записи | <10 мс (локально) | <10 мс (локально) | <10 мс (локально) |
Безопасность
Aurora DSQL интегрирована с сервисами AWS Identity and Access Management (IAM) для управления доступом, поддерживает шифрование данных в покое (через AWS Key Management Service) и в транзите (TLS 1.2/1.3). Для аудита операций используется AWS CloudTrail. Система соответствует требованиям стандартов SOC 2, ISO 27001, HIPAA (для медицинских данных) и PCI DSS (для платёжных данных).
Экономические аспекты
Стоимость использования Aurora DSQL складывается из оплаты за вычислительные ресурсы (в час или за запрос), объём хранимых данных (в гигабайтах в месяц) и сетевой трафик между регионами. В отличие от классической Amazon Aurora, где минимальная стоимость определяется размером инстанса, Aurora DSQL позволяет платить только за фактически потреблённые ресурсы, что делает её экономически эффективной для переменных нагрузок.
Критика
Основные замечания к Aurora DSQL связаны с ограниченной совместимостью с существующими приложениями, написанными для PostgreSQL или MySQL. Разработчикам приходится адаптировать код, что увеличивает время миграции. Также критикуется отсутствие поддержки хранимых процедур, триггеров и пользовательских функций, что ограничивает возможности автоматизации бизнес-логики на стороне базы данных.
Источники
- Amazon Web Services. «Amazon Aurora DSQL Developer Guide». AWS Documentation, 2024.
- Amazon Web Services. «Amazon Aurora DSQL: A Distributed SQL Database for Global Applications». AWS re:Invent 2023 presentation.
- AWS Blog. «Introducing Amazon Aurora DSQL (Preview)». November 2023.
- AWS Blog. «Amazon Aurora DSQL is now generally available». July 2024.
- Stonebraker, M. et al. «The End of an Architectural Era (It’s Time for a Complete Rewrite)». Proceedings of VLDB, 2007 (общие принципы распределённых СУБД).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →