Представлена новая открытая СУБД InfiniSQL

29 ноября 2013 года

Анонсирован первый альфа-выпуск новой открытой реляционной СУБД InfiniSQL, нацеленной на достижение показателей производительности и масштабируемости NoSQL-систем при предоставлении классического SQL-интерфейса для доступа к данным. InfiniSQL развивается одним из бывших инженеров компании Visa как полностью свободный проект, без разделения на community и enterprise версии. Код InfiniSQL распространяется под лицензией AGPLv3, а библиотеки для создания хранимых процедур под лицензией LGPLv3.

СУБД состоит из двух частей — демона на языке C++, использующего модель акторов для распараллеливания операций без блокировок, и менеджера ресурсов, написанного на языке Python. Клиентский интерфейс совместим с PostgreSQL, то есть вместе с InfiniSQL могут использоваться приложения, собранные с использованием клиентских библиотек PostgreSQL и таких модулей, как DBD::Pg. На текущем этапе развития СУБД ещё не готова для промышленного использования, но уже может быть задействована для экспериментов и начального внедрения.

Построенный с использованием InfiniSQL тестовый кластер, состоящий из 12 узлов на базе типовых серверов (четырёхъядерные CPU Intel Xeon E31230 3.30 GHz, 8GB ОЗУ, 1TB SATA НЖМД, 2 x Intel 82579LM Gigabit Ethernet), смог обеспечить производительность на уровне 528 тысяч (в пике 542 тыс.) сложных транзакций в секунду при обработке более 100 тысяч одновременных соединений. Тестирование было проведено с использованием утилиты pgbench. Все проведённые тесты документированы и легко воспроизводимы.

InfiniSQL поддерживает подмножество стандарта SQL-92, в том числе Ad hoc-запросы и хранимые процедуры. СУБД обеспечивает три первых требования ACID к выполнению транзакций: атомарность, согласованность, изолированность. Отсутствие поддержки четвёртого требования, надежности, является ценой высокой производительности СУБД. Дело в том, что InfiniSQL хранит данные только в оперативной памяти, пока не предоставляя средств для обеспечения надёжного сохранения информации в случае сбоя всего кластера. В случае проблем, охватывающих все узлы остаётся полагаться на средства резервного копирования, в случае сбоя отдельного узла применяется избыточное дублирование данных на разных узлах. В будущем данная проблема будет устранена, и СУБД InfiniSQL будет доведена до полного соответствия требованиям ACID.

Хранимые в таблицах данные и индексы распределены по всем узлам кластера, при необходимости увеличения размера хранилища достаточно добавить новые узлы (горизонтальная масштабируемость). Клиент может подключиться к любому узлу и получить доступ к данным кластера в целом, который выглядит как одна неразрывная БД. Архитектура InfiniSQL предусматривает наличие двух процессов: менеджера и демона хранения. Демон хранения занимается приёмом соединений от клиентов, выполнением запросов и хранением данных. Кроме доступа к локально хранимым данным, в процессе выполнения запроса демон также обращается и к данным других демонов.

Менеджер отвечает за запуск демонов хранения, их настройку, мониторинг работоспособности и управление топологией кластера. При необходимости менеджер запускает новые экземпляры демонов хранения и обеспечивает распределение данных в кластере, в том числе выполняет перестроение кластера в случае изменения топологии (например, выводе или добавлении узла) и следит за выполнением требований отказоустойчивости за счёт дублирования данных на разных узлах. В настоящее время возможности менеджера сильно ограничены и сводятся к запуску демонов, остальные возможности планируется реализовать в будущем.

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Представлена новая открытая СУБД InfiniSQL», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.