Нагрузки - ревизия
Посмотрев свой topicview.patch.txt понял, что решение - ацтой Смысл ацтоя в том, что гоняется туда-сюда целый массив, который может прилично распухнуть и привести к коллизиям, когда одновременно читается и пишется.
Идея была переработана и отдана на реализацию Патча пока нет Идея в следующем:
Как прежде, на просмотре пишем в кеш, на списке топиков - читаем из кеша и складываем, но - храним все не в массиве, а для каждого топика - свой ключ. Имеем проблему - как обновлять переодически кол-во просмотров темы, ибо список ключей получить мы не можем (рукотворным реестрам было отказано давно ввиду костыльности решения). Решение - на просмотре темы проверять количество просмотров, и если их там накопилось больше X, то именно тут и сбросить. Минусы - если тема долго не просматривается, то ключ в кеше помрет не успев достигнуть X просмотров - решается предоставлением достаточной памяти мемкешу, что бы ключи не вытеснялись и величиной X - что бы чаще или реже сбрасывать данные в базу.
4 комментария
Рекомендуемые комментарии