The Need For Speed - NxtGen Cambridge

  • 597 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
597
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
1
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. The Need For Speed A Developer’s Guide to Distributed Caching with Velocity AppFabricPhil Pursglove@philpursglovehttp://philpursglove.blogspot.comhttp://www.philippursglove.com/Velocity
  • 2. Agenda• What is AppFabric?• Why a Distributed Cache?• Configuring a client• Configuring a server• Managing a cache• Concurrency• High availability / load balancing
  • 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. Cache-Aside• The cache-aside pattern – See if the item you want is in the cache – If it isn’t (a cache miss), • Go and get it i.e. from the DB • Put it in the cache – If it is, • Cast it to the desired type and return it
  • 5. 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• v1 released June 2010
  • 6. How Do I Get AppFabric?• For Devs: – Web Platform Installer, under the Products tab – Requires SQL Express • If you want to use SQL Server, download the installer• For IT Pros: – Download the installer from http://tinyurl.com/appfabric10installer
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. Using AppFabric 1• Add/Remove• Concurrency – Optimistic • Version based – Pessimistic • Lock based
  • 12. 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 
  • 13. 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
  • 14. 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
  • 15. AppFabric 1.1• CTP 1 released Aug 2011• New session state and output cache providers• Read-through/write behind cache – Inherit from DataCacheStoreProvider
  • 16. Summary• v1 is worth looking at as a session state provider – The end of sticky load-balancing • v1.1’s new model makes it much more usable
  • 17. Questions?phil@philippursglove.comhttp://philpursglove.blogspot.comhttp://www.philippursglove.com/Velocity@philpursglovehttp://slideshare.net/philpursglove
  • 18. 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
  • 19. 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/