Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

The Need For Speed - NEBytes

908 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

The Need For Speed - NEBytes

  1. 1. The Need For Speed A Developer’s Guide to Distributed Caching with Velocity AppFabric Phil Pursglove @philpursglove http://philpursglove.blogspot.com http://www.philippursglove.com/Velocity
  2. 2. Agenda • What is AppFabric? • Why a Distributed Cache? • Configuring a client • Configuring a server • Managing a cache • Concurrency • High availability / load balancing
  3. 3. Caching Review • .NET 1.1 – ASP.NET Cache • .NET 2.0 – SqlCacheDependency – Enterprise Library Caching Application Block • .NET 4.0 – System.Runtime.Caching assembly – AppFabric
  4. 4. What is AppFabric? • A combination of two projects: – A distributed cache • One logical cache shared across a number of physical servers • Already being used by: – MSDN Forums – Xbox Live – MSN • A session state provider • In .NET 4.0, a cache provider – A workflow host • Beta 2 Refresh released 26th April 2010 – Servers must be .NET 4.0, clients can be .NET 3.5/4.0 • v1 by 30th June 2010
  5. 5. Why a Distributed Cache? • Bigger cache – Many physical servers contribute to one logical cache • High availability – Multiple servers = fault tolerance • Increased throughput – Many servers available to fulfil requests
  6. 6. Terminology • Cluster – A number of servers running Velocity – Not related to Windows clustering • Cache – A named cache on a cluster • Region – A named part of a cache associated to a single server
  7. 7. What Data Can I Cache In AppFabric? • Any serializable .NET object – Reference Data (Shared Read) • e.g. Product categories – Activity Data (Exclusive Write) • e.g. Shopping Basket – Resource Data (Read and Write) • e.g. product stock data
  8. 8. Configuring the AppFabric Client • Two assembly references to add: – Microsoft.ApplicationServer.Caching.Client.dll – Microsoft.ApplicationServer.Caching.Core.dll • Cache hosts can be hard-coded or in web.config/app.config • Clients – Routing vs Simple – Local caches
  9. 9. Using AppFabric 1 • Add/Remove • Concurrency – Optimistic – Pessimistic
  10. 10. Using AppFabric 2 • Regions – Live inside a cache – Tie a group of cached objects to a specific node  – But adds extra options (Tags) for retrieving the object 
  11. 11. Configuring an AppFabric Server • Cluster configuration can be held: – On a network share (XML Provider) – In a SQL Server DB (SQL Provider) • Integrated Security only  – AppFabric servers must be inside a domain
  12. 12. Managing An AppFabric Cluster • Powershell integration – Can start/stop a whole cluster or individual servers – Create new named caches • But not regions  – Get cache statistics • MDCAdmin tool – WPF app sitting on top of Powershell
  13. 13. Summary • Velocity is going to be great … in v2  • v1 is worth looking at as a session state provider – The end of sticky load-balancing 
  14. 14. AppFabric Launch Event • Tomorrow afternoon 1630-1730 • Launch event for Windows Server AppFabric and Windows Azure AppFabric • Visit http://www.appinfrastructure.com for details
  15. 15. Questions? phil@philippursglove.com http://philpursglove.blogspot.com http://www.philippursglove.com/Velocity @philpursglove http://slideshare.net/philpursglove
  16. 16. References • Documentation on MSDN – http://tinyurl.com/msdnappfabric • Velocity team blog – http://blogs.msdn.com/velocity – http://blogs.msdn.com/endpoint • AppFabric blog for IT Pros – http://blogs.technet.com/appfabric/ • TechEd videos – http://tinyurl.com/velocityteched • Mix 09 video – http://tinyurl.com/velocitymixvideo • Mix 10 video – http://tinyurl.com/velocitymix10video • ARCCast Video – http://tinyurl.com/velocityscotthavideo • ScottHa on Velocity – http://tinyurl.com/velocityhanselminutes • Deep Fried Bytes on AppFabric – http://tinyurl.com/deepfriedappfabric
  17. 17. References • AppFabric coverage on StackOverflow – http://tinyurl.com/stackoverflowvelocity – http://tinyurl.com/stackoverflowappfabric • DotNetRocks – http://tinyurl.com/dotnetrocksappfabric • Other .NET distributed caches – NCache - http://tinyurl.com/ncache – Memcached - http://tinyurl.com/smoe – Oracle Coherence – http://tinyurl.com/oraclecoherence – SharedCache – http://codeplex.com/sharedcache • Extensions Project – http://tinyurl.com/mscacheext • Admin Tool – http://mdcadmintool.codeplex.com/

×