Работает ли ProxySQL для Manticore?


#1

Всем привет. Решил попробовать использовать ProxySQL для того чтоб собрать несколько серверов Manticore в кластер и иметь возможность настроить шардирование данных (использую RT-индексы). Но столкнулся с тем что SELECT запросы прекрасно проксируются, а вот INSERT и SHOW TABLES зависают. Для mysql при тех же настройках проблем не было.

Возможно кто-то сталкивался и может подсказать тонкости настройки proxysql для manticore или же сказать что это в целом невозможно и не стоит тратить время.


#2

не пробовали ProxySQL, если вы бы предоставили воспроизводимый пример - я бы проверил, какие команды фейлят проксирование. Может достаточно написать dummy MySQL команду или исправить вывод.

Желательно бы какой нибудь контейнер \ Dockerfile - который можно было бы запустить одной командой, а оно там все поставилось и запустилось.


#3

Да, конечно. Вот ссылочка там docker-compose с Manticore, MySQL и ProxySQL. Я тестировал на нем. Если с докером возникнут сложности постараюсь помочь.


#4

Здравствуйте, отследить, как движется проверка, можно по ссылке на Гитхабе https://github.com/manticoresoftware/manticoresearch/issues/57 Спасибо за вопрос


#5

пока что показало что Manticore\Sphinx не правильно отвечает на некоторые запросы из ProxySQL, нужно дописать такие “заглушечные” обработчики и смотреть дальше в чем дело. Вы можете следить запрогрессом в тикете на Github.

А MySQL Federated table будет не удобнее чем ProxySQL?


#6

Спасибо за помощь. Попробовал Federated table с ним тоже есть нюансы, в момент первого обращения к удаленной таблице mysql посылает запрос вида SELECT id, title, content FROM demo WHERE 1=0 (видимо с целью проверить что есть соединение) который приводит к ошибке:
*/ SELECT id, title FROM `demo` WHERE 1=0 # error=sphinxql: syntax error, unexpected CONST_INT near '1=0'

Касательно ProxySQL. Он выглядит чуть интересней так как предоставляет больше возможностей. Правда можно реализовать эту логику и на уровне приложения, но пока решил посмотреть какие есть готовые инструменты.


#7

не понятно как пользоваться ProxySQL.
Что надо писать чтобы увидеть

SELECT запросы прекрасно проксируются, а вот INSERT и SHOW TABLES зависают

захожу в каждый из контейнеров и через mysql могу достучатся до демонов или ProxySQL

docker-compose exec proxysql mysql -uroot -h0 -P6032

mysql> select * from mysql_servers;
+--------------+------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
| hostgroup_id | hostname   | port | status | weight | compression | max_connections | max_replication_lag | use_ssl | max_latency_ms | comment |
+--------------+------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
| 0            | manticore2 | 9306 | ONLINE | 1      | 0           | 1000            | 0                   | 0       | 0              |         |
+--------------+------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+

но как из ProxySQL отправить запросы на демона - непонятно. Все SELECT \ SHOW \ INSERT в контейнере proxysql меняют только системные таблицы - напишите прям команды, какие и в каком контейнере надо выполнять чтобы отправить запросы к ManticoreSearch демону или MySQL серверу


#8

I’ve just found out the root of issue - wrong SERVER flags in OK reply. I’m going to properly fix it and tests more queries with ProxySQL to make sure it works ok.
I’ll close related issue at Github when push fix to master.


#9

Извините, не сразу увидел сообщение. На сколько понял уже не актуально, но вдруг кому-то еще пригодится, режим проксирования находится на другом порту:
docker-compose exec proxysql mysql -uroot -h0 -P6033


#10

Здравствуйте, сделали архив для тестирования, забрать можно здесь: https://yadi.sk/d/sKX9bBpD3U9WKY Просим протестировать изменения и дать нам знать, что получилось


#11

Здравствуйте, пока проверил основные запросы. SHOW TABLES, INSERT, UPDATE. Запросы правильно обрабатываются, проблем не заметил.
На этой неделе посмотрю более внимательно, возможно проведу benchmark и заодно гляну работу FEDERATED.
Но в целом, спасибо, похоже что все работает правильно.


#12

Спасибо за помощь, я тогда пока закрою кейс на Гитхабе. Если найдете какие-то проблемы, переоткроем


#13

По FEDERATED работа еще ведется.


#14

Здравствуйте!
Около месяца назад мы отправили вам архив для тестирования ProxySql и вы обещали его более детально посмотреть. Пожалуйста, сообщите нам о результатах и возможных проблемах. Спасибо


#15

На всякий случай: работа по FEDERATED завершена. Если есть проблемы - сообщайте.