Представлена новая открытая СУБД 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 предусматривает наличие двух процессов: менеджера и демона хранения. Демон хранения занимается приёмом соединений от клиентов, выполнением запросов и хранением данных. Кроме доступа к локально хранимым данным, в процессе выполнения запроса демон также обращается и к данным других демонов.
Менеджер отвечает за запуск демонов хранения, их настройку, мониторинг работоспособности и управление топологией кластера. При необходимости менеджер запускает новые экземпляры демонов хранения и обеспечивает распределение данных в кластере, в том числе выполняет перестроение кластера в случае изменения топологии (например, выводе или добавлении узла) и следит за выполнением требований отказоустойчивости за счёт дублирования данных на разных узлах. В настоящее время возможности менеджера сильно ограничены и сводятся к запуску демонов, остальные возможности планируется реализовать в будущем.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.