На своей конференции re:Invent подразделение облачных вычислений Amazon AWS сегодня анонсировало Amazon Aurora DSQL, новую бессерверную распределенную базу данных SQL, которая обещает высокую доступность (99,999% для доступности в нескольких регионах), высокую согласованность, совместимость с PostgreSQL и, по словам компании, , «Чтение и запись в 4 раза быстрее по сравнению с другими популярными распределенными базами данных SQL».
AWS утверждает, что Aurora DSQL будет обеспечивать значительно меньшую задержку, чем Google Spanner, ее ближайший конкурент.
Интересно, что AWS подчеркивает, что здесь не требуется сегментирование базы данных для масштабирования сервиса — и что он может масштабировать операции чтения и записи независимо. Компания также подчеркивает, что Aurora DSQL обеспечит высокую согласованность, гарантируя, что, если пользователи выберут многорегиональный подход, все регионы всегда будут отображать одни и те же данные одновременно.
AWS отмечает, что для обеспечения отказоустойчивости Aurora DSQL использует архитектуру «активный-активный», что означает, что всегда есть резервный сервер, готовый взять на себя управление, что гарантирует «всегда доступность приложения клиента, позволяя приложению читать и писать в любой Aurora DSQL». конечная точка». Поскольку это полностью управляемый сервис, AWS обрабатывает все обновления безопасности и управляет всей инфраструктурой.
Чтобы все это произошло, команда AWS говорит, что ей пришлось «заново изобрести обработку транзакций реляционной базы данных». Как правило, обеспечение строгой согласованности в нескольких регионах и синхронизация этих глобально распределенных серверов с тем, что AWS называет «микросекундной точностью», является довольно сложной задачей. AWS заявляет, что может это сделать, поскольку отделил обработку транзакций от хранилища. Традиционные методы, как поясняет компания, будут ограничены необходимостью многократной передачи информации туда и обратно. Однако Aurora проверяет каждую транзакцию только тогда, когда приходит время зафиксировать изменения, а затем, когда происходит фиксация, она распараллеливает эти записи по регионам.
Здесь есть один интересный момент: чтобы убедиться, что каждый регион видит коммиты в правильном порядке, Aurora DSQL использует службу синхронизации времени Amazon, которая добавляет очень точные эталонные часы к каждому экземпляру EC2 и синхронизирует их с использованием атомных часов на спутниках GPS.
Наличие этого точного времени помогает решить ряд проблем с согласованностью данных и ускорить обработку. И хотя использование подхода, основанного на времени, может показаться простым, для этого нужны очень точные и хорошо синхронизированные часы. Синхронизация часов, причем в глобальном масштабе, представляет собой удивительно сложную задачу. Вот почему традиционно базы данных не могли использовать время таким образом. На этом специализируются такие стартапы, как Clockwork. Долгое время это было невозможно, но теперь, когда эти системы доступны, они позволяют внедрять подобные инновации в базе данных.