SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Microsoft codename: “velocity” Juan Ladetto DPE - Arquitecto Microsoft Argentina Dante Otero MCS - Consultor Microsoft Argentina
Windows Server AppFabric<caching/> Juan Ladetto DPE - Arquitecto Microsoft Argentina Dante Otero MCS - Consultor Microsoft Argentina
Porqué? App Tier La base de datoses un recursolimitado msdn, myspace, flickr, facebook, youtube, etc Cache Tier Cloud Data Tier Base de datos
Siempretrabajamos con != datos Referencia Read* Gralestáticos Mucho tráfico High Avail. Actividad Read/Write Cambia frec User-specific High-Scale Recursos Read/Write Cambia frec Application-Wide High-Scale Ejemplos: Session Shopping Cart  item Ejemplo: Inventario Ejemplos: Países Catálogos Categorías etc
Hay algunasoluciónparaesto? Solución de caching que sea explícita, distríbuida, en memoriaparacualquiertipo de dato Unified Cache View
Veamoscómofunciona (velocity) Share Data Across Applications No more sticky routing Scale out by adding more boxes Performance (Quad Core Box) Velocity High Availability 	Protect from Server Failure
Quédebemosanalizarparaelegircorrectamente Performance Rendimiento Latencia Consistency Puedellegar a ser dirty? Porcuántotiempo? Eviction La informaciónque no sirveesdesalojada? Security Availability Quépasa con la informaciónsi un nodo se rompe?
Escalarparticionando el cache Application La “routing table client” nos dice Almacenar en el cache2 (primario) PUT Get(K2) Velocity Client1 Velocity Client2 Routing Table Routing Table Cache2 Cache3 Cache1 Routing Table Routing Table Routing Table Primary for K1,V1 Primary for K2,V2 Primary for K3,V3 (K2, V2) K2, V2 K1, V1 K3, V3 K2, V2 Cola de operacionesparanotificaciones, new secondary, etc
Cómo se particiona? ID Ranges mapped to Nodes Region Name  Hashed into Region Id Keys Bucketized into Regions Velocity Service Velocity Service Velocity Service
Particionandohorizontalmente se lograincrementarescalabilidad y performance Escalarpor el tamaño de los datos Másmáquinas => másmemoriaparacachear Escalarparatenermejorrendimiento Cache Throughput: operaciones/segdesde el cache Másmáquinas => keys distribuidos Másmáquinas => mejorrendimiento Performance High Performance escalandohorizontalmentedatos y procesamiento (a tener en cuenta…) Aumentar la memoria Incrementar el procesamiento Distribuir el procesamientopor los nodos del cache
Local Cache El cache local puede ayudar a mejorar la velocidad de acceso desde los clientes Utiliza mecanismos de notificación para refrescar el cache cuando se produce un cambio Get(K2) Put(K2, v2) Get(K2) Velocity Client Velocity Client Local Cache Local Cache Routing Table Routing Table Cache2 Cache3 Cache1 K2, V2 K2, V2 Primary for K1,V1 Primary for K3,V3 Primary for K2,V2 K1, V1 K3, V3
Availability La “routing table client” nos dice Almacenar en el cache2 (primario) Application PUT Get(K2) ,[object Object]
Almacenalocalmente
Propagaoperación a otrosnodossecundarios
Espera a tener quorum (se replicocomomínimo 1 vez)
Devuelve controlVelocity Client1 Velocity Client Routing Table Routing Table Cache1 Cache2 Cache3 Primary for (K1,V1) Primary for (K3,V3) Primary for (K2,V2) Replication Agent K3, V3 K1, V1 K2, V2 (K2, V2) K2, V2 K2, V2 Secondary for (K1,V1), (K2,V2) Secondary for (K1,V1), (K3,V3) Secondary for (K2,V2), (K3,V3) K2, V2 K1, V1 K3, V3 K1, V1 K3, V3
Cache4 Partition Manager Primary for  (K4,V4) Global Partition Map K4, V4 Secondary for  K1, V1 Cache1 Cache2 Cache3 Primary for (K2,V2) Failover PM analiza la información de los nodossecundarios de todas los keys quetenía Cache2 paraelegir el nuevoprimario Elige Cache1 comoprimariopara (K2,V2).  Envíamensaje a los nodossecundarios Cache1 y Cache3. actualiza GPM Detectalasfalla de Cache y notifica a PM (on Cache4) Cache1 polls los secundarios de (Cache2) paraasegurarse de quetiene la últimainformación; casocontrario no toma ownership Cache1 inicializaconfiguración. Después de reconfigurar Cache1 es el primariopara (K1, V1) y (K2, V2) Routing Table Reconfiguration Agent K1, V1 Primary for (K3,V3) Replication Agent K3, V3 K2, V2 Local Partition Map K3, V3 K2, V2 Secondary for  Secondary for  Secondary for  K2, V2 K1, V1 K3, V3 K3, V3 K4, V4
Optimistic Version Based Updates GetCacheItemdevuelve el valor del objeto Cadaactualización del objetoincrementasuversión Envía la versiónobtenida en cada Put/Remove Put/Remove serásatisfactoriounicamentesi la versiónenviadamatchea con la versión del cache 2 clientesacceden al mismo item Ambos modifican el item El segundoactualiza el cache; operaciónsatisfactoriadebido a quecoincidenlasversiones; se incrementaversión en el cache El primer clienteintentaguardar; Falladebido a que la versión no coincide.
Pessimistic Locking GetAndLock – devuelve un objeto y lo lockea Otrasllamadas con GetAndLockfallarán (not block) Lock Expiry time haceque el lock expire Regular Get no lo bloquearán Regular Put reescribirán el lock PutAndUnlock – pone un nuevoobjeto y lo desbloquea UnLock – desbloqueaexplicitamente el objeto Client1:  GetAndLock ("k1") Client3:  Get ("k1") Client2:  GetAndLock ("k1") GetAndLock gets lock handle Regular Get succeeds  Other GetAndLock on same item fails
Velocity API // Create instance of cachefactory (reads appconfig) DataCacheFactoryfac = new DataCacheFactory(); // Get a named cache from the factory Cache 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("toyRegion", "toy-101", new Toy( .,.)); Catalog.Put("toyRegion", "toypart-100", new ToyParts(…)); Toy toyObj = (Toy)catalog.Get("toyRegion", "toy-101");
Access APIs – Tagging Items Hot or Discount Items in catalog Use Tagging List All Items / Hot Items - Enumeration Use Enumeration // Add Tags Tag hotItem = new Tag("hotItem"); Tag discItem = new Tag("discountItem"); catalog.Put("toyRegion", "toy-101", new Toy("Puzzle"),                  new Tag[]{hotItem}); catalog.Put("toyRegion", "toy-102", new Toy("Bridge"),                  new Tag[]{hotItem,discItem}); // From the same or a different client List<KeyValuePair<string, object>> toys =  catalog.GetAnyMatchingTag("toyRegion", hotItem);
BETA Features Seguridad Authentication y Authorization Configuración GPM Rebuild for network share  obviates need for SQL compact file to store partition distribution information ADO.Net provider for config store Administración Perfmon counters Live Cluster Patching & Version Compatibility

