yves chtepenko architecte de solution cambridge technology partners
TRANSCRIPT
![Page 1: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/1.jpg)
Projet “Velocity” le cache mémoire
distribuéYves ChtepenkoArchitecte de solutionCambridge Technology Partners
![Page 2: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/2.jpg)
Premium Partner
![Page 3: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/3.jpg)
MissionTo deliver high Business value through Innovative IT and Management Consulting solutions and services.
Customer-Centric Built on a unique combination of client partnerships, leadership, technology expertise, partnership, and people to lead today's companies.
Zurich40 Employees
Budapest 40 Consultants
Nyon170 Employees
India 4000+ Consultants
Strong local presenceEstablished in Switzerland since 1996 with more than 210 employees in Geneva and Zurich with a Global Delivery Center in Budapest and a strategic partnership in India.
Microsoft Gold PartnerOne of the oldest and most active Microsoft Partners in Switzerland.
Visit our Multi-touch Mobile Collaboration Platform !!!
![Page 4: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/4.jpg)
Agenda
Etat des lieuxPrésentation du projet « Velocity »Velocity en actionDémoFutures évolutionsQuestions & Réponses
![Page 5: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/5.jpg)
Le projet «Velocity»
Etat des lieux
![Page 6: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/6.jpg)
Le cache dans les applications
Accès rapide aux données de références
Local à chaque instance de l’application
Evolution des architecturesSoftware as Service, multi-tiers Sources de données multiples: db, web serviceAgrégation des donnéesAmélioration des performances
![Page 7: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/7.jpg)
Le projet «Velocity»
Présentation
![Page 8: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/8.jpg)
Qu’est ce que Velocity?
C’est un cache mémoire distribué pour les applications, pour tout type d’objet: objet de la CLR, XML ou objets binaires.Velocity permet de «fusionner» la mémoire des machines et d’en proposer une vue unifiée pour les clients du service.
Vue unifiée du cache
![Page 9: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/9.jpg)
Scenarios d’utilisation
Données de référenceAccès en lecture seule par un grand nombre
Données d’activitéLecture et écriture par un seul processus
RessourcesAccès en lecture partagé, écriture exclusive
![Page 10: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/10.jpg)
Caractéristiques principales
PerformanceHaute disponibilitéAdaptation à la charge Répartition de charge automatiqueIntégration avec ASP.NETInstallé en tant que service ou embarqué.Outils d’administration et de surveillance
![Page 11: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/11.jpg)
Quelle est sa place?
…Application/ Web Tier
Clients
Database
Cloud Data Tier
Application
Application
Application
Velocity ClientLocal Cache
Velocity ClientLocal Cache
Velocity ClientLocal Cache
Server 1 Server 2 Server 3
Velo
city
Serv
ice
Velo
city
Serv
ice
Velo
city
Serv
ice
Server Side Callbacks
Cache Tier
![Page 12: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/12.jpg)
Déploiement
…
Server 1 Server 2 Server 3
Application/ Web Tier
Cache Server Tier
paramètres de Configurationpolices de cache Globalesinformations de partions(Base de données, fichier xml)
Velo
city
Serv
ice
Client Velocity Client VelocityClient Velocity
Utilisateurs
Velo
city
Serv
ice
Velo
city
Serv
ice
Assemblies
Setup
Routing table
K1, v1
Monitoring
Le premier installé
devient le nœud maître
![Page 13: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/13.jpg)
Structure logique
HostProcessus qui héberge l’instance de Velocity.
Caches nommésPeuvent s’étendre au travers des machinesDéfinis dans le fichier de configuration
RégionsConteneurs de d’éléments du cachePeuvent être créées explicitement ou implicitement
Eléments du cacheClef , Objet, Tags, TTL, Timestamps, Version
Régions Région A
Clef Objet Tags Clef Objet Tags 121 xxxx “Toy” “Child”
123 yyyy “Toy” “Chair”..
Velocity ServiceCache nommé: Catalogue de produits
Cache nommé: Inventaire
Velocity Service
Velocity Service
Velocity Service
![Page 14: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/14.jpg)
La table de routage
Un sous-ensemble des informations globales de partition et de connexions aux différents nœudsConstruite et maintenue de façon incrémentale
Comme les tables DNS
Les serveurs ont une table de routageOptionnel du côté client, elle permet d’effectuer les opérations (e.g., GET, PUT) directement sur les bons nœuds.
![Page 15: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/15.jpg)
Application
Cache2Cache1
Primaire pour K2
K2, V1
Primaire pour K1
K1, V1
Cache3
Primaire pour K3
K3, V3
Velocity Client2
Le Cache Partitionné
Get(K2)
K2, V1
Velocity Client1PUT
Routing Table
Routing Table
Routing Table
![Page 16: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/16.jpg)
Application
Cache2Cache1
Primaire pour K2
K2, V1
Primaire pour K1
K1, V1
Cache3
Primaire pour K3
K3, V3
Velocity Client2
Table de routage côté client
Get(K2)
Routing Table
K2, V1
Velocity Client1
Routing Table
PUT
Routing Table
Routing Table
Routing Table
![Page 17: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/17.jpg)
Le Cache distribuéApplication
Cache2Cache1
K2, V1
Cache3
Velocity Client2
Get(K2)
K2, V1
Velocity Client1PUT
K2, V1K2, V1
![Page 18: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/18.jpg)
Velocity Client
Cache Local
Local CacheLe cache local accélère l’accès au cache.Il utilise le mécanisme de notification pour se rafraichir lorsque les éléments du cache changent.Put(K2, V1)
Cache2Cache1
Primaire pour K2
K2, V1
Primaire pour K1
K1, V1
Cache3
Primaire pour K3
K3, V3
Velocity Client
Cache Local K2, V1
Get(K2)
Get(K2)
Routing Table
Routing Table
Routing Table
Routing Table
Routing Table
Routing Table
![Page 19: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/19.jpg)
Adaptation à la charge
Velo
city
Serv
ice
Velo
city
Serv
ice
Velo
city
Serv
ice
Serveur Maître
Velo
city
Serv
ice
Velo
city
Serv
ice
Velo
city
Serv
ice
Velo
city
Serv
ice
Velo
city
Serv
ice
Limité à 10 si fichier de configuration XMLNombre de nœuds quasiment illimité si configuration dans une base de donnée
![Page 20: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/20.jpg)
Application(K2, V2)
Cache2Cache1 Cache3
Primaire pour(K2,V2)
Haute Disponibilité
Primaire pour (K1,V1)
Primaire pour (K3,V3)
K3, V3
Velocity Client1
Routing Table
K2
, V2
PUT
Secondaire pour(K2,V2), (K3,V3)
K2, V2
K1, V1
K3, V3
Secondaire pour(K1,V1), (K3,V3)
K3, V3
K1, V1
Secondaire pour(K1,V1), (K2,V2)
K1, V1
K2, V2
K2, V2
Replication Agent
• Mets l’opération dans la file d’exécution
• Exécute l’opération localement
• Propage l’opération sur les nœuds secondaires
• Attends pour obtenir le quorum
• rends le contrôle
Get(K2)
Velocity Client
Routing Table
![Page 21: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/21.jpg)
Cache4
Primaire pour (K4,V4)
K4, V4
Secondary for
K1, V1
Partition Manager
Global Partition Map
Cache2Cache1 Cache3
Primaire pour (K2,V2)
Failover
Primaire pour(K3,V3)
Routing Table
Secondaire pour
K2, V2
K1, V1
Secondaire pour Secondaire pour
K2, V2
K2, V2
Replication Agent
ReconfigurationAgent
Local Partition Map
Routing Table
Routing Table
Replication Agent
ReconfigurationAgent
Local Partition Map
Détecte le défaut de Cache 2.
Notifies PM (sur Cache4)
Choisis Cache1 comme primaire pour K2 Envoie des messages à Cache1 and Cache3 pour la reconfiguration. Met à jour le GPM
Le PM analyse les infos des partitions de Cache2 pour élire le primaire pour k2
Cache1 interroge Cache2 pour savoir si il a une version plus à jour que la sienne.
Cache1 se reconfigure comme cache primaire pour K2
K1, V1
![Page 22: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/22.jpg)
Le projet «Velocity»
démo
![Page 23: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/23.jpg)
Mise à jour optimiste
Mise à jour pessimisteVelocity Cache
Accès concurrent
GetCacheItem (k1,v1)
GetCacheItem (k1,v1)
PutCacheItem
(k1,v1)
PutCacheItem (k1,v1)
K1,V1 K1,V2K1,V1 K1,V2
Velocity Cache
GetAndLock (k1,v1)
GetAndLock (k1,v1)
Get(k1,v1)
PutAndUnlock
(k1,v1)
K1,V1 K1,V1K1,V1 K1,V2
Client 2
Client 1
![Page 24: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/24.jpg)
Le mécanisme d’éviction
Eviction sur expiration seulementLibère les éléments expiré. Périodique par partition
Eviction forcée Libère les éléments expirés et non expirés en fonction de leur fréquence d’accèsPar requêtePeut être désactivé.
Eviction en fonction de la disponibilité de la mémoire
Un processus est chargé de surveillé la disponibilité de la mémoire (polling per second) et évite l’écriture sur disqueDéclenche l’éviction forcée à 85% d’utilisation de la mémoire système pour en libérer 5%.
![Page 25: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/25.jpg)
Notification d'événement (v1)
Abonnement aux changements de données dans le cache
Appel d’un délégué sur le client quand un changement survient
Notifications au niveau objet, région et cache nommé
![Page 26: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/26.jpg)
Sécurité (V1)
Option de désactivation de la sécuritéOption de sécurité par jeton
On assigne un jeton au niveau du cache nomméLes applications doivent utiliser GetCache() avec ce jeton.
Option de sécurité par compte de service
Authentification d’un compte de serviceAssignation d’un compte de service au niveau du cache nommé.
Sécurité au niveau du transportOptions de sécurité de WCFE.g., Encryptions
![Page 27: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/27.jpg)
Administration & Monitoring
Logging Provider model; par défault ETW, dans des fichiers log.
AdministrationCommandes Powershell
Démarrage and et arrêt du cluster ou service, configure caches nommées.Statistiques du cache
Intégration à Perfmon
![Page 28: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/28.jpg)
Déploiement – pré requis
Versions de Windows supportéesXP sp3 Vista SP1Serveur 2003Serveur 2008
Framework 3.5 (utilise WCF)Windows PowerShell
![Page 29: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/29.jpg)
Le projet «Velocity»
démo
![Page 30: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/30.jpg)
Le projet «Velocity»
Post V1
![Page 31: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/31.jpg)
Persistance
Callback for read-through, write-behind Specified at Named Cache LevelRead-Through
Called when item not present in cache
Callback returns the object/serialized
bytes
Write-BehindWrites to cache are queued
Callback called asynchronously in batches
Re-tries upon failure
![Page 32: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/32.jpg)
Application
Cache embarquéLes composants client et serveur s’execute dans le processus de l’applicationEvite la sérialisation et transportTrès bonne performance, latence faibleRépartition de charge difficileParfait pour le cache répliqué
Velocity Components
K3, V3 K1, V1
K2, V2
Application
Velocity Components
K3, V3 K1, V1
K2, V2
Application
Velocity Components
K3, V3 K1, V1
K2, V2
PUT k2,v2
![Page 33: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/33.jpg)
Exécution de requête LINQ
Cache2Cache1
Primary RegionsPrimary Regions
Toy1, 500
Cache3
Primary Regions
Toy2, 350 Toy3, 400
Cache API
Local Cache
Velocity Client
Dispatch Manager
Federated Query Processor
Object Manager
In-memory Data Manager
Query Processor
Object Manager
In-memory Data Manager
Query Processor
Object Manager
In-memory Data Manager
Query Processor
from toy in catalog<Toy>() where toy.ToyPrice > 300 select toy;
ToyRegionToy4,
100
from toy in catalog<Toy>()where toy.ToyPrice > 300 select toy;
![Page 34: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/34.jpg)
On-Premises Applications
ApplicationApplication ASP.NET Application
Storage/SSDS
Velocity Client
Velocity Client
Velocity Client
Velocity Cache
![Page 35: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/35.jpg)
Velocity V1 Roadmap
CTP1• TechEd
2008
CTP2• PDC
2008
CTP3• Mix
2009
RTM• Mid
2009
![Page 36: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/36.jpg)
Velocity Vision
Web Scenari
os
• Cache distribué & global d’objets • Accès à faible latence• Adaptation a la charge• Hautement disponible
• Cache pour des données de référence ou d’activité
• Dimensionnement d’appications IIS/ASP.Net
Enterprise / HPC
Scenarios
• Cache accessible par requêtes LINQ
• Intégration avec HPC server.
• Persistance• Supporte differents
type de clients.
Software +
Services Scenarios
• Intégration avec SSDS, Windows Azure
• Plus de services de données• BI,
Streaming, rapport.
• Accès REST etSOA
![Page 37: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/37.jpg)
Le projet «Velocity»
Ressources
![Page 38: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/38.jpg)
Le projet «Velocity»
Le blog de l’équipehttp://blogs.msdn.com/velocity
Des vidéos:http://channel9.msdn.com/tags/Velocity/
MSDNhttp://msdn.microsoft.com/en-us/data/cc655792.aspxhttp://msdn.microsoft.com/fr-fr/library/cc645013(en-us).aspx
![Page 40: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/40.jpg)
Save the date for tech·days next year!
14 – 15 avril 2010, CICG
![Page 41: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/41.jpg)
Classic Sponsoring Partners
Premium Sponsoring Partners
![Page 42: Yves Chtepenko Architecte de solution Cambridge Technology Partners](https://reader035.vdocument.in/reader035/viewer/2022062622/551d9da5497959293b8d6d1d/html5/thumbnails/42.jpg)