La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Yves Chtepenko Architecte de solution Cambridge Technology Partners.

Présentations similaires


Présentation au sujet: "Yves Chtepenko Architecte de solution Cambridge Technology Partners."— Transcription de la présentation:

1 Yves Chtepenko Architecte de solution Cambridge Technology Partners

2

3 Zurich 40 Employees Budapest Budapest 40 Consultants 40 Consultants Nyon 170 Employees India India Consultants Consultants

4 Etat des lieux Présentation du projet « Velocity » Velocity en action Démo Futures évolutions Questions & Réponses

5

6 Accès rapide aux données de références Local à chaque instance de lapplication Evolution des architectures Software as Service, multi-tiers Sources de données multiples: db, web service Agrégation des données Amélioration des performances

7

8 Cest un cache mémoire distribué pour les applications, pour tout type dobjet: objet de la CLR, XML ou objets binaires. Velocity permet de «fusionner» la mémoire des machines et den proposer une vue unifiée pour les clients du service. Vue unifiée du cache

9 Données de référence Accès en lecture seule par un grand nombre Données dactivité Lecture et écriture par un seul processus Ressources Accès en lecture partagé, écriture exclusive

10 Performance Haute disponibilité Adaptation à la charge Répartition de charge automatique Intégration avec ASP.NET Installé en tant que service ou embarqué. Outils dadministration et de surveillance

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

12 … Server 1 Server 2 Server 3 Application / Web Tier Application Cache Server Tier paramètres de Configuration polices de cache Globales informations de partions (Base de données, fichier xml) Velocity Service Client Velocity UtilisateursUtilisateurs Velocity Service AssembliesAssemblies SetupSetup Routing table K1, v1 Monitoring Le premier installé devient le nœud maître

13 Host Processus qui héberge linstance de Velocity. Caches nommés Peuvent sétendre au travers des machines Définis dans le fichier de configuration Régions Conteneurs de déléments du cache Peuvent être créées explicitement ou implicitement Eléments du cache Clef, Objet, Tags, TTL, Timestamps, Version Régions Région A Clef Objet Tags 121 xxxx Toy Child 123 yyyy Toy Chair.. Velocity Service Cache nommé: Catalogue de produits Cache nommé: Inventaire Velocity Service

14

15 Un sous-ensemble des informations globales de partition et de connexions aux différents nœuds Construite et maintenue de façon incrémentale Comme les tables DNS Les serveurs ont une table de routage Optionnel du côté client, elle permet deffectuer les opérations (e.g., GET, PUT) directement sur les bons nœuds.

16 Application Cache2 Cache1 Primaire pour K2 K2, V1 Primaire pour K1 K1, V1 Cache3 Primaire pour K3 K3, V3 Velocity Client2 Get(K2) K2, V1 Velocity Client1 PUT Routing Table

17 Application Cache2 Cache1 Primaire pour K2 K2, V1 Primaire pour K1 K1, V1 Cache3 Primaire pour K3 K3, V3 Velocity Client2 Get(K2) Routing Table K2, V1 Velocity Client1 Routing Table PUT Routing Table

18 Application Cache2 Cache1 K2, V1 Cache3 Velocity Client2 Get(K2) K2, V1 Velocity Client1 PUT K2, V1

19 Velocity Client Cache Local Le cache local accélère laccès au cache. Il utilise le mécanisme de notification pour se rafraichir lorsque les éléments du cache changent. Put(K2, V1) Cache2 Cache1 Primaire pour K2 K2, V1 Primaire pour K1 K1, V1 Cache3 Primaire pour K3 K3, V3 Velocity Client Cache Local K2, V1 Get(K2) Routing Table

20 Velocity Service Serveur Maître Velocity Service Limité à 10 si fichier de configuration XML Nombre de nœuds quasiment illimité si configuration dans une base de donnée

21 Application (K2, V2) Cache2 Cache1 Cache3 Primaire pour(K2,V2) 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 Replication Agent Mets lopération dans la file dexécution Exécute lopération localement Propage lopération sur les nœuds secondaires Attends pour obtenir le quorum rends le contrôle Mets lopération dans la file dexécution Exécute lopération localement Propage lopération sur les nœuds secondaires Attends pour obtenir le quorum rends le contrôle Get(K2) Velocity Client Routing Table

