Ingo Rammer thinktecture.

Slides:



Advertisements
Similar presentations
Christian Weyer Solution Architect thinktecture
Advertisements

AppFabric Caching Services:
Designing InfoPath Forms: The Dos and Donts Deploying InfoPath Forms: Making the right choice Adding custom business logicin case the built-in stuff isnt.
System Operation Manager 2007 R2 im Überblick SESSION: I207 Walter Pitrof Technology Solution Professional Microsoft Switzerland
WSUS Presented by: Nada Abdullah Ahmed.
HTML5 That’s what you need to know today Ingo Rammer, thinktecture
Wade Wegner Windows Azure Technical Evangelist Microsoft Corporation Windows Azure AppFabric Caching.
Laurent Bugnion Senior User Experience Developer IdentityMine.
Olaf Feldkamp Development Platform Advisor Microsoft Schweiz GmbH.
Bernd Schneider Technical Solution Professional - BI Microsoft Schweiz.
Urs P. Küderli Principal Security Architect Microsoft.
Christian Binder Senior Platform Strategy Manager Microsoft.
Ronnie Saurenmann Microsoft Switzerland
Virtual techdays INDIA │ November 2010 SQL Azure Data Sync Shilpa Nirmale │ Associate Manager, Accenture.
Virtual techdays INDIA │ august 2010 Building ASP.NET applications using SQL Server Compact Chaitanya Solapurkar │ Partner Technical Consultant,
An MSDN Subscription acts as a lifeline for software developers, testers, architects, IT professionals, database engineers, and others. It provides priority.
April-June 2006 Windows Hosting Seminar Series Product Roadmap: IIS 7.0 Matthew Boettcher Web Platform Technical Evangelist (Hosting) Developer & Platform.
Manage & Configure SQL Database on the Cloud Haishi Bai Technical Evangelist Microsoft.
Esri UC 2014 | Demo Theater | Using ArcGIS for Server in the Microsoft Azure Cloud Nikhil Shampur.
Dominik Zemp TSP Security Microsoft Switzerland
Sascha P. Corti Developer Evangelist Microsoft Switzerland
Parallel Programming in.NET 4.0 Tasks and Threading Ingo Rammer, thinktecture
Christian Jäggli Principal Consultant Microsoft Corporation.
Randy Pagels, Developer Technology Specialist Microsoft Corporation Dev & Test in the Cloud.
Christoph Pletz Senior Consultant Trivadis AG Meinrad Weiss Principal Consultant Trivadis AG.

Markus Erlacher Technical Specialist Microsoft Corporation.
 Muralidhar Krishnaprasad Principal Architect Microsoft Corporation TL14.
 Sergey Barskiy  Principal consultant at Magenic Technologies  
 Anil Nori Distinguished Engineer Microsoft Corporation.