Weitere ähnliche Inhalte

Was ist angesagt?

Sandbox para ejercicios de programación
Sandbox para ejercicios de programaciónSandbox para ejercicios de programación
Sandbox para ejercicios de programaciónMario Garcia-Valdez
 
Haciendo copias de seguridad de todo el conocimiento humano con python y soft...
Haciendo copias de seguridad de todo el conocimiento humano con python y soft...Haciendo copias de seguridad de todo el conocimiento humano con python y soft...
Haciendo copias de seguridad de todo el conocimiento humano con python y soft...Jaime Crespo
 
Concurrency with Promise Style – Rayco Araña
Concurrency with Promise Style – Rayco ArañaConcurrency with Promise Style – Rayco Araña
Concurrency with Promise Style – Rayco ArañaDroidcon Spain
 
Jvmmx docker jvm
Jvmmx docker jvmJvmmx docker jvm
Jvmmx docker jvmsuperserch
 
Notas clase java ii
Notas clase java iiNotas clase java ii
Notas clase java ii1 2d
 

Was ist angesagt? (7)

Sandbox para ejercicios de programación
Sandbox para ejercicios de programaciónSandbox para ejercicios de programación
Sandbox para ejercicios de programación
 
Haciendo copias de seguridad de todo el conocimiento humano con python y soft...
Haciendo copias de seguridad de todo el conocimiento humano con python y soft...Haciendo copias de seguridad de todo el conocimiento humano con python y soft...
Haciendo copias de seguridad de todo el conocimiento humano con python y soft...
 
