Presentation is loading. Please wait.

Presentation is loading. Please wait.

 Muralidhar Krishnaprasad Principal Architect Microsoft Corporation TL14.

Similar presentations


Presentation on theme: " Muralidhar Krishnaprasad Principal Architect Microsoft Corporation TL14."— Presentation transcript:

1  Muralidhar Krishnaprasad Principal Architect Microsoft Corporation TL14

2

3 Most composite applications designed for serious scale and availability are using mid- tier, distributed caching technologies today. Evolving Application Requirements Underlying Hardware Trends Evolving Application Architectures Evolving Business Requirements

4 Caching Reference Data Web Tier Clients Local Cache (in Proc) Distributed Cache Servers Distributed Cache Servers Data Tier Usernames, Name-> ID Mapping Usernames, Name-> ID Mapping Friend Lists Usernames Friend Lists Usernames Scenario: Social Networking

5 Caching Activity-Oriented Data Data Tier Application Tier Distributed Cache Integration Hub Integration Hub Clients Web Tier Vendor services Pricing Vendor Sources Order, Invoice, Payment Order, Invoice, Payment Aggregated Vendor Catalogs Aggregated Vendor Catalogs Scenario: Enterprise LOB Application

6 Caching Resource-Oriented Data Scenario: Flight Inventory and Pricing Application Tier American Distributed Cache Flight Itinerary Flight Itinerary Flight Segment Flight Price Flight Segment Flight Price Airlines Seat Inventory Booking Service

7 Shopping Cart Shopping Cart Catalog Inventory

8 Unified Cache View Clients can be spread across machines or processes Clients Access the Cache as if it was a large single cache Cache Layer distributes data across the various cache nodes

9 … Application / Web Tier Application UsersUsers DatabaseDatabase CloudCloud Data Tier Application Velocity Client Local Cache Server 1 Server 2 Server 3 Velocity Service Server Side Callbacks Cache Tier

10 Increase Performance Cache Objects close to Application Increase Performance Cache Objects close to Application Scale Out Add More Machines to Scale out your Application Scale Out Add More Machines to Scale out your Application Make Application Available Protect from machine failures Make Application Available Protect from machine failures Do all this at low cost Use Cheap Commodity Hardware Velocity V1 will be FREE out of band release for the.Net framework Do all this at low cost Use Cheap Commodity Hardware Velocity V1 will be FREE out of band release for the.Net framework

11 CTP1 TechedTeched CTP2 Now CTP3 Mix 2009 RTM Mid 2009

12

13 Regions Region A Key Payload Tags 121 xxxx “Toy” “Child” 123 yyyy “Toy” “Chair”.. Machine -> Cache Host -> Named Caches -> Regions -> Cache Items -> Objects Velocity Service Named Cache : Product Catalog Named Cache : Electronics Inventory Velocity Service

14 // Simple Get/Put catalog.Put("toy-101", new Toy("Puzzle",.,.)); // From the same or a different client Toy toyObj = (Toy)catalog.Get("toy-101"); // Simple Get/Put catalog.Put("toy-101", new Toy("Puzzle",.,.)); // From the same or a different client Toy toyObj = (Toy)catalog.Get("toy-101"); // Region based Get/Put catalog.CreateRegion("toyRegion"); // Both toy and toyparts are put in the same region catalog.Put("toyRegion", "toy-101", new Toy(.,.)); Catalog.Put("toyRegion", "toypart-100", new ToyParts(…)); Toy toyObj = (Toy)catalog.Get("toyRegion", "toy-101"); // Region based Get/Put catalog.CreateRegion("toyRegion"); // Both toy and toyparts are put in the same region catalog.Put("toyRegion", "toy-101", new Toy(.,.)); Catalog.Put("toyRegion", "toypart-100", new ToyParts(…)); Toy toyObj = (Toy)catalog.Get("toyRegion", "toy-101");

15

16

17 // Add Tags Tag hotItem = new Tag("hotItem"); Tag discItem = new Tag("discountItem"); catalog.Put("toyRegion", "toy-101", new Toy("Puzzle"), new Tag[]{hotItem}); catalog.Put("toyRegion", "toy-102", new Toy("Bridge"), new Tag[]{hotItem,discItem}); // From the same or a different client List > toys = catalog.GetAnyMatchingTag("toyRegion", hotItem); // Add Tags Tag hotItem = new Tag("hotItem"); Tag discItem = new Tag("discountItem"); catalog.Put("toyRegion", "toy-101", new Toy("Puzzle"), new Tag[]{hotItem}); catalog.Put("toyRegion", "toy-102", new Toy("Bridge"), new Tag[]{hotItem,discItem}); // From the same or a different client List > toys = catalog.GetAnyMatchingTag("toyRegion", hotItem);

18

19 … Application / Web Tier Application Cache Tier Velocity Service UsersUsers Application Velocity Client Local Cache Velocity Service Application Velocity Client Local Cache Application Velocity Client Local Cache AA CC EEDD BB GGIIHH FF Server 1 Server 2 Server 3

