Кроме функциональных изменений выпуск MaxScale 2.0 примечателен переходом на новую схему лицензирования. Вместо лицензии GPLv2 код теперь поставляется под лицензией BSL. Лицензия BSL позиционируется как альтернатива модели Open Core - при использовании BSL код расширенной функциональности изначально открыт и доступен для внесения изменений, но может применяться бесплатно только при соблюдении дополнительных условий, для обхода которых требуется приобретение коммерческой лицензии. В частности, MaxScale может бесплатно использоваться только для конфигураций, включающих менее трёх серверов. Ограничения действуют только до 1 января 2019 года, после чего они снимаются и код начинает поставляться под лицензией GPLv2+.
Для приложения взаимодействие с MariaDB MaxScale ничем не отличается от привычного обращения к СУБД, при этом, MaxScale может в прозрачном для приложения виде обеспечивать распределение запросов на серию серверов или организовать оперативное переключение на запасной сервер в случае сбоя первичного. MariaDB MaxScale позволяет на основе определения правил задавать достаточно сложные пути перенаправления запросов к СУБД. Правила могут привязываться к отдельным типам SQL-запросов, а также учитывать назначение конкретных серверов. Для обеспечения высокой производительности используются методы асинхронной обработки ввода/вывода и мультиплексирование через epoll.
Основные новшества:
Режим захвата изменений данных (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.
