ASP.NET 2.0 is so chock full of new features that it’s hardly surprising some of those features are barely documented (or not documented at all). I love sifting through the dirt and uncovering hidden gems that few people know about.
One of those hidden gems is session state partitioning, which helps large applications that use out-of-process or SQL Server session state scale out by partitioning the session state data source into multiple data sources. By writing a custom partition resolver, you could, for example, allocate each ASP.NET application its own session state database, or even divide session state for one application into multiple databases. It’s not hard at all to do, and the potential scalability win for high-volume applications is enormous.
You can bet that I’ll be writing about session state partitioning in a future installment of Wicked Code. Meanwhile, get a feel for what session state partitioning is about (and how it works) by reading Mike Volodarsky’s article in the September 2005 issue of MSDN Magazine: “Fast, Scalable, and Secure Session State Management for Your Web Applications.” Mike is a PM on the ASP.NET team (technically, the Web Platform and Tools team) at Microsoft, so the information in the article comes direct from the source.