Вася Патриков
Новичок
Много лет не могу постичь этой темы. Самый обычный сценарий: смотрим в кэш, если там пусто, то запускаем процедуру получения данных, которые затем и положим в кэш. Так вот, если запросов много, то эта долгая и тяжёлая процедура начнёт выполнятся столько раз, сколько будет запросов за этими данными, до тех пор, пока в кэш не запишется что-то. Ну например подсчёт строк на огромной БД. Хотелось бы, чтобы всё таки был один запрос
select count(*) from table
, а не... ну то, что я описал. Так же непонятно, что возвращать клиенту, пока процедура выполняется. Два кэша нужно? Один долгий, другой обычный? Кто как решает эту проблему? Может и паттерн уже придумали какой? Или либу или обёртку в рамках какого-нибудь фреймворка?