SlideShare uma empresa Scribd logo
1 de 53
Scale Your Data Tier with
Windows Server AppFabric
Chris Dufour, ASP MVP
Software Architect, Compuware
chris.dufour@wigets.net
Agenda
The Problem
A Possible Solution
New Possibilities
What to do next
Simple
Do the simplest thing
that will possibly work
Scalability
Able to support the
required quality of
service as the system
load increases
-Wiktionary
Typical Web Architecture
‱Need to get routed to
same machine (i.e. sticky
sessions)
Users
‱Each machine round trips
for data
‱Data that is cached is
stored in the memory of
one server
Web
Tier
‱CPU and disk can get
saturated due to traffic
‱Service access is slow
Data
Tier
Web Explosion
Database
IIS/ASP.NET
Application
Web
Site’s too
slow!!
Database is
hot!!
Where did
my
shopping
cart go?
IIS/ASP.NET
Application
IIS/ASP.NET
Application
Servers are
crashing
Services are
slow
Agenda
The Problem
A Possible Solution
New Possibilities
What to do next
Data Near Processing
Database
Smart Client Browser
Cache
CacheCache
CacheCache
Good but

 Cache is scoped to machine / process
◩ Machines die
◩ Processes recycle
 Cache memory is limited
What if?
 You could have as much cache as you
wanted?
 You could share a giant cache across
servers, services and even clients?
 What if this was something you could
simply add to the platform for
1
free?
1Some features may require
certain editions of Windows
Server
Windows Server AppFabric
AppFabric
CACHING
MONITORING
WORKFLOW HOSTING
SERVICE HOSTING
SCALE OUTHIGH AVAILABILITY MANAGEMENT
Unified Cache View
What is AppFabric Caching?
 An explicit, distributed, in-memory
application cache for all kinds of data
Caching clients
can be 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
AppFabric Cache
‱No need for sticky sessionsUsers
‱Cached data available to all
servers
Web
Tier
‱Multiple machines means
scale and high-availability
‱Lots of cache memory
Caching
Tier
‱Reduces load on database
‱Duplicate Service Calls
eliminated
Data
Tier
Data Distribution - Partitioned Cache

 Web Tier
Cache
Tier
CacheService
CacheService
Cache
Service
A C EDB G IHF
ASP.Net App
Caching Client
ASP.Net App
Caching Client
ASP.Net App
Caching Client
AC ED BGI HF
 Scale on Data Size
◩ More machines => More memory to cache
 Scale on Cache Throughput
◩ More machines => keys distributed across more machines => better
throughput
Scale Test Output
Load
Throughput
Latency
1 Cache Server
As load increases,
throughput fails
to scale
latency increases
Caching
Tier
Add a Second Cache Server
Load
Throughput
Latency
Load Max
Throughput
increases
Latency decreases
Caching
Tier
Add a Second Cache Server
Load
Throughput
Latency
Caching
Tier
Associated Press
 Caches metadata
and news
 Serves 16 million
hits per day
 Increased the
amount of cached
data 6 times.
System.Web.Cache
AppFabric DataCache
Caching
Service
Caching
Service
Cachin
g
Service
Configuration Store
Install
AppFabric
Copy Client DLLs

Application Application Application<hosts>
<host name="BL1CDB8083714“
cachePort="22233"
cacheHostName="DistributedCacheService"/>

..
</hosts>
<localCache isEnabled=“true" ../>
<security 
 />
Caching Access
Layer
Caching Access
Layer
Caching Access
Layer
.NET 3.5 SP1 OR .NET 4
Configure
AppFabric
.NET 4
Update Web.config
Deployment
Usage Pattern – Cache Aside
(Explicit Caching)
// Read from Cache
Toy toyObj = (Toy)
catalog.Get("toy-101");
Application
Caching
Service
Database
// If Not present in the cache
if (toyObj == null)
{
// Read from backend..
toyObj = ReadFromDatabase();
// Populate Cache
catalog.Put("toy-101", toyObj);
return toyObj;
}
Caching Access
Layer
Administration
 PowerShell cmdlets are used to administer
the cache cluster
 Rich set of cmdlets for
◩ Cache cluster management
◩ Cache creation and monitoring
Hello AppFabric Cache
Using PowerShell
Remember – PowerShell can also
be called from .NET Code!
Security
 Domain Based Security Option
◩ Domain Account / Local Account based
Authentication
◩ Only authorized servers can join the cluster
◩ Only authorized clients can connect to the
cluster
 Transport Level Security
◩ Turn on/off Signing or Encryption
 Can turn off Cache Security
◩ Use Firewalls, IPSec, VLANs to protect cache
grant-cacheallowedclientaccount RedDomainMachine1$
grant-cacheallowedclientaccount RedDomainJohn
Logical Hierarchy
 Machine
 Host
◩ Physical processes hosting
AppFabric Caching instance.
 Named Caches
◩ Can span across machines
◩ Defined in the configuration file
 Regions
◩ Physically co-located Container of
Cache Items
◩ May be implicit or explicitly created
 Cache Item
◩ Key, Payload (Object ), Tags, TTL,
Timestamps, Version
Regions
Region A
Key Payload Tags
121 xxxx “Toy” “Child”
123 yyyy “Toy” “Chair”..
AppFabric
Caching
Service
Named Cache : Product Catalog
Named Cache : Electronics Inventory
AppFabric
Caching
Service
AppFabric
Caching
Service
AppFabric
Caching
Service
AppFabric Caching API
// Create instance of cachefactory (reads appconfig)
DataCacheFactory fac = new DataCacheFactory();
// Get a named cache from the factory
DataCache catalog = fac.GetCache("catalogcache");
// 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("toy-101", new Toy( .,.), “toyRegion”);
Catalog.Put("toypart-100", new ToyParts(
), “toyRegion”);
Toy toyObj = (Toy)catalog.Get("toy-101“,"toyRegion");
Access APIs – Tagging Items
Tag hotItem = new Tag("hotItem");
catalog.Put("toy-101", new Toy("Puzzle"),
new Tag[]{hotItem}, “toyRegion”);
catalog.Put("toy-102", new Toy("Bridge"), “toyRegion”);
// From the same or a different client
List<KeyValuePair<string, object>> toys =
catalog.GetAnyMatchingTag("toyRegion", hotItem);
Types of Data
Reference Activity Resource
Primary Read Only Read-Write Not
shared
Read-Write, Shared
Catalog Data Shopping Cart Auction Data/Seat
Assignment
Web Tier
Distributed Cache
Shopping Cart
Grocery
Catalog
Grocery
Inventory
Grocery Shop
Application
Application
AppFabric Caching Client
Reference Data – Performance
 Catalog data doesn’t change often
 Unnecessary network cost to access from different machines
 Solution – Local Cache
Put(K2, v3)
Routing Table
Cache2Cache1
Primary for K2,V2
K2, V2
Primary for K1,V1
K1, V1
Cache3
Primary for K3,V3
K3, V3
AppFabric Caching Client
Local Cache
Routing Table
K2,
V2
Get(K2)
Get(K2)
K2, V3
Reference Data – Bulk Get
 Bulk Fetch from region
◩ 200-300k ops per second
◩ Fewer network calls
Catalog.BulkGet(
new List<string>(){“toy-101”, “toy-102”} ,
“toyRegion”);
Activity Data – Session Integration


Session State
stored in
AppFabric
Caching
CacheService
Caching
Service
Load Balance Requests
No more sticky routing
CachingService
Scale your
Session Store
Dynamically
Highly
Available
Drop in AppFabric
Caching
SessionStoreProvider
Allows session state to be shared amongst multiple applications
Application
Caching Access
Layer
Application Application
Caching Access
Layer
Caching Access
Layer
<sessionState mode="Custom“
customProvider="SessionStoreProvider">
<providers>
<add name="SessionStoreProvider"
type=“Microsoft.Data.Caching.DataCacheSessionStoreProvider,
ClientLibrary“
cacheName="<YourNamedCache>"/>
</providers>
</sessionState>
Application
Application
(K2, V2)
Cache2Cache1 Cache3
Primary for
Activity Data - Availability
Get(K2)
Primary for Primary for
K3, V3
AppFabric Caching Client
Routing Table
K2,V2
PUT
Secondary for
K2, V2
K1, V1
Secondary for
K3, V3
Secondary for
K1, V1
AppFabric Caching Client
Routing Table
K2, V2
Replicatio
n AgentK2, V2
Resource Data - Optimistic Locking
 GetCacheItem returns a version object
 Every update to an object internally increments it's version
 Supply the version obtained along with the Put/Remove
 Put/Remove will succeed only if the passed in version matches
the version in the cache
Version Based Update
Time Client1 Client2 (Different Thread or
process)
T0 CacheItem item =
catalog.GetCacheItem(“PlayerRe
gion”, ”Zune”);
CacheItem item =
catalog.GetCacheItem(“PlayerRe
gion”,
”Zune”);
T1 ((ZuneObject)item.Object).inven
tory --;
((ZuneObject)item.Object).invent
ory--;
T2 catalog.Put(“PlayerRegion”,
“Zune”,
item.Object,
item.Version);
T3 catalog.Put(“PlayerRegion”,
“Zune”,
item.Object,
item.Version);
// Version mismatch
// Client must retry again
Two clients access the same
item
Both update the item
Second Client gets in first;
put succeeds because item
version matches; atomically
increments the version
First client tries put;
Fails because the versions
don’t match
K1
Resource Data - Pessimistic Locking
 Take locks on non-existent keys
◩ Allows you to co-ordinate calls for data
Client1:
GetAndLock ("k1")
Client2:
GetAndLock ("k1")
Client3:
Get ("k1")
Regular Get
succeeds
GetAndLock gets lock
handle
Other GetAndLock on
same item fails
Data Race
GET GETGET
Lock Non-Existent Key
GET/LOCK GET/LOCKGET/LOCK
Cache
Service
Caching
Service
Cache
Service
Composite Race
CALL WAITWAIT
Cache
Service
Caching
Service
Cache
Service
Composite Race
PUT
UNLOCK
GETGET
Cache
Service
Caching
Service
Cache
Service
Resource/Activity Data
– Tracking Changes
 Cache Event notifications
 Register on any client to notify changes
 Batched Notifications
DataCache.RegisterCacheLevelCallback(
int filter, DataCacheChangeCallback delegate);
DataCache.RegisterRegionLevelCallback(
String region, int filter, DataCacheChangeCallback delegate);
DataCache.RegisterKeyLevelCallback(
String region, String key, int filter, DataCacheChangeCallback delegate);
Application
Cache2Cache1
Primary for
K2, V2
Primary for
K1, V1
Cache3
Primary for
K3, V3
Scalable Notifications
AppFabric Caching Client
Routing Table
Register Notification for Key
“K3"
Map Keys
to Partition
Poll
Required Nodes
Nodes Return List of Changes
LSN Order
Partition: P2
Last LSN: 19
Call Delegate
Store Last LSN
Change Log
Partition P1
1 Add K2
2 Del K32
Change Log
(Partition P2)
18 Del K32
19 Del K43
Change Log
33 Add K1
34 Del K22
Agenda
The Problem
A Possible Solution
New Possibilities
What to do next
Data Center
Pre-Fetch
Hospital
Data Center
Pre-Fetch
HospitalRemote Clinic
WAN
Slow!!
Data Center
Pre-Fetch
HospitalRemote Clinic
CacheService
WAN
Agenda
The Problem
A Possible Solution
New Possibilities
What to do next
Web Platform Installer
Select Enterprise
Install AppFabric
Install AppFabric
AppFabric on MSDN
http://msdn.microsoft.com/AppFabric
Thanks to our contributors

Mais conteĂșdo relacionado

Mais procurados

Ehcache3 — JSR-107 on steroids
Ehcache3 — JSR-107 on steroidsEhcache3 — JSR-107 on steroids
Ehcache3 — JSR-107 on steroidsAlex Snaps
 
Branch office access with branch cache
Branch office access with branch cacheBranch office access with branch cache
Branch office access with branch cacheConcentrated Technology
 
Taming the Cloud Database with Apache jclouds, ApacheCon Europe 2014
Taming the Cloud Database with Apache jclouds, ApacheCon Europe 2014Taming the Cloud Database with Apache jclouds, ApacheCon Europe 2014
Taming the Cloud Database with Apache jclouds, ApacheCon Europe 2014zshoylev
 
Automating Your Azure Environment
Automating Your Azure EnvironmentAutomating Your Azure Environment
Automating Your Azure EnvironmentMichael Collier
 
Webcenter application performance tuning guide
Webcenter application performance tuning guideWebcenter application performance tuning guide
Webcenter application performance tuning guideVinay Kumar
 
What's New for the Windows Azure Developer? Lots! (July 2013)
What's New for the Windows Azure Developer?  Lots! (July 2013)What's New for the Windows Azure Developer?  Lots! (July 2013)
What's New for the Windows Azure Developer? Lots! (July 2013)Michael Collier
 
Advanced caching techniques with ehcache, big memory, terracotta, and coldfusion
Advanced caching techniques with ehcache, big memory, terracotta, and coldfusionAdvanced caching techniques with ehcache, big memory, terracotta, and coldfusion
Advanced caching techniques with ehcache, big memory, terracotta, and coldfusionColdFusionConference
 
Windows Azure Mobile Services - The Perfect Partner
Windows Azure Mobile Services - The Perfect PartnerWindows Azure Mobile Services - The Perfect Partner
Windows Azure Mobile Services - The Perfect PartnerMichael Collier
 
Inside Azure Diagnostics
Inside Azure DiagnosticsInside Azure Diagnostics
Inside Azure DiagnosticsMichael Collier
 
How to Make SQL Server Go Faster
How to Make SQL Server Go FasterHow to Make SQL Server Go Faster
How to Make SQL Server Go FasterBrent Ozar
 
Azure SQL - more or/and less than SQL Server
Azure SQL - more or/and less than SQL ServerAzure SQL - more or/and less than SQL Server
Azure SQL - more or/and less than SQL ServerRafaƂ Hryniewski
 
Get more than a cache back! The Microsoft Azure Redis Cache (NDC Oslo)
Get more than a cache back! The Microsoft Azure Redis Cache (NDC Oslo)Get more than a cache back! The Microsoft Azure Redis Cache (NDC Oslo)
Get more than a cache back! The Microsoft Azure Redis Cache (NDC Oslo)Maarten Balliauw
 
Use case for using the ElastiCache for Redis in production
Use case for using the ElastiCache for Redis in productionUse case for using the ElastiCache for Redis in production
Use case for using the ElastiCache for Redis in production矄教 æœŹé–“
 
App Grid Dev With Coherence
App Grid Dev With CoherenceApp Grid Dev With Coherence
App Grid Dev With CoherenceJames Bayer
 
Using Oracle Database with Amazon Web Services
Using Oracle Database with Amazon Web ServicesUsing Oracle Database with Amazon Web Services
Using Oracle Database with Amazon Web Servicesguest484c12
 
Docker Java App with MariaDB – Deployment in Less than a Minute
Docker Java App with MariaDB – Deployment in Less than a MinuteDocker Java App with MariaDB – Deployment in Less than a Minute
Docker Java App with MariaDB – Deployment in Less than a Minutedchq
 
Developing on SQL Azure
Developing on SQL AzureDeveloping on SQL Azure
Developing on SQL AzureIke Ellis
 
A lab tutorial about How you can get started and automate DB12c Multitenant l...
A lab tutorial about How you can get started and automate DB12c Multitenant l...A lab tutorial about How you can get started and automate DB12c Multitenant l...
A lab tutorial about How you can get started and automate DB12c Multitenant l...Hari Srinivasan
 
Handling Relational Data in a Distributed Cache
Handling Relational Data in a Distributed CacheHandling Relational Data in a Distributed Cache
Handling Relational Data in a Distributed CacheAlachisoft
 

Mais procurados (20)

Ehcache3 — JSR-107 on steroids
Ehcache3 — JSR-107 on steroidsEhcache3 — JSR-107 on steroids
Ehcache3 — JSR-107 on steroids
 
Branch office access with branch cache
Branch office access with branch cacheBranch office access with branch cache
Branch office access with branch cache
 
Taming the Cloud Database with Apache jclouds, ApacheCon Europe 2014
Taming the Cloud Database with Apache jclouds, ApacheCon Europe 2014Taming the Cloud Database with Apache jclouds, ApacheCon Europe 2014
Taming the Cloud Database with Apache jclouds, ApacheCon Europe 2014
 
Automating Your Azure Environment
Automating Your Azure EnvironmentAutomating Your Azure Environment
Automating Your Azure Environment
 
Webcenter application performance tuning guide
Webcenter application performance tuning guideWebcenter application performance tuning guide
Webcenter application performance tuning guide
 
What's New for the Windows Azure Developer? Lots! (July 2013)
What's New for the Windows Azure Developer?  Lots! (July 2013)What's New for the Windows Azure Developer?  Lots! (July 2013)
What's New for the Windows Azure Developer? Lots! (July 2013)
 
Advanced caching techniques with ehcache, big memory, terracotta, and coldfusion
Advanced caching techniques with ehcache, big memory, terracotta, and coldfusionAdvanced caching techniques with ehcache, big memory, terracotta, and coldfusion
Advanced caching techniques with ehcache, big memory, terracotta, and coldfusion
 
Windows Azure Mobile Services - The Perfect Partner
Windows Azure Mobile Services - The Perfect PartnerWindows Azure Mobile Services - The Perfect Partner
Windows Azure Mobile Services - The Perfect Partner
 
Inside Azure Diagnostics
Inside Azure DiagnosticsInside Azure Diagnostics
Inside Azure Diagnostics
 
How to Make SQL Server Go Faster
How to Make SQL Server Go FasterHow to Make SQL Server Go Faster
How to Make SQL Server Go Faster
 
Azure SQL - more or/and less than SQL Server
Azure SQL - more or/and less than SQL ServerAzure SQL - more or/and less than SQL Server
Azure SQL - more or/and less than SQL Server
 
Get more than a cache back! The Microsoft Azure Redis Cache (NDC Oslo)
Get more than a cache back! The Microsoft Azure Redis Cache (NDC Oslo)Get more than a cache back! The Microsoft Azure Redis Cache (NDC Oslo)
Get more than a cache back! The Microsoft Azure Redis Cache (NDC Oslo)
 
Use case for using the ElastiCache for Redis in production
Use case for using the ElastiCache for Redis in productionUse case for using the ElastiCache for Redis in production
Use case for using the ElastiCache for Redis in production
 
2310 b 15
2310 b 152310 b 15
2310 b 15
 
App Grid Dev With Coherence
App Grid Dev With CoherenceApp Grid Dev With Coherence
App Grid Dev With Coherence
 
Using Oracle Database with Amazon Web Services
Using Oracle Database with Amazon Web ServicesUsing Oracle Database with Amazon Web Services
Using Oracle Database with Amazon Web Services
 
Docker Java App with MariaDB – Deployment in Less than a Minute
Docker Java App with MariaDB – Deployment in Less than a MinuteDocker Java App with MariaDB – Deployment in Less than a Minute
Docker Java App with MariaDB – Deployment in Less than a Minute
 
Developing on SQL Azure
Developing on SQL AzureDeveloping on SQL Azure
Developing on SQL Azure
 
A lab tutorial about How you can get started and automate DB12c Multitenant l...
A lab tutorial about How you can get started and automate DB12c Multitenant l...A lab tutorial about How you can get started and automate DB12c Multitenant l...
A lab tutorial about How you can get started and automate DB12c Multitenant l...
 
Handling Relational Data in a Distributed Cache
Handling Relational Data in a Distributed CacheHandling Relational Data in a Distributed Cache
Handling Relational Data in a Distributed Cache
 

Destaque

How to think like a startup
How to think like a startupHow to think like a startup
How to think like a startupLoic Le Meur
 
Teaching Students with Emojis, Emoticons, & Textspeak
Teaching Students with Emojis, Emoticons, & TextspeakTeaching Students with Emojis, Emoticons, & Textspeak
Teaching Students with Emojis, Emoticons, & TextspeakShelly Sanchez Terrell
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerLuminary Labs
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
 

Destaque (6)

Scaling Out .Net
Scaling Out .NetScaling Out .Net
Scaling Out .Net
 
Inaugural Addresses
Inaugural AddressesInaugural Addresses
Inaugural Addresses
 
How to think like a startup
How to think like a startupHow to think like a startup
How to think like a startup
 
Teaching Students with Emojis, Emoticons, & Textspeak
Teaching Students with Emojis, Emoticons, & TextspeakTeaching Students with Emojis, Emoticons, & Textspeak
Teaching Students with Emojis, Emoticons, & Textspeak
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 

Semelhante a Scale Your Data Tier with Windows Server AppFabric

Microsoft Windows Server AppFabric
Microsoft Windows Server AppFabricMicrosoft Windows Server AppFabric
Microsoft Windows Server AppFabricMark Ginnebaugh
 
TechDays 2010 Portugal - Scaling your data tier with app fabric 16x9
TechDays 2010 Portugal - Scaling your data tier with app fabric 16x9TechDays 2010 Portugal - Scaling your data tier with app fabric 16x9
TechDays 2010 Portugal - Scaling your data tier with app fabric 16x9Nuno Godinho
 
Solid fire cloudstack storage overview - CloudStack European User Group
Solid fire cloudstack storage overview - CloudStack European User GroupSolid fire cloudstack storage overview - CloudStack European User Group
Solid fire cloudstack storage overview - CloudStack European User GroupShapeBlue
 
CloudStack Meetup London - Primary Storage Presentation by SolidFire
CloudStack Meetup London - Primary Storage Presentation by SolidFire CloudStack Meetup London - Primary Storage Presentation by SolidFire
CloudStack Meetup London - Primary Storage Presentation by SolidFire NetApp
 
Application Scalability in Server Farms - NCache
Application Scalability in Server Farms - NCacheApplication Scalability in Server Farms - NCache
Application Scalability in Server Farms - NCacheAlachisoft
 
DCEU 18: Use Cases and Practical Solutions for Docker Container Storage on Sw...
DCEU 18: Use Cases and Practical Solutions for Docker Container Storage on Sw...DCEU 18: Use Cases and Practical Solutions for Docker Container Storage on Sw...
DCEU 18: Use Cases and Practical Solutions for Docker Container Storage on Sw...Docker, Inc.
 
NCache 3.8 SP3
NCache 3.8 SP3NCache 3.8 SP3
NCache 3.8 SP3wesnoor
 
Where is my cache architectural patterns for caching microservices by example
Where is my cache architectural patterns for caching microservices by exampleWhere is my cache architectural patterns for caching microservices by example
Where is my cache architectural patterns for caching microservices by exampleRafaƂ Leszko
 
Developing High Performance and Scalable ColdFusion Application Using Terraco...
Developing High Performance and Scalable ColdFusion Application Using Terraco...Developing High Performance and Scalable ColdFusion Application Using Terraco...
Developing High Performance and Scalable ColdFusion Application Using Terraco...ColdFusionConference
 
Developing High Performance and Scalable ColdFusion Applications Using Terrac...
Developing High Performance and Scalable ColdFusion Applications Using Terrac...Developing High Performance and Scalable ColdFusion Applications Using Terrac...
Developing High Performance and Scalable ColdFusion Applications Using Terrac...Shailendra Prasad
 
11g R2
11g R211g R2
11g R2afa reg
 
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...Cisco DevNet
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetesBen Hall
 
Windows Server AppFabric Caching - What it is & when you should use it?
Windows Server AppFabric Caching - What it is & when you should use it?Windows Server AppFabric Caching - What it is & when you should use it?
Windows Server AppFabric Caching - What it is & when you should use it?Robert MacLean
 
Logging for Production Systems in The Container Era
Logging for Production Systems in The Container EraLogging for Production Systems in The Container Era
Logging for Production Systems in The Container EraSadayuki Furuhashi
 
Caching on the web
Caching on the webCaching on the web
Caching on the webJean Carlo Emer
 

Semelhante a Scale Your Data Tier with Windows Server AppFabric (20)

Microsoft Windows Server AppFabric
Microsoft Windows Server AppFabricMicrosoft Windows Server AppFabric
Microsoft Windows Server AppFabric
 
TechDays 2010 Portugal - Scaling your data tier with app fabric 16x9
TechDays 2010 Portugal - Scaling your data tier with app fabric 16x9TechDays 2010 Portugal - Scaling your data tier with app fabric 16x9
TechDays 2010 Portugal - Scaling your data tier with app fabric 16x9
 
AppFabric Velocity
AppFabric VelocityAppFabric Velocity
AppFabric Velocity
 
Solid fire cloudstack storage overview - CloudStack European User Group
Solid fire cloudstack storage overview - CloudStack European User GroupSolid fire cloudstack storage overview - CloudStack European User Group
Solid fire cloudstack storage overview - CloudStack European User Group
 
CloudStack Meetup London - Primary Storage Presentation by SolidFire
CloudStack Meetup London - Primary Storage Presentation by SolidFire CloudStack Meetup London - Primary Storage Presentation by SolidFire
CloudStack Meetup London - Primary Storage Presentation by SolidFire
 
Application Scalability in Server Farms - NCache
Application Scalability in Server Farms - NCacheApplication Scalability in Server Farms - NCache
Application Scalability in Server Farms - NCache
 
DCEU 18: Use Cases and Practical Solutions for Docker Container Storage on Sw...
DCEU 18: Use Cases and Practical Solutions for Docker Container Storage on Sw...DCEU 18: Use Cases and Practical Solutions for Docker Container Storage on Sw...
DCEU 18: Use Cases and Practical Solutions for Docker Container Storage on Sw...
 
NCache 3.8 SP3
NCache 3.8 SP3NCache 3.8 SP3
NCache 3.8 SP3
 
Where is my cache architectural patterns for caching microservices by example
Where is my cache architectural patterns for caching microservices by exampleWhere is my cache architectural patterns for caching microservices by example
Where is my cache architectural patterns for caching microservices by example
 
App fabric introduction
App fabric introductionApp fabric introduction
App fabric introduction
 
Developing High Performance and Scalable ColdFusion Application Using Terraco...
Developing High Performance and Scalable ColdFusion Application Using Terraco...Developing High Performance and Scalable ColdFusion Application Using Terraco...
Developing High Performance and Scalable ColdFusion Application Using Terraco...
 
Developing High Performance and Scalable ColdFusion Applications Using Terrac...
Developing High Performance and Scalable ColdFusion Applications Using Terrac...Developing High Performance and Scalable ColdFusion Applications Using Terrac...
Developing High Performance and Scalable ColdFusion Applications Using Terrac...
 
2310 b 15
2310 b 152310 b 15
2310 b 15
 
11g R2
11g R211g R2
11g R2
 
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetes
 
Azure appfabric caching intro and tips
Azure appfabric caching intro and tipsAzure appfabric caching intro and tips
Azure appfabric caching intro and tips
 
Windows Server AppFabric Caching - What it is & when you should use it?
Windows Server AppFabric Caching - What it is & when you should use it?Windows Server AppFabric Caching - What it is & when you should use it?
Windows Server AppFabric Caching - What it is & when you should use it?
 
Logging for Production Systems in The Container Era
Logging for Production Systems in The Container EraLogging for Production Systems in The Container Era
Logging for Production Systems in The Container Era
 
Caching on the web
Caching on the webCaching on the web
Caching on the web
 

Último

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 

Último (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 

Scale Your Data Tier with Windows Server AppFabric

  • 1. Scale Your Data Tier with Windows Server AppFabric Chris Dufour, ASP MVP Software Architect, Compuware chris.dufour@wigets.net
  • 2. Agenda The Problem A Possible Solution New Possibilities What to do next
  • 3. Simple Do the simplest thing that will possibly work
  • 4. Scalability Able to support the required quality of service as the system load increases -Wiktionary
  • 5. Typical Web Architecture ‱Need to get routed to same machine (i.e. sticky sessions) Users ‱Each machine round trips for data ‱Data that is cached is stored in the memory of one server Web Tier ‱CPU and disk can get saturated due to traffic ‱Service access is slow Data Tier
  • 6. Web Explosion Database IIS/ASP.NET Application Web Site’s too slow!! Database is hot!! Where did my shopping cart go? IIS/ASP.NET Application IIS/ASP.NET Application Servers are crashing Services are slow
  • 7. Agenda The Problem A Possible Solution New Possibilities What to do next
  • 8. Data Near Processing Database Smart Client Browser Cache CacheCache CacheCache
  • 9. Good but
  Cache is scoped to machine / process ◩ Machines die ◩ Processes recycle  Cache memory is limited
  • 10. What if?  You could have as much cache as you wanted?  You could share a giant cache across servers, services and even clients?  What if this was something you could simply add to the platform for 1 free? 1Some features may require certain editions of Windows Server
  • 11. Windows Server AppFabric AppFabric CACHING MONITORING WORKFLOW HOSTING SERVICE HOSTING SCALE OUTHIGH AVAILABILITY MANAGEMENT
  • 12. Unified Cache View What is AppFabric Caching?  An explicit, distributed, in-memory application cache for all kinds of data Caching clients can be 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
  • 13. AppFabric Cache ‱No need for sticky sessionsUsers ‱Cached data available to all servers Web Tier ‱Multiple machines means scale and high-availability ‱Lots of cache memory Caching Tier ‱Reduces load on database ‱Duplicate Service Calls eliminated Data Tier
  • 14. Data Distribution - Partitioned Cache 
 Web Tier Cache Tier CacheService CacheService Cache Service A C EDB G IHF ASP.Net App Caching Client ASP.Net App Caching Client ASP.Net App Caching Client AC ED BGI HF  Scale on Data Size ◩ More machines => More memory to cache  Scale on Cache Throughput ◩ More machines => keys distributed across more machines => better throughput
  • 15. Scale Test Output Load Throughput Latency 1 Cache Server As load increases, throughput fails to scale latency increases Caching Tier
  • 16. Add a Second Cache Server Load Throughput Latency Load Max Throughput increases Latency decreases Caching Tier
  • 17. Add a Second Cache Server Load Throughput Latency Caching Tier
  • 18. Associated Press  Caches metadata and news  Serves 16 million hits per day  Increased the amount of cached data 6 times.
  • 21. Caching Service Caching Service Cachin g Service Configuration Store Install AppFabric Copy Client DLLs 
Application Application Application<hosts> <host name="BL1CDB8083714“ cachePort="22233" cacheHostName="DistributedCacheService"/> 
.. </hosts> <localCache isEnabled=“true" ../> <security 
 /> Caching Access Layer Caching Access Layer Caching Access Layer .NET 3.5 SP1 OR .NET 4 Configure AppFabric .NET 4 Update Web.config Deployment
  • 22. Usage Pattern – Cache Aside (Explicit Caching) // Read from Cache Toy toyObj = (Toy) catalog.Get("toy-101"); Application Caching Service Database // If Not present in the cache if (toyObj == null) { // Read from backend.. toyObj = ReadFromDatabase(); // Populate Cache catalog.Put("toy-101", toyObj); return toyObj; } Caching Access Layer
  • 23. Administration  PowerShell cmdlets are used to administer the cache cluster  Rich set of cmdlets for ◩ Cache cluster management ◩ Cache creation and monitoring
  • 25. Using PowerShell Remember – PowerShell can also be called from .NET Code!
  • 26. Security  Domain Based Security Option ◩ Domain Account / Local Account based Authentication ◩ Only authorized servers can join the cluster ◩ Only authorized clients can connect to the cluster  Transport Level Security ◩ Turn on/off Signing or Encryption  Can turn off Cache Security ◩ Use Firewalls, IPSec, VLANs to protect cache grant-cacheallowedclientaccount RedDomainMachine1$ grant-cacheallowedclientaccount RedDomainJohn
  • 27. Logical Hierarchy  Machine  Host ◩ Physical processes hosting AppFabric Caching instance.  Named Caches ◩ Can span across machines ◩ Defined in the configuration file  Regions ◩ Physically co-located Container of Cache Items ◩ May be implicit or explicitly created  Cache Item ◩ Key, Payload (Object ), Tags, TTL, Timestamps, Version Regions Region A Key Payload Tags 121 xxxx “Toy” “Child” 123 yyyy “Toy” “Chair”.. AppFabric Caching Service Named Cache : Product Catalog Named Cache : Electronics Inventory AppFabric Caching Service AppFabric Caching Service AppFabric Caching Service
  • 28. AppFabric Caching API // Create instance of cachefactory (reads appconfig) DataCacheFactory fac = new DataCacheFactory(); // Get a named cache from the factory DataCache catalog = fac.GetCache("catalogcache"); // 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("toy-101", new Toy( .,.), “toyRegion”); Catalog.Put("toypart-100", new ToyParts(
), “toyRegion”); Toy toyObj = (Toy)catalog.Get("toy-101“,"toyRegion");
  • 29. Access APIs – Tagging Items Tag hotItem = new Tag("hotItem"); catalog.Put("toy-101", new Toy("Puzzle"), new Tag[]{hotItem}, “toyRegion”); catalog.Put("toy-102", new Toy("Bridge"), “toyRegion”); // From the same or a different client List<KeyValuePair<string, object>> toys = catalog.GetAnyMatchingTag("toyRegion", hotItem);
  • 30. Types of Data Reference Activity Resource Primary Read Only Read-Write Not shared Read-Write, Shared Catalog Data Shopping Cart Auction Data/Seat Assignment Web Tier Distributed Cache Shopping Cart Grocery Catalog Grocery Inventory Grocery Shop
  • 31. Application Application AppFabric Caching Client Reference Data – Performance  Catalog data doesn’t change often  Unnecessary network cost to access from different machines  Solution – Local Cache Put(K2, v3) Routing Table Cache2Cache1 Primary for K2,V2 K2, V2 Primary for K1,V1 K1, V1 Cache3 Primary for K3,V3 K3, V3 AppFabric Caching Client Local Cache Routing Table K2, V2 Get(K2) Get(K2) K2, V3
  • 32. Reference Data – Bulk Get  Bulk Fetch from region ◩ 200-300k ops per second ◩ Fewer network calls Catalog.BulkGet( new List<string>(){“toy-101”, “toy-102”} , “toyRegion”);
  • 33. Activity Data – Session Integration 
 Session State stored in AppFabric Caching CacheService Caching Service Load Balance Requests No more sticky routing CachingService Scale your Session Store Dynamically Highly Available Drop in AppFabric Caching SessionStoreProvider Allows session state to be shared amongst multiple applications Application Caching Access Layer Application Application Caching Access Layer Caching Access Layer <sessionState mode="Custom“ customProvider="SessionStoreProvider"> <providers> <add name="SessionStoreProvider" type=“Microsoft.Data.Caching.DataCacheSessionStoreProvider, ClientLibrary“ cacheName="<YourNamedCache>"/> </providers> </sessionState>
  • 34. Application Application (K2, V2) Cache2Cache1 Cache3 Primary for Activity Data - Availability Get(K2) Primary for Primary for K3, V3 AppFabric Caching Client Routing Table K2,V2 PUT Secondary for K2, V2 K1, V1 Secondary for K3, V3 Secondary for K1, V1 AppFabric Caching Client Routing Table K2, V2 Replicatio n AgentK2, V2
  • 35. Resource Data - Optimistic Locking  GetCacheItem returns a version object  Every update to an object internally increments it's version  Supply the version obtained along with the Put/Remove  Put/Remove will succeed only if the passed in version matches the version in the cache Version Based Update Time Client1 Client2 (Different Thread or process) T0 CacheItem item = catalog.GetCacheItem(“PlayerRe gion”, ”Zune”); CacheItem item = catalog.GetCacheItem(“PlayerRe gion”, ”Zune”); T1 ((ZuneObject)item.Object).inven tory --; ((ZuneObject)item.Object).invent ory--; T2 catalog.Put(“PlayerRegion”, “Zune”, item.Object, item.Version); T3 catalog.Put(“PlayerRegion”, “Zune”, item.Object, item.Version); // Version mismatch // Client must retry again Two clients access the same item Both update the item Second Client gets in first; put succeeds because item version matches; atomically increments the version First client tries put; Fails because the versions don’t match
  • 36. K1 Resource Data - Pessimistic Locking  Take locks on non-existent keys ◩ Allows you to co-ordinate calls for data Client1: GetAndLock ("k1") Client2: GetAndLock ("k1") Client3: Get ("k1") Regular Get succeeds GetAndLock gets lock handle Other GetAndLock on same item fails
  • 38. Lock Non-Existent Key GET/LOCK GET/LOCKGET/LOCK Cache Service Caching Service Cache Service
  • 41. Resource/Activity Data – Tracking Changes  Cache Event notifications  Register on any client to notify changes  Batched Notifications DataCache.RegisterCacheLevelCallback( int filter, DataCacheChangeCallback delegate); DataCache.RegisterRegionLevelCallback( String region, int filter, DataCacheChangeCallback delegate); DataCache.RegisterKeyLevelCallback( String region, String key, int filter, DataCacheChangeCallback delegate);
  • 42. Application Cache2Cache1 Primary for K2, V2 Primary for K1, V1 Cache3 Primary for K3, V3 Scalable Notifications AppFabric Caching Client Routing Table Register Notification for Key “K3" Map Keys to Partition Poll Required Nodes Nodes Return List of Changes LSN Order Partition: P2 Last LSN: 19 Call Delegate Store Last LSN Change Log Partition P1 1 Add K2 2 Del K32 Change Log (Partition P2) 18 Del K32 19 Del K43 Change Log 33 Add K1 34 Del K22
  • 43. Agenda The Problem A Possible Solution New Possibilities What to do next
  • 47. Agenda The Problem A Possible Solution New Possibilities What to do next
  • 53. Thanks to our contributors

Notas do Editor

  1. In the future we will be bringing these capabilities to the cloud and bringing some of the cloud capabilities such as service bus and access control to the on-premise server solution as well.