Virtual techdays INDIA │ august 2010 SQL Azure – Tips and Tricks Ramaprasanna Chellamuthu │ Developer Evangelist, Microsoft.
CCAT Troubleshooting Training XenApp April 2012 Citrix Consulting Architecture Team.
Copyright © 2006 Pilothouse Consulting Inc. All rights reserved. Overview Scale out architecture Servers, services, and topology in Central Administration.
Parallel Programming in.NET 4.0 Tasks and Threading Ingo Rammer, thinktecture
Connect with life Janakiram MSV Sr. Technology Strategist | MS India Development Center Siddharth Jagtiani Sr. Program Manager.
2 Microsoft project code named for Scalable and Available Applications Anil Nori, Distinguished Engineer Muralidhar Krishnaprasad (“MK”), Principal Architect.
Virtual techdays INDIA │ November 2010 AppFabric Cache Jatin Kakkar │ Sr. Program Manager, AppFabric.
Windows Azure Conference 2014 Caching Data in the Cloud with Windows Azure.
… Application /Web Tier UsersUsers DatabaseDatabase Data tier Application Asp.Net app Session cart hosted in memory Asp.Net app Session cart hosted.
Virtual techdays INDIA │ 9-11 February 2011 Caching Enhancement in ASP.NET 4.0 Abhijit Jana │ Consultant, Microsoft
Building micro-service based applications using Azure Service Fabric
Designing and Delivering Scalable and Resilient Web Services Ron Jacobs Sr. Technical Evangelist, Microsoft
Ken Casada Developer Evangelist Microsoft Switzerland
Advanced Debugging with Visual Studio Ingo Rammer | thinktecture | Please note: this session is a „classic“
DeveloperDeveloper IT Professional Building a Strong Data Foundation to Your Application Developing Web Applications on the Microsoft Application Platform.
Ingo Rammer thinktecture
Martin Cairney Hybrid data platform – making the most of Azure plus your on- prem kit DAT341 B.
Nicholas Goossens R&D Lead Open Box Software Session Code: WUX301.
Welcome Auckland Brent Colbert Director | Marketing Microsoft NZ.
Building web applications with the Windows Azure Platform Ido Flatow | Senior Architect | Sela | This session.
October 15-18, 2013 Charlotte, NC Being the DBA of the Future A World of On-Premises and Cloud Dandy Weyn, Snr. Technical Marketing Product Manager Microsoft.
Configuring SQL Server for a successful SharePoint Server Deployment Haaron Gonzalez Solution Architect & Consultant Microsoft MVP SharePoint Server
ARCHITECTING APPLICATIONS FOR HIGH SCALABILITY Leveraging the Windows Azure Platform Scott Densmore Sr. Software Development Engineer Microsoft patterns.
Aaron Stanley King. What is SQL Azure? “SQL Azure is a scalable and cost-effective on- demand data storage and query processing service. SQL Azure is.
Modern Application Lifecycle Management
Distributed Cache Dipl.-Ing. Damir Dobric Lead Architect daenet
.NET Performance Solutions
A Technical Overview of Microsoft® SQL Server™ 2005 High Availability Beta 2 Matthew Stephen IT Pro Evangelist (SQL Server)
TechEd /14/2018 6:26 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered.
SESSION CODE: ASI313 Windows Server AppFabric Caching: What It Is and When You Should Use It Jon Flanders.
Windows Server AppFabric Cache
Module 1–Windows AppFabric Cache
11/28/ :08 AM PDC09-FT26 Scale Your Data Tier using Windows Server AppFabric Caching (formerly Project “Velocity”) Muralidhar Krishnaprasad Principal.
06 | Case Studies James Chambers | Author, Microsoft ASP.NET/IIS MVP
M318.
ASP.NET 4.0 State Management Improvements – Deep Dive
DAT381 Team Development with SQL Server 2005
Saranya Sriram Developer Evangelist | Microsoft
Mark Quirk Head of Technology Developer & Platform Group
Microsoft Virtual Academy
Presentation transcript:

Ingo Rammer thinktecture

Support and consulting for software architects and developers Application Optimization, Troubleshooting, Debugging Architectural Consulting and Prototyping Developer-Coaching and -Mentoring Architecture and Code Reviews

Project Velocity is a Windows Service which provides highly scalable, distributed, cache- aside caching infrastructure spanning multiple physical nodes... and it will quite likely be free and released mid 2009

Web Server #1 Web Server #2 Web Server #3 Web Server #n Load Balancer Data Store Users

Web Server Data Store Application Memory Session State Local Caching

Web Server #1 Web Server #2 Web Server #3 Web Server #n Load Balancer Cache Server #1 Cache Server #2 Velocity Caching

Web Server #1 Web Server #2 Web Server #3 Web Server #n Load Balancer Cache Server #1 Cache Server #2 V V V V V V V V V V V V

Today CTP2/CTP3 Configuration Server: Cluster XML or SQL Server Client: App.Config or code Administration Powershell - can be used from any node in the cluster

In Powershell admin New-Cache -cachename democache Store/Retrieve items DataCacheFactory fact = new DataCacheFactory(); DataCache myCache = fact.GetCache("democache2"); string someValue = "testing"; // anything [Serializable] string someKey = "myKey"; myCache.Put(someKey, someValue); string result = (string) myCache[someKey]; DataCacheFactory fact = new DataCacheFactory(); DataCache myCache = fact.GetCache("democache2"); string someValue = "testing"; // anything [Serializable] string someKey = "myKey"; myCache.Put(someKey, someValue); string result = (string) myCache[someKey];

.NET Client Velocity #1 Velocity #2 Velocity #3 Prod-1 Prod-2 Prod-4 Prod-3 DataCache defaultcache = GetCache(...); Product prod = GetProduct(...); defaultcache.Put("Prod-1",prod); DataCache defaultcache = GetCache(...); Product prod = GetProduct(...); defaultcache.Put("Prod-1",prod); defaultcache.Put("Prod-2",prod2); defaultcache.Put("Prod-3",prod3); defaultcache.Put("Prod-4",prod4); defaultcache.Put("Prod-2",prod2); defaultcache.Put("Prod-3",prod3); defaultcache.Put("Prod-4",prod4);

Scale on size More machines == more memory Scale on throughput More machines == higher throughput Local Cache Closer to the client == lower latency, higher throughput, higher staleness

Can be enabled in config or code Great for reference data which can tolarate staleness Synchronization CTP2: Expiration CTP3: notifications from central caches

Velocity #1 Velocity #2 Velocity #3 Prod-1.NET Client Dynamic Routing Table Prod-2 Prod-4 Prod-3 defaultcache.Put("Prod-1",prod);

