LINUX.ORG.RU

Оптимизация потоков данных

 , , ,


0

2

Имеется один сервер с СУБД (mysql/postgres) и 50 хостов. На каждом хосте запущено по 5-10 процессов, которые работают по следующей схеме: часть вычитывают все данные из определенных таблиц, часть только по определенному критерию. Затем все процессы реагируя на изменения данных подкачивают эти самые изменения.

Данные могут меняться раз в 4 секунды. Пока трудно спрогнозировать какой процент данных будет меняться и какой будет объем, но есть опасения о том, вытянет ли сервер нагрузку.

Хотелось бы оптимизировать потоки данных и избавиться от множественных обращений в рамках одного хоста.

Есть ли какие-нибудь решения? C++, Qt. Решения для джавы тоже будут интересны, для общего развития.



Последнее исправление: totik (всего исправлений: 1)

Задача прямо-таки призывает: «используйте очередь сообщений».

anonymous
()

избавиться от множественных обращений в рамках одного хоста

Очевидный прокси запросов с кэшем очевиден.

no-such-file ★★★★★
()

Меньше 100 запросов в секунду, наверное, даже Raspberri Pi потянет на HDD через USB, если не совсем сильно криво закодируешь. Рекомендую сначала упереться в проблему, а потом её решать, а не придумывать её заранее и городить оверинжиниринг.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Меньше 100 запросов в секунду, наверное, даже Raspberri Pi потянет на HDD через USB, если не совсем сильно криво закодируешь.

Очень оптимистично. На больших данных и нетривиальном селекте оно и один запрос не вытянет.

Все, что касается работы с данными, надо проектировать и оптимизировать сразу, иначе потом будешь рефакторить вообще все. Не микро-оптимизировать конечно, но все же.

Из ОП пока складывается ощущение, что dataflow вообще не спроектирован. Точнее сказать что-то сложно, потому что вводных мало, но вот это: «часть вычитывают все данные из определенных таблиц» — 99% триггер, что что-то там не так.

filosofia
()

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

Niokva
()

А какой у тебя объем базы?

Niokva
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.