Представлена новая открытая система управления базами данных — VoltDB, ориентированная на обработку транзакций в реальном времени (OLTP). Проектирование и разработка VoltDB велась под руководством Майкла Стоунбрейкера, одного из основателей проектов Ingres и PostgreSQL.
VoltDB опережает по производительности традиционные OLTP СУБД в односерверной конфигурации в 45 раз, поддерживает выполнение запросов на языке SQL и гарантирует транзакционную целостность данных (ACID, атомарность и изолированность транзакций).
Суть архитектуры VoltDB в комбинации хранения всех данных в памяти с концепцией распределённой организации и разбиения БД по разделам (партицирование). Для сохранения данных на диск используется концепция снапшотов, отражающих срез данных, актуальных на момент создания снапшота. Работа с данными осуществляется через хранимые процедуры на языке Java, копии которых прикрепляются к каждому из разделов (ODBC/JDBC и прямое выполнение SQL-операторов для всей базы не поддерживается). При выполнении запроса, затрагивающего несколько разделов, в каждом из нужных разделов вызывается хранимая процедура, а затем результаты агрегируются.
СУБД распространяется в двух вариантах: коммерческом, с обеспечением полноценной поддержки, и свободном «Community Edition». Исходные тексты доступны по лицензии GPL.
VoltDB опережает по производительности традиционные OLTP СУБД в односерверной конфигурации в 45 раз, поддерживает выполнение запросов на языке SQL и гарантирует транзакционную целостность данных (ACID, атомарность и изолированность транзакций).
Суть архитектуры VoltDB в комбинации хранения всех данных в памяти с концепцией распределённой организации и разбиения БД по разделам (партицирование). Для сохранения данных на диск используется концепция снапшотов, отражающих срез данных, актуальных на момент создания снапшота. Работа с данными осуществляется через хранимые процедуры на языке Java, копии которых прикрепляются к каждому из разделов (ODBC/JDBC и прямое выполнение SQL-операторов для всей базы не поддерживается). При выполнении запроса, затрагивающего несколько разделов, в каждом из нужных разделов вызывается хранимая процедура, а затем результаты агрегируются.
СУБД распространяется в двух вариантах: коммерческом, с обеспечением полноценной поддержки, и свободном «Community Edition». Исходные тексты доступны по лицензии GPL.
Основные элементы архитектуры
- Все данные постоянно держатся в оперативной памяти, что обеспечивает максимальную пропускную способность и исключает необходимость буферизации.
- VoltDB распределяет данные и их SQL-обработчики по узлам, каждый из который привязан к своему процессорному ядру.
- Каждый однопоточный раздел работает в автономном режиме, что исключает необходимость блокировок и фиксации операций.
- Данные автоматически реплицируются внутри кластера, что позволяет добиться высокой доступности и исключает необходимость ведения журнала.
- Производительность VoltDB увеличивается почти линейно при добавлении дополнительных серверов в кластер.
Результаты измерения производительности
- VoltDB обработала 53 тысячи транзакций в секунду на одном сервере, в то время как другие СУБД на том же оборудовании могли выполнить только 1155 транзакций. При увеличении числа серверов до 12, кластер позволил выполнить 560 тысяч транзакций в секунду.
- Тестирование работы онлайн-игры на
12-узловом кластере продемонстрировало производительность в 1,3 миллиона транзакций в секунду.