Компания MariaDB представила (https://mariadb.com/news-events/press-releases/mariadb-maxsc...) релиз прокси-сервера MariaDB MaxScale (https://mariadb.com/products/mariadb-maxscale), работающего между клиентским приложением и СУБД, и способного решать такие задачи, как обеспечение высокой доступности, балансировка нагрузки, шардинг, разделение запросов на запись и чтение, прозрачное масштабирование, сглаживание процесса миграции инфраструктуры на другие СУБД, выявление атак по подстановке SQL-запросов, работа в роли межсетевого экрана для СУБД, прозрачный мониторинг производительности, организация горячего резервного копирования и т.п. Поддерживается работа с СУБД MariaDB, MySQL и через плагины с PostgreSQL, Microsoft SQL Server и Hadoop. Код проекта написан на языке Си.
Кроме функциональных изменений выпуск MaxScale 2.0 примечателен переходом на новую схему лицензирования. Вместо лицензии GPLv2 код теперь поставляется (https://github.com/mariadb-corporation/MaxScale) под лицензией BSL (https://www.mariadb.com/bsl). Лицензия BSL позиционируется (https://www.opennet.ru/opennews/art.shtml?num=44976) как альтернатива модели Open Core - при использовании BSL код расширенной функциональности изначально открыт и доступен для внесения изменений, но может применяться бесплатно только при соблюдении дополнительных условий, для обхода которых требуется приобретение коммерческой лицензии. В частности, MaxScale может бесплатно использоваться только для конфигураций, включающих менее трёх серверов. Ограничения действуют только до 1 января 2019 года, после чего они снимаются и код начинает поставляться под лицензией GPLv2+.
Для приложения взаимодействие с MariaDB MaxScale ничем не отличается от привычного обращения к СУБД, при этом, MaxScale может в прозрачном для приложения виде обеспечивать распределение запросов на серию серверов или организовать оперативное переключение на запасной сервер в случае сбоя первичного. MariaDB MaxScale позволяет на основе определения правил задавать достаточно сложные пути перенаправления запросов к СУБД. Правила могут привязываться к отдельным типам SQL-запросов, а также учитывать назначение конкретных серверов. Для обеспечения высокой производительности используются методы асинхронной обработки ввода/вывода и мультиплексирование через epoll.
Основные новшества (https://mariadb.com/kb/en/mariadb-maxscale-14/mariadb-maxsca.../):
- Режим захвата изменений данных (CDC - change data capture), позволяющий выявлять и перенаправлять на заданные узлы запросы, приводящие к изменению данных. Например, можно транслировать изменения в отдельные хранилища больших данных, такие как Hadoop, используя системы доставки сообщений, подобные Kafka. В состав включён модуль binlog-to-Avro, который позволяет подключиться к master-серверу MariaDB 10.0, преобразовать бинарный лог событий в формат Avro и транслировать изменения на другой сервер в форматах JSON или raw Avro с использованием протокола CDC;
- Возможность работы в роли межсетевого экрана с end-to-end SSL-шифрованием канала связи для защиты от неавторизированного доступа к данным;
- MaxAdmin, клиентское ПО для управления и мониторинга за работой MaxScale, переведено на новую схему аутентификации - для соединения с MaxScale теперь применяется только domain socket, удалённый доступ больше не поддерживается;
- Добавлена опция max_connections для ограничения максимального числа соединений;
- Классификатор запросов, применяемый в MaxScale для принятия решений о дальнейших действиях с определённым запросом, переведён со встраиваемого варианта MariaDB на SQLite;
- Добавлен модуль readwritesplit для создания отказоустойчивых конфигураций, в которых в случае сбоя в работе master-узла, запросы на чтение будут автоматически перенаправлены на запасные slave-узлы, т.е. несмотря на недоступность основного сервера сохранится возможность выполнения запросов, не приводящих к изменению данных. Состояние master- и slave- серверов отслеживаются при помощи модуля mysqlmon.
URL: https://mariadb.com/news-events/press-releases/mariadb-maxsc...
Новость: http://www.opennet.ru/opennews/art.shtml?num=45269