I'm looking into making a DOOM-style game (With proper polygons though, none of this fake z-axis stuff) which will use a similar data storage system to the old dog. Stuff needed is requested from the cache manager, and if it's loaded a handle is returned, if not it's fished out of the WAD and then a handle is returned.

What I would like to know is how to handle a situation where you've reached the maximum amount of chunks you can store, and there are still chunks in memory that you haven't used since 1970. Should I use a reference counting system (That would require everything to return their handles to the manager when finished) or some other way of judging when it's time to bin the old and bring in the new?

EDIT: 100 posts, wheee! I feel old already