Релиз открытой СУБД VoltDB 3.0, развиваемой одним из основателей Ingres и PostgreSQL
25 января 2013 года
Представлен (Архивная копия от 3 февраля 2013 на Wayback Machine) релиз инновационной открытой СУБД VoltDB 3.0, развиваемой под руководством Майкла Стоунбрейкера (Mike Stonebraker), одного из основателей проектов Ingres и PostgreSQL. СУБД VoltDB поддерживает горизонтальное масштабирование и ориентирована на обработку транзакций в реальном времени (OLTP). На недорогом кластере, собранном своими силами из обычных серверов, СУБД способна обрабатывать миллионы транзакций в секунду. СУБД распространяется в двух вариантах: коммерческом, с обеспечением полноценной поддержки, и свободном "Community Edition (Архивная копия от 1 сентября 2013 на Wayback Machine)". Код опубликован под лицензией AGPLv3.
VoltDB позволяет достичь уровня производительности NoSQL-систем, сохранив при этом поддержку выполнения запросов на языке SQL и гарантирированную транзакционную целостность данных (ACID, атомарность и изолированность транзакций). При оценке производительности в односерверной конфигурации СУБД VoltDB опередила (Архивная копия от 3 августа 2014 на Wayback Machine) традиционные OLTP СУБД в 45 раз, обработав 53 тыс. транзакций в секунду, в то время как другие СУБД на том же оборудовании могли выполнить только 1155 транзакций. На 12-узловом кластере СУБД VoltDB обеспечила выполнение 560 тыс. транзакций в сек. При этом, VoltDB уже достаточно давно используется в промышленной эксплуатации и позиционируется как полностью стабильный продукт.
Разгадка высокой производительности VoltDB кроется в непохожей на традиционные схемы внутренней архитектуре, комбинирующей хранение данных в памяти с концепцией распределенной организации и разбиением содержимого БД по разделам (партицирование). Производительность VoltDB увеличивается почти линейно при добавлении дополнительных серверов в кластер. Каждый однопоточный раздел работает в автономном режиме, что исключает необходимость в блокировках и фиксации операций. Данные автоматически реплицируются внутри кластера, что позволяет добиться высокой доступности и исключает необходимость ведения журнала. Все данные каждого узла полностью прокэшированы в ОЗУ, что обеспечивает максимальную пропускную способность и исключает необходимость буферизации.
На одном сервере запускается несколько узлов VoltDB, каждый из которых привязывается к отдельному ядру CPU. Для сохранения данных на диск используется концепция снапшотов, отражающих срез данных, актуальных на момент создания снапшота. Работа с данными осуществляется через хранимые процедуры на языке Java, копии которых прикрепляются к каждому из разделов (ODBC/JDBC и прямое выполнение SQL-операторов для всей базы не поддерживается). При выполнении запроса, затрагивающего несколько разделов, в каждом из нужных разделов вызывается хранимая процедура, а затем результаты агрегируются.
Среди новшеств, добавленных в VoltDB 3.0:
- Переработана архитектура координации выполнения транзакций, что позволило минимизировать обмен данными между узлами в процессе выполнения запроса. В результате была увеличена пропускная способность и уменьшена задержка выполнения запросов. По сравнению с VoltDB 2.x версия 3.0 позволяет выполнить на том же оборудовании гораздо больше транзакций и существенно снизить задержки для работающих в синхронном режиме клиентов, в которых выполнение продолжается только после завершения каждого запроса (в асинхронном режиме управление передаётся дальше не дожидаясь выполнения запроса, готовность которого оценивается через обработку событий);
- Для упрощения разработки высокопроизводительных приложений добавлена поддержка шаблона project.xml для размещения данных в кластере и команды compile для автоматической компиляции схемы. Расширены возможности изменения схемы БД на лету, добавлены команды для создания и изменения индексов, применимые для работающего кластера;
- Расширен поддерживаемый синтаксис SQL, добавлена возможность использования выражения UNION и операторов LIKE/NOT LIKE, подготовлен полный набор строковых и числовых функций. Реализована поддержка определения индексов с использованием функций, работающих на уровне столбцов;
- Реализован интерфейс для доступа к данным с использованием формата JSON. Указанная возможность позволяет гибко управлять и менять схему хранения, которая теперь может задаваться в произвольном виде. Для манипуляции со структурированными JSON-данными, прикреплёнными к столбцу, представлена новая функция field();
- Новые средства для импорта и экспорта данных. Добавлены модули для импорта данных из лога Apache и из CSV-файлов. Переработана поддержка экспорта, отмечается, что новая реализация экспортирует данные в 20 раз быстрее прежней. Добавлен JDBC-коннектор для экспорта данных в СУБД PostgreSQL, Oracle и MySQL;
- Новая утилита voltadmin с реализация интерфейса командной строки для централизованного управления всем кластером VoltDB;
- Добавлен переработанный высокопроизводительный драйвер для PHP и новые драйверы для Node.js и Google Go.
Источники
править- Главная ссылка к новости (http://blog.voltdb.com/introdu...) (Архивная копия от 3 февраля 2013 на Wayback Machine)
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.