Представлен прокси-сервер MariaDB MaxScale

16.01.2015 19:08

Разработчики СУБД MariaDB представили первый стабильный выпуск нового продукта MariaDB MaxScale, представляющего собой прокси-сервер, работающий между клиентским приложением и СУБД, и способный решать такие задачи, как обеспечение высокой доступности, балансировка нагрузки, прозрачное масштабирование или сглаживание процесса миграции инфраструктуры на другие СУБД. Поддерживается работа с СУБД MariaDB Enterprise, MariaDB Enterprise Cluster, MariaDB 5.5, MariaDB 10 и Oracle MySQL. Кроме того, через плагины возможна организация работы с такими системами, как PostgreSQL, Microsoft SQL Server и Hadoop. Код проекта написан на языке Си и распространяется под лицензией GPLv2.

MariaDB MaxScale позволяет на основе определения правил задавать достаточно сложные пути перенаправления запросов к СУБД. Правила могут привязываться к отдельным типам SQL-запросов, а также учитывать назначение конкретных серверов. Для приложения взаимодействие с MariaDB MaxScale ничем не отличается от привычного обращения к СУБД, при этом, MaxScale может в прозрачном для приложения виде обеспечивать распределение запросов на серию серверов или организовать оперативное переключение на запасной сервер в случае сбоя первичного.

Благодаря гибкой архитектуре MaxScale позволяет создавать плагины, через которые можно реализовывать новые методы маршрутизации запросов или добавлять поддержку новых протоколов. Все протоколы, методы маршрутизации запросов, способы аутентификации, механизмы мониторинга и механизмы ведения логов реализованы как модули, оформленные в виде разделяемых библиотек. Для обеспечения высокой производительности используются методы асинхронной обработки ввода/вывода и мультиплексирование через epoll.

Из областей использования MariaDB MaxScale выделяется:

  • Улучшение масштабируемости и эксплуатационной гибкости, в том числе благодаря таким возможностям как разделение запросов на запись и чтение на master- и slave-серверы, или возможность перенаправления сложных, ресурсоёмких или связанных с генерацией отчётов запросов на отдельно выделенные серверы.
  • Повышение безопасности за счет применения дополнительных методов фильтрации запросов, а также выявления и предотвращения совершения атак по подстановке SQL-запросов и попыток неавторизированного доступа. На базе MaxScale можно организовать подобие межсетевого экрана для СУБД, не пропускающего запросы, соответствующие заданной маске.
  • Организация постепенного перехода на иные версии или типы СУБД - процесс переработки приложений и переход на новые выпуски СУБД может быть разделён на несколько стадий, с обеспечением трансляции запросов устаревших приложений на стороне прокси-сервера.
  • Обеспечение мониторинга производительности запросов через ведение расширенного лога, отображающего узкие места и длительно выполняющиеся запросы.
  • Возможность организации резервного копирования или синхронизации через дублирование запросов в другую СУБД, например, можно организовать одновременное хранение в InnoDB и NoSQL.
  • Возможность организации шардинга на уровне прокси или перенаправления запросов на основе указанных приложением меток.
  • Создание конфигураций с несколькими активными master-серверами.
  • Организация репликации в условиях использования территориально распределённых узлов;
  • Возможность изменения поддерживаемого клиентом протокола взаимодействия с СУБД для организации обращения к другим внешним СУБД, например, NoSQL-хранилищам, Microsoft SQL Server или к PostgreSQL.