Every Web application has to deal with session state in one way or another. Most default to the state management built into the environment of the language they’re using. It’s simple, quick, and in many cases effective.
The problem comes in when you’re trying to build a high volume site and the standard way of doing things just won’t cut it. Dumping everything into session state just doesn’t work; caching becomes a necessity. You’re forced to start bringing more things into memory per user—while simultaneously keeping your per-user memory utilization down. It is when caching is added to the performance mix that you begin to really see how your fundamental views of session state and caching need to shift.
In this article, I present a model for creating different pools of information tied to both, how the information is used and how expensive that information is to reproduce. I’ll detail a method for improving performance using careful management of state and cache.