Компания 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
Искал другие балансировки для MySQL но ничего не нашел. Оно вообще водится в природе?
www.proxysql.com
> Искал другие балансировки для MySQL но ничего не нашел. Оно вообще водится
> в природе?Tungsten, sqlrelay
> Искал другие балансировки для MySQL но ничего не нашел. Оно вообще водится
> в природе?HAProxy, NGINX-Stream
>> Искал другие балансировки для MySQL но ничего не нашел. Оно вообще водится
>> в природе?
> HAProxyТак это же не sql, а TCP/HTTP load balancer:
% pkg search haproxy
haproxy-1.6.9 Reliable, high performance TCP/HTTP load balancer
Уже лет 10 как существует mysql-proxy.
Эта штука поддерживает скрипты на lua и можно довольно хитрую систему делать.
Из особенностей - т.к. логика может быть сложная, то надо proxy ставить на каждый сервер.Современные proxy, что proxysql что maxscale не такие гибкие и расширяемые (нет встроенного интерпретатора полноценного языка программирования), но работают быстрее и можно обойтись одним прокси сервером.
> Искал другие балансировки для MySQL но ничего не нашел. Оно вообще водится
> в природе?Вот чё-то нашёл:
% pkg search proxy | grep -i mysql
mysql-proxy-0.8.4_2 Monitor, analyze, or transform the communication of MySQL% cat /usr/ports/databases/mysql-proxy/pkg-descr
MySQL Proxy is a simple program that sits between your client and MySQL
server(s) that can monitor, analyze or transform their communication. Its
flexibility allows for a wide variety of uses, including load balancing;
failover; query analysis; query filtering and modification; and many more.WWW: http://dev.mysql.com/downloads/mysql-proxy/
Годная штука? Умеет ли работать с несколькими серверами и переключаться на исправные в случае выходя из строя некоторых серверов?
из продвинутых citrix netscaler
А с PostgreSQL кто нибудь юзал?
Че по чем там?
не умеет протокол pg
Использую pgpool
интересный момент:>> Компания MariaDB представила прокси-сервер MaxScale 2.0
>> Классификатор запросов, применяемый в MaxScale для принятия решений о дальнейших действиях с определённым запросом, переведён со встраиваемого варианта MariaDB на SQLite
Каждому решению - подходящий инструмент. Этож не Amarok, зачем тут полноценный SQL-сервер?
Добавить пометку использует epoll и Linux-AIO только для линукса.
уже не знает как вывернуться - что бы воздух продавать. Уже и новую лицензию придумал, а оно все никак..
лицензия вполне адекватная, и денежку срубит и в код даёт слазить.
> лицензия вполне адекватная, и денежку срубит и в код даёт слазить.да да, для бесплатных бетатестеров - пойдет. Нужно же как-то срубить на вас бабло ?
> да да, для бесплатных бетатестеров - пойдет.Не смог в механизм релизов? бывает, бывает
> Нужно же как-то срубить на вас бабло ?
И не просто "как-то", а с выходом на GPL и минимальными, по сравнению с другими коммерсантами, ограничениями.
Но есть возмущающиеся. То ли это подростки, которые в силу возраста вместо "спасибо" на автомате выдают "а чо так мало?", то ли это пена на опенсорсе, которая просто привыкла, что им все должны. А может просто мамка на софт денег не даёт.
У них также как и в предыдущей версии - read и write по разным портам подключения?
а как же galera? впрочем, она не решает задачу размазывания нагрузки, она решает задачу master-master репликации и создания отказоустойчивого кластера субд. но кто мешает применять шардинг на кластерА из отказоустойчивых нод по 3 сервера. получается дорого, но зато отказоустойчиво и производительно. впрочем, субд - это всегда дорого, особенно, когда одного сервера не хватает по производительности.
> а как же galera?А что галера? Новость про прокси, а не про то, как делать master-master.
Интересно, а ГОСТовый SSL туда можно впихнуть?
КриптоПРО или VipNet? Сомневаюсь.
OpenSSL - безсмысленно.
Значит только гостовый Постгрес =(
С BSL они явно перестарались.
> С BSL они явно перестарались.уж получше, чем OpenCore.
Чем это полностью несвободная (ещё 2 года) лицензия лучше, чем часть кода под свободной?
Пруф, например: https://mariadb.com/bsl-faq-adopting#foss
> Чем это полностью несвободная (ещё 2 года) лицензия лучше, чем часть кода
> под свободной?ИМХО то, что код открыт весь.