Briefing: ScaleOut StateServer

ScaleOut StateServer
starting at $2,985 for three servers
ScaleOut Software
Bellevue, Washington

Let's review. ASP.NET offers you three alternatives for storing session state (that is, the unique information about each concurrent user of your Web site). First, there's in-proc storage, where state is simply kept in memory and managed by ASP.NET. This is fast and reliable - but it won't work when your site grows enough to move to a web farm. There's no way for one server to see state stored on another, so once you're round-robin serving responses from several machines, you need to change your plans. The second alternative is to use SQL Server to store session state. This gives you reliable transacted storage, but the license costs can eat you up and failover between multiple servers is difficult to achieve. Finally, Microsoft ships a service called State Server with ASP.NET, which offers shared in-memory storage as a Windows service. This is also workable for Web farms, but requires you to depend on what is essentially version 1.0 technology from Microsoft. State Server also offers a single point of failure: you run it on one server and all of the servers in the farm store information there.

ScaleOut Software has spotted a market opportunity here and jumped on it. Their new StateServer product takes the basic idea of Microsoft's State Server and improves it vastly. StateServer puts session state in memory (just like in-proc storage), but then it shares the state among multiple servers on your farm. Essentially, you install StateServer on each box and the various instances set up their own mini-network behind the scenes to share and protect the state data.

StateServer uses some novel replication technology to keep state distributed around while still providing every server in the Web farm access to all of the data. Every bit of state is authoritatively stored somewhere, but the StateServer network keeps multiple backup copies. If a server fails, one of the backup copies gets promoted to be authoritative, and another backup gets made. You can configure the timeout that leads to this process, so that minor bobbles in network availability don't result in needless work replicating objects. On the other hand, if you plug a new server into your Web farm and bring up the StateServer service, it will discover the rest of the network and start participating without you needing to do anything.

So, here's what it boils down to: if your application uses session state, and you'd like the peace of mind of knowing that you've got fast, reliable storage to hold it (even when you take servers offline for administrative work or rolling upgrades), you ought to take a look at this product. To get started, you can hook up with a 30-day evaluation from the company's own Web site.

About the Author

Mike Gunderloy has been developing software for a quarter-century now, and writing about it for nearly as long. He walked away from a .NET development career in 2006 and has been a happy Rails user ever since. Mike blogs at A Fresh Cup.