ID:77877
 
Resolved
Cache size limit increased in 448
BYOND Version:447
Operating System:Windows XP Home
Web Browser:Firefox 3.5.1
Status: Resolved (448)

This issue has been resolved.
Descriptive Problem Summary:
In a couple of 'resource monster' games, such as card games that need to have icon images of hundreds of cards (that's thousands of icons total!)
They have nearly 30+MB in Resource Files, excluding images needed for skins, sounds, etc.

Now, this seems all good, but what it does is pretty frustrating. Now and again, we'll need to download the resources for the game everytime we log in, they are never permenately cached. They seem to 'vanish' the second you log out.

Is there some sort of limit on resource file limits, to prevent it from being cached?

Numbered Steps to Reproduce Problem:
1.) Join a 'Resource Monster' game
2.) Leave
3.) Join and see if you have to re-dl resources

Expected Results:
For the resources to be cached overnight, if you need to log out to run an errand.

Actual Results:
Have to sit through 20+ Minutes of resource downloading everytime you want to join the game

Does the problem occur:
Every time? Or how often? Everytime you log out, then back in
In other games?Yes
In other user accounts? Yes
On other computers? Yes

When does the problem NOT occur? If the game isn't a resource monster?

Workarounds: None.

Here are the resource monsters I know of that are effected by this possible cache limit, if it exists:

http://www.byond.com/games/UnknownDuelist/ DuelMonstersUnlimited
http://www.byond.com/games/DevourerOfSouls/ DuelMonstersExpert

This was always happening when you were logged in to one game, and then logged into a 2nd one that required resource downloads. The 2nd game's resources wouldn't be stored. Supposedly they fixed it back in 443, but I noticed it happening again in 446.
BYOND's cache system has a built-in protection against giant cache files by reducing cache_lifespan under certain conditions--usually a large number of files in the cache, a large cache size, or a long load time. The absolute limit at which it reduces cache_lifespan to 0 is 50 MB, which is quite possible to reach if you play more than one game with a cache of nearly 30 MB.

I managed to get my cache to clear in this way by joining several large-resource games (including the two you mentioned) until the byond.rsc file had gone over 60 MB. The next time I played a game, the cache cleared.

Owing to today's larger hard drive sizes, I think we can safely bump these protective limits up. I've doubled the cache size limit for the next release, which should make life easier for people playing multiple large-resource games.
Just to clarify what's been done here, Tom and I talked over how caches should be handled now and the new cache limit is actually going to be way higher than before. It'll hold more data for longer, and it should be compact itself more often when it has a lot of empty slots. With today's hard drive sizes the old limits really just didn't apply, so the new limits are really more just for numerical sanity.
Why not just make cache settings for the user, like the cache on an internet browser o.O