Title of Presentation
description
Transcript of Title of Presentation
Projet “Velocity” le cache mémoire
distribuéYves ChtepenkoArchitecte de solutionCambridge Technology Partners
Premium Partner
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 !!!
Agenda
Etat des lieuxPrésentation du projet « Velocity »Velocity en actionDémoFutures évolutionsQuestions & Réponses
Le projet «Velocity»
Etat des lieux
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
Le projet «Velocity»
Présentation
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
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
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
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
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
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
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.
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
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
Le Cache distribuéApplication
Cache2Cache1
K2, V1
Cache3
Velocity Client2
Get(K2)
K2, V1
Velocity Client1PUT
K2, V1K2, V1
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
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
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
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
Le projet «Velocity»
démo
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
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%.
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é
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
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
Déploiement – pré requis
Versions de Windows supportéesXP sp3 Vista SP1Serveur 2003Serveur 2008
Framework 3.5 (utilise WCF)Windows PowerShell
Le projet «Velocity»
démo
Le projet «Velocity»
Post V1
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
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
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;
On-Premises Applications
ApplicationApplication ASP.NET Application
Storage/SSDS
Velocity Client
Velocity Client
Velocity Client
Velocity Cache
Velocity V1 Roadmap
CTP1• TechEd
2008
CTP2• PDC
2008
CTP3• Mix
2009
RTM• Mid
2009
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
Le projet «Velocity»
Ressources
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
Save the date for tech·days next year!
14 – 15 avril 2010, CICG
Classic Sponsoring Partners
Premium Sponsoring Partners