Как лучше распараллелить вычисления php?

Есть набор значений который рассчитываются по элементарным математическим формулам (+-*/).
Эти значения зависят от коэффициентов, коэффициенты хранятся в базе.
Часть коэффициентов динамические(меняются примерно раз в сек), часть почти статика.

Нужно распараллелить вычисления для максимально быстрого просчета.
БД mysql.

Изза того что данные очень динамические сильно на кеш не завяжешься.

Из вариантов - разнести на очередя, и по мере нагрузки добавлять воркеров.

Запросы на просчет могут приходить как массово до 5тыс значений, так и точечно 1-5 значений
  • Вопрос задан
  • 182 просмотра
Пригласить эксперта
Ответы на вопрос 2
@zuart
... уже и не знаю, нуп, похоже ...
Что по мне, так зря вы так думаете по теме кеширования в памяти... Кешировать ведь можно не только конечный результат, отправляемый юзеру, но и эти часто изменяющиеся данные.
Тот процесс, который постоянно изменяет данные в базе ведь может их не только в БД писать, но и в кеше сразу обновлять (мемкеш/редис/etc.). И для выдачи результата не базу постоянно трясти, а брать их из кеша - это быстро.

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

Ну а если не поможет, тогда уже думать над распараллеливанием потоков и т.д.
Ответ написан
inoise
@inoise
Solution Architect, AWS Certified, Serverless
По вашему описанию пока что выглядит как типовая задача для RMQ + Work queues Consumers, но! Меня очень смущает то что вы написали о коэффициентах, которые меняются раз в секунду в базе. Основная цель коэффициентов быть статическими значениями уравнения расчета.

Возможно, что, если вы опишите архитектуру всего процесса (как попадают коэффициенты в базу, зачем они туда попадают и какие цели преследует такая архитектура) то получится вам помочь
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы