Ticket #267 (fixed enhancement)
Cache system on extern.php
- Created: 2011-01-31 09:15:56
- Reported by: llaumgui
- Assigned to: Reines
- Milestone: 1.4.5
- Component: syndication
- Priority: normal
On a large board (423 824 message on 47 533 topics), extern.php cause MySQL heavy query.
Params are :
- type = rss
- order last_post
Make a cache system can be a solution ?
Reines 2011-01-31 13:56:25
- Milestone set to 1.4.5.
llaumgui 2011-01-31 14:08:42
Can I fork FluxBB on GitHub and do a pool request ?
Reines 2011-01-31 14:10:49
Sure feel free. What is your plan when you say caching? Caching the generated RSS output? If so - for a certain length of time, or automatically invalidating the cache when appropriate?
llaumgui 2011-01-31 14:13:20
Cache with a TTL ?
Reines 2011-02-03 18:30:18
- Owner set to Reines.
Reines 2011-02-03 19:37:27
I've created a pull request for this, if someone could give it a check over/test that would be great.
Checked. Works great.
Reines 2011-02-05 10:55:17
Just as a reminder to myself, as quy mentioned on GitHub, it's possible to generate a ridiculous number of cache files by sending the correct requests. This is actually unlimited, since you can send a request with invalid forum IDs and it is still attempted.
I'm not quite sure what the best solution is - but it needs solved.
Reines 2011-02-06 13:29:35
I'm thinking it wont be easy to solve this, unless we are using a proper cache layer like APC/XCache/etc which can automatically flush entries when memory is full.
Maybe a better solution is to have it only cache the "main" feed. i.e. action=feed, with no tid/fid/nfid.
If we cache a full 50 topics, then filter to the show amount afterwards then we can limit the possible cache entries to a maximum of (number of groups) * (number of language packs) * 2.