Recently doing some research into getting session state management faster and more stable in an enterprise, load balanced environment. Not claiming to be any more knowledgeable than I was before, but definately more read...
Products:
- http://code.msdn.microsoft.com/velocity/
http://en.wikipedia.org/wiki/Velocity_(memory_cache)
http://www.microsoft.com/downloads/details.aspx?FamilyId=B24C3708-EEFF-4055-A867-19B5851E7CD2&displaylang=en - http://memcached.org/
- http://www.alachisoft.com/ncache/index.html
- http://www.scaleoutsoftware.com/products/state_server.php
- http://sharedcache.codeplex.com/
http://www.sharedcache.com/
Tutorials:
- http://blog.maartenballiauw.be/post/2007/11/ASPNET-load-balancing-and-ASPNET-state-server-(aspnet_state).aspx
- http://blog.maartenballiauw.be/post/2008/01/ASPNET-Session-State-Partitioning.aspx
- http://blog.maartenballiauw.be/post/2008/01/24/ASPNET-Session-State-Partitioning-using-State-Server-Load-Balancing.aspx
- http://en.aspnet-bhs.info/post/State-Server-Partitioning.aspx
- http://www.theserverside.net/news/thread.tss?thread_id=47330
- http://www.codeproject.com/KB/session/ASPNETSession.aspx
- http://blogs.msdn.com/velocity/archive/2008/06/05/how-to-use-session-store-provider-microsoft-project-code-named-velocity.aspx
Discussions:
- http://stackoverflow.com/questions/2063421/scaleout-vs-ncache
- http://forums.asp.net/t/1030680.aspx
- http://forums.asp.net/t/1210004.aspx
- http://stackoverflow.com/questions/489270/caching-and-session-state-management-using-microsoft-velocity-and-memcached
- http://stackoverflow.com/questions/856959/which-distributed-cache
Of course, once you have your caching up and running you'll want to test it before sticking it in the wild:
- http://predicatet.blogspot.com/2009/09/download-microsoft-web-application.html
- http://support.microsoft.com/kb/231282
- http://www.west-wind.com/presentations/webstress/webstress.htm
- http://ask-leo.com/can_i_monitor_or_control_the_bandwidth_used_on_my_home_network.html
- http://www.softwareqatest.com/qatweb1.html#LOAD
And some further reading, which may get bolstered the longer this post stays alive:
- What a 'Cache' is: http://en.wikipedia.org/wiki/Cache
- "Caching in the distributed environment": http://msdn.microsoft.com/en-us/library/dd129907.aspx
- Memcached Vs Velocity Showdown: http://www.briandrought.com/blog/?p=29
And for those who want to know, my own comparison (please be aware that I have not exhaustively tested all options, this is based on research and some usage):
NCache
- Distributed
- Partitioaned
- Replicated
- Remote clients available
- Expensive
- Failover
- Clustered
- Free developer edition not appropriate for live environments
Memcached
- Free
- Open source
- Distributed
- Not partitioned
- Not replicated
- Servers unaware of each other
- Not clustered
- Least recently used model
Velocity
- Sparsely documented
ScaleOut
Thanks great blog posst
ReplyDelete