Mysql cluster
Mysql clusterMysql cluster
Mysql cluster
 
Concurrency with Promise Style – Rayco Araña
Concurrency with Promise Style – Rayco ArañaConcurrency with Promise Style – Rayco Araña
Concurrency with Promise Style – Rayco Araña
 
Jvmmx docker jvm
Jvmmx docker jvmJvmmx docker jvm
Jvmmx docker jvm
 
Notas clase java ii
Notas clase java iiNotas clase java ii
Notas clase java ii
 
Introducción a Kubernetes
Introducción a KubernetesIntroducción a Kubernetes
Introducción a Kubernetes
 

Andere mochten auch

Andere mochten auch (8)

(30/04) TECHnight MSDN - Desarrollo de aplicaciones Silverlight y novedades e...
(30/04) TECHnight MSDN - Desarrollo de aplicaciones Silverlight y novedades e...(30/04) TECHnight MSDN - Desarrollo de aplicaciones Silverlight y novedades e...
(30/04) TECHnight MSDN - Desarrollo de aplicaciones Silverlight y novedades e...
 
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
 
(13/05) MSDN te invita a ser parte de Uxity
(13/05) MSDN te invita a ser parte de Uxity(13/05) MSDN te invita a ser parte de Uxity
(13/05) MSDN te invita a ser parte de Uxity
 