20

21

22 Load Test Controller … Server 1 Server 2 Server 3 Cache Client1 Cache Client 2 Cache Client n Load Controller Spawns Test Clients Client Machines run test Cache Service Cluster Partitioned Cache

23 Single Server Throughput Increases with Increasing Load Until Server Saturation Single Server Throughput Increases with Increasing Load Until Server Saturation LoadLoad ThroughputThroughput LatencyLatency Server 2 Added Throughput Increases Latency Decreases Until Server Saturation Server 2 Added Throughput Increases Latency Decreases Until Server Saturation Server 3 Added Throughput Increases Latency Decreases Server 3 Added Throughput Increases Latency Decreases

24 … Application / Web Tier Application Cache Tier Velocity Service UsersUsers Application Velocity Client Local Cache Velocity Service Application Velocity Client Local Cache Application Velocity Client Local Cache AA CC EEDD BB GGIIHH FF Server 1 Server 2 Server 3 AA CC EE DD BB GG II HH FF

25 … Application / Web Tier Application Cache Tier Velocity Service UsersUsers Application Velocity Client Local Cache Velocity Service Application Velocity Client Local Cache Application Velocity Client Local Cache AA CC EE DD BBGG II HH FF Server 1 Server 2 Server 3 AA CC EEDDBB GGII HHFFDDAAHH CC FF EE

26 … Session State stored in Velocity Velocity Service Load Balance Requests No more sticky routing Load Balance Requests No more sticky routing Application Velocity SessionStoreProvider Application Velocity SessionStoreProvider Application Velocity SessionStoreProvider Velocity Service Scale your Session Store Dynamically Dynamically Highly Available Drop in Velocity SessionStoreProvider <add name="SessionStoreProvider" type="System.Data.Caching.SessionStoreProvider, ClientLibrary" cacheName=" "/> <add name="SessionStoreProvider" type="System.Data.Caching.SessionStoreProvider, ClientLibrary" cacheName=" "/>

27

28 Cache Cluster Velocity Embedded in ASP.Net Application Cache Cluster Velocity Embedded in ASP.Net Application Northwind Application Northwind Application ASP.net Session Cache ASP.net Session Cache VELOCITY Velocity Session Store Provider Velocity Session Store Provider Northwind Application Northwind Application ASP.net Session Cache ASP.net Session Cache VELOCITY Velocity Session Store Provider Velocity Session Store Provider CacheViewer Application CacheViewer Application VELOCITY Partitioned Cache

29

30 Velocity Service Server 1 Server 2 Server 3 Cache Servers Configuration Store (Can be database, File share etc.) Stores Named Cache Policies Stores Global Partitioning Map Global Partition Manager Velocity Service One of the Velocity Service Hosts the Global Partition Manager

31

32 Web Tier ASP.Net Application Farm Clients Velocity Cache Service Velocity Cache Service Data Tier Friend Lists Usernames Friend Lists Usernames Velocity Local Cache Caching Reference Data Scenario: Social Networking Partitioned Cache Scale Scale Usernames, Name-> ID Mapping Usernames, Name-> ID Mapping Local Client Cache Higher Performance

33 Application Tier ASP.Net Application Farm Caching Activity-Oriented Data Data Tier Velocity (with HA on) Integration Hub Integration Hub Clients Web Tier Vendor services Pricing Vendor Sources Order, Invoice, Payment Order, Invoice, Payment Aggregated Vendor Catalogs Aggregated Vendor Catalogs Scenario: Enterprise LOB Application Partitioned Cache + HA Scale + Availability Partitioned Cache + HA Scale + Availability Session Store Provider ASP.Net Integration Session Load Balancing ASP.Net Integration Session Load Balancing

34 Caching Resource-Oriented Data Scenario: Flight Inventory and Pricing Application Tier American Velocity Flight Itinerary Flight Itinerary Flight Segment Flight Price Flight Segment Flight Price Airlines Seat Inventory Booking Service Partitioned Cache + HA + Concurrency Control Scale + Availability + Performance Partitioned Cache + HA + Concurrency Control Scale + Availability + Performance

35

36

37

38 June 2008 (CTP1) (TechEd 2008) Oct 2008 (CTP2) (PDC 2008) CTP3 (Mix 2009) Mid 2009 RTM Distributed, partitioned cache service Regions, Tags Local CacheASP.Net Integration AvailabilityConfiguration Options Powershell Bulk Access APIsSecurity Read-Through/Write-BehindCache Event Notifications

39 Make it availableMake it fasterScale your app Velocity Http://msdn.microsoft.com/data

40 Please fill out your evaluation for this session at: This session will be available as a recording at: www.microsoftpdc.com

41

42 © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

43


Download ppt " Muralidhar Krishnaprasad Principal Architect Microsoft Corporation TL14."

Similar presentations


Ads by Google