22 Cache4 Primaire pour (K4,V4) Primaire pour (K4,V4) K4, V4 Secondary for K1, V1 Partition Manager Global Partition Map Cache2 Cache1 Cache3 Primaire pour (K2,V2) Primaire pour(K3,V3) Routing Table Secondaire pour K2, V2 K1, V1 Secondaire pour K2, V2 Replication Agent Reconfiguration Agent Reconfiguration Agent Local Partition Map Routing Table Replication Agent Reconfiguration Agent Reconfiguration Agent 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

23

24 GetCacheItem renvoie un objet version Chaque mise a jour sur un objet incrémente son numéro de version Fournit la version obtenue précédemment avec un Put/Remove Put/Remove seront réalisés uniquement si le numéro de version fourni concorde avec celui du cache. Version Based Update TimeClient1Client2 (Different Thread or process) T0 CacheItem item = catalog.GetCacheItem(PlayerRegion, Zune); CacheItem item = catalog.GetCacheItem(PlayerRegion, Zune); T1((ZuneObject)item.Object).inventory - -; T2 catalog.Put(PlayerRegion, Zune, item.Object, item.Version); T3 catalog.Put(PlayerRegion, Zune, item.Object, item.Version); // Version mismatch // Client must retry again Deux clients accèdent au même objet Ils modifient lobjet Le second Client arrive le premier; sa mise à jour fonctionne; le numéro de version est incrémenté. Le premier client essaie de mettre à jour mais échoue car son numéro de version ne correspond pas à celui du cache.

25 Mise à jour optimiste Mise à jour pessimiste Velocity Cache GetCacheItem (k1,v1) PutCacheItem (k1,v1) PutCacheItem (k1,v1) K1,V1K1,V2K1,V1K1,V2 Velocity Cache GetAndLock (k1,v1) Get (k1,v1) PutAndUnlock (k1,v1) K1,V1 K1,V2 Client 2 Client 1

26 K1 GetAndLock – Lit lobjet et le verrouille Les autres appels GetAndLock Au bout du délai dexpiration du verrou celui ci est libéré. Les simples Get ne sont pas bloquées. Lopération Put écrase le verrou PutAndUnlock – Met à jour lobjet et enlève le verrou Client1: GetAndLock ("k1") Client1: GetAndLock ("k1") Client2: GetAndLock ("k1") Client2: GetAndLock ("k1") Client3: Get ("k1") Client3: Get ("k1") Les Get réussissent. GetAndLock reçoit un identifiant de verrou les autres GetAndLock sur le même élément échouent

27 Eviction sur expiration seulement Libè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 daccès Par requête Peut ê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 disque Déclenche léviction forcée à 85% dutilisation de la mémoire système pour en libérer 5%.

28 Abonnement aux changements de données dans le cache Appel dun délégué sur le client quand un changement survient Notifications au niveau objet, région et cache nommé

29 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 dun compte de service Assignation dun compte de service au niveau du cache nommé. Sécurité au niveau du transport Options de sécurité de WCF E.g., Encryptions

30 Logging Provider model; par défault ETW, dans des fichiers log. Administration Commandes Powershell Démarrage and et arrêt du cluster ou service, configure caches nommées. Statistiques du cache Intégration à Perfmon

31 Versions de Windows supportées XP sp3 Vista SP1 Serveur 2003 Serveur 2008 Framework 3.5 (utilise WCF) Windows PowerShell

32

33

34 Callback for read-through, write-behind Specified at Named Cache Level Read-Through Called when item not present in cache Callback returns the object/serialized bytes Write-Behind Writes to cache are queued Callback called asynchronously in batches Re-tries upon failure

35 Application Les composants client et serveur sexecute dans le processus de lapplication Evite la sérialisation et transport Très bonne performance, latence faible Répartition de charge difficile Parfait 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

36 Cache2 Cache1 Primary 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 () where toy.ToyPrice > 300 select toy; ToyRegion Toy4, 100 from toy in catalog () where toy.ToyPrice > 300 select toy;

37 Application ASP.NET Application Storage/SSDS Velocity Client Velocity Cache

38 CTP1 TechEd 2008TechEd 2008 CTP2 PDC 2008 CTP3 Mix 2009 RTM Mid 2009

39 Web Scenarios Cache distribué & global dobjets Accès à faible latence Adaptation a la charge Hautement disponible Cache pour des données de référence ou dactivité Dimensionnement dappications 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 et SOA

40

41 Le blog de léquipe Des vidéos: MSDN us).aspx

42

43 14 – 15 avril 2010, CICG

44 Classic Sponsoring Partners Premium Sponsoring Partners

45


Télécharger ppt "Yves Chtepenko Architecte de solution Cambridge Technology Partners."

Présentations similaires


Annonces Google