LINUX.ORG.RU

Кеширование динамики (конкретная ситуация)

 , ,


0

1

Есть: сущность «А» и сущность «Б» и есть меж ними связь мэни ту мэни. Сущностей и связей сейчас пока мало, а будет много.

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

Что кешировать и как? Руками первым зашедшего пользака или по крону — эти вопросы я не обсуждаю. Тут все понятно и есть из чего выбирать. У меня совсем другой вопрос.

Еще раз, что кешировать и как?

Ну например — делать токен из айдишников «Б» а-ля «bid1-bid2-bid-3-bidN» и ждать его в запросе (или вообще от строки запроса), типа айдишник кеша получается, если кеш есть, то отдавать кеш, если нет, то генерим кеш и сохраняем.

Все просто скажете вы? Неа.

Если некто «модератор1» удалил сущность «Б» которая была связана с парой тысяч сущностей «А». Какие кеши я должен удалить/перегенерить? в токене кеша доступны айдишники «Б» которые а-ля точка входа для получения списка «А» которые собсно в кеше хранятся, НО! у каждой такой «А» есть свои «Б» )) Рекурсия, однако..

Как это сделать правильно?

Ответ на: комментарий от Shadow

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

Но насколько это вообще говнокод и все такое? Где готовые решения? Я же на кучу граблей наступлю пока сам велосипедить буду.

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от deep-purple

Мне твой кейс показался прям как peewee с м2м модулем, flask и flask-potion.
В peewee orm из коробки хитрые связи и пагинация, во flask-potion - готовый rest интерфейс к ним с отдачей json хоть только списка, хоть с перечислениями ссылающихся сущностей. И всё такое объектное и синхронное. Если чего нет, очень легко дописывается.

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.