Velocity #1 Velocity #2 Velocity #3 Prod-1.NET Client Dynamic Routing Table Prod-2 Prod-4 Prod-3 object p1 = defaultcache["Prod-1"]; if (p1==null) { p1 = GetProductFromDatabase(...) defaultcache.Put("Prod-1", p1); } object p1 = defaultcache["Prod-1"]; if (p1==null) { p1 = GetProductFromDatabase(...) defaultcache.Put("Prod-1", p1); } Prod-1

Reference Data Example: product catalog Does not change dynamically, can be cached locally Can be reloaded from database Activity Data Example: Session, shopping cart Frequent changes, highly partitionable Needs high availability Resource Data Example: product inventory level Changes often, needs staleness decision Maybe "exceed first, apologize later", maybe centralized checks on update on partitioned DB

Optimistic (default) and pessimistic locking DataCacheItemVersion ver = default(DataCacheItemVersion); object itm = defaultCache.Get("region", "key", ref ver); // after change (throws an exception if modified in meantime) defaultCache.Put("region","key", itm, ver); DataCacheItemVersion ver = default(DataCacheItemVersion); object itm = defaultCache.Get("region", "key", ref ver); // after change (throws an exception if modified in meantime) defaultCache.Put("region","key", itm, ver); DataCacheLockHandle lockHandle; object itm = defaultCache.GetAndLock("region", "key", TimeSpan.FromSeconds(30), out lockHandle); // after change: defaultCache.PutAndUnlock("region", "key", itm, lockHandle, null); DataCacheLockHandle lockHandle; object itm = defaultCache.GetAndLock("region", "key", TimeSpan.FromSeconds(30), out lockHandle); // after change: defaultCache.PutAndUnlock("region", "key", itm, lockHandle, null);

Decide which properties you need Performance - Throughput and Latency Consistency - Staleness Eviction - Can the data be recreated? Security - Who can read/write Availability - Survive node failure Different set of requirements for each kind of data Configuration options in Velocity for these requirements

Velocity #1 Velocity #2 Velocity #3 Sess-1 (Primary) Sess-1 (Primary) sessionCache.put("Sess-1", se1); Sess-1 (Secondary) Sess-2 (Primary) Sess-2 (Primary) Sess-2 (Secondary) sessionCache.put("Sess-1", se1); sessionCache.put("Sess-2", se2); sessionCache.put("Sess-1", se1); sessionCache.put("Sess-2", se2);

Velocity #1 Velocity #2 Velocity #3 Sess-1 (Primary) Sess-1 (Primary) sessionCache.put("Sess-1", se1); Sess-1 (Secondary) Sess-2 (Primary) Sess-2 (Primary) Sess-2 (Secondary) sessionCache.put("Sess-1", se1); sessionCache.put("Sess-2", se2); sessionCache.put("Sess-1", se1); sessionCache.put("Sess-2", se2); Sess-2 (Primary) Sess-2 (Primary) Sess-2 (Secondary) Sess-1 (Secondary) Sess-1 (Secondary)

//... here comes the code... <add name="SessionStoreProvider" type="System.Data.Caching.SessionStoreProvider, ClientLibrary" cacheName="CacheName"/> //... here comes the code... <add name="SessionStoreProvider" type="System.Data.Caching.SessionStoreProvider, ClientLibrary" cacheName="CacheName"/>

Optional Support tagging, enumeration and bulk gets (CTP3) Every item in a region lives on the same node! Example use case Session state in which every property can be stored individually within one region Can be used as unit for deletion

CTP3: Notifications, callback for cache item changed Version 2: Core features Queryable caches with LINQ Cache-Through instead of cache-aside ASP.NET 4.0 Velocity as System.Caching provider Granular session updates (IPartialSessionState) Velocity as Output caching provider Higher compatibility with Azure and HPC

Presentations TechDays: MSDN Events: MSDN Webcasts: MSDN Events MSDN Events: Save the date: TechEd 2009 Europe, 9-13 November 2009, Berlinhttp:// MSDN Flash (our by weekly newsletter) Subscribe: MSDN Team Blog RSS: Developer User Groups & Communities Mobile Devices: Microsoft Solutions User Group Switzerland: Managed User Group of Switzerland: FoxPro User Group Switzerland:

Presentations TechDays: TechNet Events TechNet Events: Save the date: TechEd 2009 Europe, 9-13 November 2009, Berlinhttp://technet.microsoft.com/de-ch/bb aspx TechNet Flash (our by weekly newsletter) Subscribe: Schweizer IT Professional und TechNet Blog RSS: IT Professional User Groups & Communities SwissITPro User Group: NT Anwendergruppe Schweiz: PASS (Professional Association for SQL Server):

7. – 8. April 2010 Congress Center Basel

Classic Sponsoring Partners Media Partner Premium Sponsoring Partners

//... here comes the code...