[Code Camp 2009] Lo nuevo de Windows Server 2008 R2 (Alberto Ortega + Leandro...
[Code Camp 2009] Lo nuevo de Windows Server 2008 R2 (Alberto Ortega + Leandro...[Code Camp 2009] Lo nuevo de Windows Server 2008 R2 (Alberto Ortega + Leandro...
[Code Camp 2009] Lo nuevo de Windows Server 2008 R2 (Alberto Ortega + Leandro...
 
(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 1
(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 1(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 1
(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 1
 
(22.04.2009) Cumuy Presenta - Novedades en la plataforma de desarrollo .NET ...
(22.04.2009) Cumuy Presenta -  Novedades en la plataforma de desarrollo .NET ...(22.04.2009) Cumuy Presenta -  Novedades en la plataforma de desarrollo .NET ...
(22.04.2009) Cumuy Presenta - Novedades en la plataforma de desarrollo .NET ...
 
CodeCamp 2010 | Diez formas de escribir código (in)seguro
CodeCamp 2010 | Diez formas de escribir código (in)seguroCodeCamp 2010 | Diez formas de escribir código (in)seguro
CodeCamp 2010 | Diez formas de escribir código (in)seguro
 
CodeCamp 2010 | Efectos especiales con Silverlight
CodeCamp 2010 | Efectos especiales con SilverlightCodeCamp 2010 | Efectos especiales con Silverlight
CodeCamp 2010 | Efectos especiales con Silverlight
 

Ähnlich wie [Run Reloaded] Estrategias de Caching Distribuído con Microsoft Velocity Project (Juan Ladetto + Dante Otero)

0157 genexus full_throttling
0157 genexus full_throttling0157 genexus full_throttling
0157 genexus full_throttlingGeneXus
 
0157 genexus full_throttling
0157 genexus full_throttling0157 genexus full_throttling
0157 genexus full_throttlingGeneXus
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Asier Marqués
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magentoOnestic
 
Un poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernesUn poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernesDani Latorre
 
Apache ha muerto, Viva Lighttpd
Apache ha muerto, Viva LighttpdApache ha muerto, Viva Lighttpd
Apache ha muerto, Viva Lighttpdruna
 
Codemotion 2013 - Quiero tiempo real y lo quiero para ayer
Codemotion 2013 - Quiero tiempo real y lo quiero para ayerCodemotion 2013 - Quiero tiempo real y lo quiero para ayer
Codemotion 2013 - Quiero tiempo real y lo quiero para ayerIván López Martín
 
2015 10 - Curso Cliente @firma INAP día 2
2015 10 - Curso Cliente @firma INAP día 22015 10 - Curso Cliente @firma INAP día 2
2015 10 - Curso Cliente @firma INAP día 2Tomás García-Merás
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualizaciónMarcelo Ochoa
 
On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana
On-the-fly ETL con EFK: ElasticSearch, Flume, KibanaOn-the-fly ETL con EFK: ElasticSearch, Flume, Kibana
On-the-fly ETL con EFK: ElasticSearch, Flume, KibanaStratio
 
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAPARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAVíctor Bolinches
 
SQL Server 2014 Delayed Durability visto desde una aplicación - Alejandro Cor...
SQL Server 2014 Delayed Durability visto desde una aplicación - Alejandro Cor...SQL Server 2014 Delayed Durability visto desde una aplicación - Alejandro Cor...
SQL Server 2014 Delayed Durability visto desde una aplicación - Alejandro Cor...SpanishPASSVC
 
Backtrack 5 manual traducido
Backtrack 5 manual traducido Backtrack 5 manual traducido
Backtrack 5 manual traducido Millward Brown
 
Marcos quesada caching_sf2
Marcos quesada caching_sf2Marcos quesada caching_sf2
Marcos quesada caching_sf2symfony_bcn
 

Ähnlich wie [Run Reloaded] Estrategias de Caching Distribuído con Microsoft Velocity Project (Juan Ladetto + Dante Otero) (20)

0157 genexus full_throttling
0157 genexus full_throttling0157 genexus full_throttling
0157 genexus full_throttling
 
0157 genexus full_throttling
0157 genexus full_throttling0157 genexus full_throttling
0157 genexus full_throttling
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magento
 
Docker y PostgreSQL
Docker y PostgreSQLDocker y PostgreSQL
Docker y PostgreSQL
 
Un poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernesUn poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernes
 
De Mensajería hacia Logs con Apache Kafka
De Mensajería hacia Logs con Apache KafkaDe Mensajería hacia Logs con Apache Kafka
De Mensajería hacia Logs con Apache Kafka
 
Apache ha muerto, Viva Lighttpd
Apache ha muerto, Viva LighttpdApache ha muerto, Viva Lighttpd
Apache ha muerto, Viva Lighttpd
 
Varnish http cache
Varnish http cacheVarnish http cache
Varnish http cache
 
Analisis de rendimiento_en_oracle
Analisis de rendimiento_en_oracleAnalisis de rendimiento_en_oracle
Analisis de rendimiento_en_oracle
 
Insight - Architecture Design
Insight - Architecture DesignInsight - Architecture Design
Insight - Architecture Design
 
Codemotion 2013 - Quiero tiempo real y lo quiero para ayer
Codemotion 2013 - Quiero tiempo real y lo quiero para ayerCodemotion 2013 - Quiero tiempo real y lo quiero para ayer
Codemotion 2013 - Quiero tiempo real y lo quiero para ayer
 
2015 10 - Curso Cliente @firma INAP día 2
2015 10 - Curso Cliente @firma INAP día 22015 10 - Curso Cliente @firma INAP día 2
2015 10 - Curso Cliente @firma INAP día 2
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 
On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana
On-the-fly ETL con EFK: ElasticSearch, Flume, KibanaOn-the-fly ETL con EFK: ElasticSearch, Flume, Kibana
On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana
 
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAPARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
 
SQL Server 2014 Delayed Durability visto desde una aplicación - Alejandro Cor...
SQL Server 2014 Delayed Durability visto desde una aplicación - Alejandro Cor...SQL Server 2014 Delayed Durability visto desde una aplicación - Alejandro Cor...
SQL Server 2014 Delayed Durability visto desde una aplicación - Alejandro Cor...
 
Backtrack 5 manual traducido
Backtrack 5 manual traducidoBacktrack 5 manual traducido
Backtrack 5 manual traducido
 
Backtrack 5 manual traducido
Backtrack 5 manual traducido Backtrack 5 manual traducido
Backtrack 5 manual traducido
 
Marcos quesada caching_sf2
Marcos quesada caching_sf2Marcos quesada caching_sf2
Marcos quesada caching_sf2
 

Mehr von Microsoft Argentina y Uruguay [Official Space]

Mehr von Microsoft Argentina y Uruguay [Official Space] (20)

CodeCamp 2010 | FBI- Fácil Business Intelligence
CodeCamp 2010 | FBI- Fácil Business IntelligenceCodeCamp 2010 | FBI- Fácil Business Intelligence
CodeCamp 2010 | FBI- Fácil Business Intelligence
 
CodeCamp 2010 | Hyper-V en Windows Server 2008 R2 e interoperabilidad con Linux
CodeCamp 2010 | Hyper-V en Windows  Server 2008 R2 e interoperabilidad con LinuxCodeCamp 2010 | Hyper-V en Windows  Server 2008 R2 e interoperabilidad con Linux
CodeCamp 2010 | Hyper-V en Windows Server 2008 R2 e interoperabilidad con Linux
 
CodeCamp 2010 | Productividad mas allá de la velocidad de tus dedos (cazzulin...
CodeCamp 2010 | Productividad mas allá de la velocidad de tus dedos (cazzulin...CodeCamp 2010 | Productividad mas allá de la velocidad de tus dedos (cazzulin...
CodeCamp 2010 | Productividad mas allá de la velocidad de tus dedos (cazzulin...
 
CodeCamp 2010 | Un paseo por WCF 4.0
CodeCamp 2010 | Un paseo por WCF 4.0CodeCamp 2010 | Un paseo por WCF 4.0
CodeCamp 2010 | Un paseo por WCF 4.0
 
CodeCamp 2010 | Desarrollo de videojuegos fuera de control
CodeCamp 2010 | Desarrollo de videojuegos fuera de controlCodeCamp 2010 | Desarrollo de videojuegos fuera de control
CodeCamp 2010 | Desarrollo de videojuegos fuera de control
 
CodeCamp 2010 | Recorriendo ocs 2010
CodeCamp 2010 | Recorriendo ocs 2010CodeCamp 2010 | Recorriendo ocs 2010
CodeCamp 2010 | Recorriendo ocs 2010
 
Novedades de vs 2010 y net 40
Novedades de vs 2010 y net 40Novedades de vs 2010 y net 40
Novedades de vs 2010 y net 40
 
Run 2 0 keynote azure
Run 2 0 keynote azureRun 2 0 keynote azure
Run 2 0 keynote azure
 
Run 20 Track SQL Server
Run 20 Track SQL ServerRun 20 Track SQL Server
Run 20 Track SQL Server
 
Run 20 programando sobre sharepoint 2010
Run 20 programando sobre sharepoint 2010Run 20 programando sobre sharepoint 2010
Run 20 programando sobre sharepoint 2010
 
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
 
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Visión técnica
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Visión técnica(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Visión técnica
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Visión técnica
 
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Services 3
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Services 3(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Services 3
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Services 3
 
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Moss
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Moss(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Moss
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Moss
 
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Mapa De Ruta
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Mapa De Ruta(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Mapa De Ruta
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Mapa De Ruta
 
(27.05) MOSSCA Invita - Búsqueda empresarial 2
(27.05) MOSSCA Invita - Búsqueda empresarial 2(27.05) MOSSCA Invita - Búsqueda empresarial 2
(27.05) MOSSCA Invita - Búsqueda empresarial 2
 
(27.05) MOSSCA Invita - Búsqueda empresarial 1
(27.05) MOSSCA Invita - Búsqueda empresarial 1(27.05) MOSSCA Invita - Búsqueda empresarial 1
(27.05) MOSSCA Invita - Búsqueda empresarial 1
 
(25.03) RUN 09 - Sesiones Desarrollo - Azure Live
(25.03) RUN 09 - Sesiones Desarrollo - Azure Live(25.03) RUN 09 - Sesiones Desarrollo - Azure Live
(25.03) RUN 09 - Sesiones Desarrollo - Azure Live
 
(22.04.2009) Cumuy Presenta - Novedades en la plataforma de desarrollo .NET ...
(22.04.2009) Cumuy Presenta -  Novedades en la plataforma de desarrollo .NET ...(22.04.2009) Cumuy Presenta -  Novedades en la plataforma de desarrollo .NET ...
(22.04.2009) Cumuy Presenta - Novedades en la plataforma de desarrollo .NET ...
 
(25.03) RUN 09 - Sesiones Desarrollo - WPF Silverlight
(25.03) RUN 09 - Sesiones Desarrollo - WPF Silverlight(25.03) RUN 09 - Sesiones Desarrollo - WPF Silverlight
(25.03) RUN 09 - Sesiones Desarrollo - WPF Silverlight
 

Kürzlich hochgeladen

Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 

Kürzlich hochgeladen (20)

Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 

[Run Reloaded] Estrategias de Caching Distribuído con Microsoft Velocity Project (Juan Ladetto + Dante Otero)

  • 1.
  • 2. Microsoft codename: “velocity” Juan Ladetto DPE - Arquitecto Microsoft Argentina Dante Otero MCS - Consultor Microsoft Argentina
  • 3. Windows Server AppFabric<caching/> Juan Ladetto DPE - Arquitecto Microsoft Argentina Dante Otero MCS - Consultor Microsoft Argentina
  • 4. Porqué? App Tier La base de datoses un recursolimitado msdn, myspace, flickr, facebook, youtube, etc Cache Tier Cloud Data Tier Base de datos
  • 5. Siempretrabajamos con != datos Referencia Read* Gralestáticos Mucho tráfico High Avail. Actividad Read/Write Cambia frec User-specific High-Scale Recursos Read/Write Cambia frec Application-Wide High-Scale Ejemplos: Session Shopping Cart item Ejemplo: Inventario Ejemplos: Países Catálogos Categorías etc
  • 6. Hay algunasoluciónparaesto? Solución de caching que sea explícita, distríbuida, en memoriaparacualquiertipo de dato Unified Cache View
  • 7. Veamoscómofunciona (velocity) Share Data Across Applications No more sticky routing Scale out by adding more boxes Performance (Quad Core Box) Velocity High Availability Protect from Server Failure
  • 8. Quédebemosanalizarparaelegircorrectamente Performance Rendimiento Latencia Consistency Puedellegar a ser dirty? Porcuántotiempo? Eviction La informaciónque no sirveesdesalojada? Security Availability Quépasa con la informaciónsi un nodo se rompe?
  • 9. Escalarparticionando el cache Application La “routing table client” nos dice Almacenar en el cache2 (primario) PUT Get(K2) Velocity Client1 Velocity Client2 Routing Table Routing Table Cache2 Cache3 Cache1 Routing Table Routing Table Routing Table Primary for K1,V1 Primary for K2,V2 Primary for K3,V3 (K2, V2) K2, V2 K1, V1 K3, V3 K2, V2 Cola de operacionesparanotificaciones, new secondary, etc
  • 10. Cómo se particiona? ID Ranges mapped to Nodes Region Name Hashed into Region Id Keys Bucketized into Regions Velocity Service Velocity Service Velocity Service
  • 11. Particionandohorizontalmente se lograincrementarescalabilidad y performance Escalarpor el tamaño de los datos Másmáquinas => másmemoriaparacachear Escalarparatenermejorrendimiento Cache Throughput: operaciones/segdesde el cache Másmáquinas => keys distribuidos Másmáquinas => mejorrendimiento Performance High Performance escalandohorizontalmentedatos y procesamiento (a tener en cuenta…) Aumentar la memoria Incrementar el procesamiento Distribuir el procesamientopor los nodos del cache
  • 12. Local Cache El cache local puede ayudar a mejorar la velocidad de acceso desde los clientes Utiliza mecanismos de notificación para refrescar el cache cuando se produce un cambio Get(K2) Put(K2, v2) Get(K2) Velocity Client Velocity Client Local Cache Local Cache Routing Table Routing Table Cache2 Cache3 Cache1 K2, V2 K2, V2 Primary for K1,V1 Primary for K3,V3 Primary for K2,V2 K1, V1 K3, V3
  • 13.
  • 16. Espera a tener quorum (se replicocomomínimo 1 vez)
  • 17. Devuelve controlVelocity Client1 Velocity Client Routing Table Routing Table Cache1 Cache2 Cache3 Primary for (K1,V1) Primary for (K3,V3) Primary for (K2,V2) Replication Agent K3, V3 K1, V1 K2, V2 (K2, V2) K2, V2 K2, V2 Secondary for (K1,V1), (K2,V2) Secondary for (K1,V1), (K3,V3) Secondary for (K2,V2), (K3,V3) K2, V2 K1, V1 K3, V3 K1, V1 K3, V3
  • 18. Cache4 Partition Manager Primary for (K4,V4) Global Partition Map K4, V4 Secondary for K1, V1 Cache1 Cache2 Cache3 Primary for (K2,V2) Failover PM analiza la información de los nodossecundarios de todas los keys quetenía Cache2 paraelegir el nuevoprimario Elige Cache1 comoprimariopara (K2,V2). Envíamensaje a los nodossecundarios Cache1 y Cache3. actualiza GPM Detectalasfalla de Cache y notifica a PM (on Cache4) Cache1 polls los secundarios de (Cache2) paraasegurarse de quetiene la últimainformación; casocontrario no toma ownership Cache1 inicializaconfiguración. Después de reconfigurar Cache1 es el primariopara (K1, V1) y (K2, V2) Routing Table Reconfiguration Agent K1, V1 Primary for (K3,V3) Replication Agent K3, V3 K2, V2 Local Partition Map K3, V3 K2, V2 Secondary for Secondary for Secondary for K2, V2 K1, V1 K3, V3 K3, V3 K4, V4
  • 19. Optimistic Version Based Updates GetCacheItemdevuelve el valor del objeto Cadaactualización del objetoincrementasuversión Envía la versiónobtenida en cada Put/Remove Put/Remove serásatisfactoriounicamentesi la versiónenviadamatchea con la versión del cache 2 clientesacceden al mismo item Ambos modifican el item El segundoactualiza el cache; operaciónsatisfactoriadebido a quecoincidenlasversiones; se incrementaversión en el cache El primer clienteintentaguardar; Falladebido a que la versión no coincide.
  • 20. Pessimistic Locking GetAndLock – devuelve un objeto y lo lockea Otrasllamadas con GetAndLockfallarán (not block) Lock Expiry time haceque el lock expire Regular Get no lo bloquearán Regular Put reescribirán el lock PutAndUnlock – pone un nuevoobjeto y lo desbloquea UnLock – desbloqueaexplicitamente el objeto Client1: GetAndLock ("k1") Client3: Get ("k1") Client2: GetAndLock ("k1") GetAndLock gets lock handle Regular Get succeeds Other GetAndLock on same item fails
  • 21. Velocity API // Create instance of cachefactory (reads appconfig) DataCacheFactoryfac = new DataCacheFactory(); // Get a named cache from the factory Cache 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("toyRegion", "toy-101", new Toy( .,.)); Catalog.Put("toyRegion", "toypart-100", new ToyParts(…)); Toy toyObj = (Toy)catalog.Get("toyRegion", "toy-101");
  • 22. Access APIs – Tagging Items Hot or Discount Items in catalog Use Tagging List All Items / Hot Items - Enumeration Use Enumeration // Add Tags Tag hotItem = new Tag("hotItem"); Tag discItem = new Tag("discountItem"); catalog.Put("toyRegion", "toy-101", new Toy("Puzzle"), new Tag[]{hotItem}); catalog.Put("toyRegion", "toy-102", new Toy("Bridge"), new Tag[]{hotItem,discItem}); // From the same or a different client List<KeyValuePair<string, object>> toys = catalog.GetAnyMatchingTag("toyRegion", hotItem);
  • 23. BETA Features Seguridad Authentication y Authorization Configuración GPM Rebuild for network share obviates need for SQL compact file to store partition distribution information ADO.Net provider for config store Administración Perfmon counters Live Cluster Patching & Version Compatibility
  • 24. Ya se está usando?
  • 25. Demo
  • 27.

Hinweis der Redaktion

  1. 37 signals memcachedOracle – coherenceMicrosoft VelocityEtc…