0157 genexus full_throttling
TRANSCRIPT
![Page 2: 0157 genexus full_throttling](https://reader035.vdocuments.site/reader035/viewer/2022081502/558d1645d8b42afb408b4595/html5/thumbnails/2.jpg)
¿Objetivo?Dar recetas sencillas para
Dar recetas sencillas para optimizar el desempeño de las aplicaciones Genexus en la plataforma .net
![Page 3: 0157 genexus full_throttling](https://reader035.vdocuments.site/reader035/viewer/2022081502/558d1645d8b42afb408b4595/html5/thumbnails/3.jpg)
Base de datos 1/3
Snapshot Isolation
![Page 4: 0157 genexus full_throttling](https://reader035.vdocuments.site/reader035/viewer/2022081502/558d1645d8b42afb408b4595/html5/thumbnails/4.jpg)
Base de datos 2/3CREATE PARTITION FUNCTION myRangePF1 (int) AS RANGE LEFT FOR VALUES (1, 100, 1000)GO
CREATE PARTITION SCHEME myRangePS1 AS PARTITION myRangePF1 TO (test1fg, test2fg, test3fg, test4fg) GO
CREATE TABLE PartitionTable (col1 int, col2 char(10)) ON myRangePS1 (col1)
CREATE PARTITION FUNCTION myRangePF3 (char(20)) AS RANGE RIGHT FOR VALUES ('EX', 'RXE', 'XR');
![Page 5: 0157 genexus full_throttling](https://reader035.vdocuments.site/reader035/viewer/2022081502/558d1645d8b42afb408b4595/html5/thumbnails/5.jpg)
Base de datos 3/3
DateId CarrierTracking OfferID PriceDisc
8
9
3
4
5 100.00
3 4E0A-4F89-AE
4911-403C-92 6431-4D57-8320070601
1
1
1
1
1
1
1
2
2
3
3
3
3
4
22 10311 0.004
1
1
2
2
2
2
3
3
3
3
3
3
3
4
4
4
4
4
4
DateId CarrierTracking OfferID PriceDisc
20070601 4911-403C-98 10 0.00
20070601 4911-403C-99 10 0.00
20070602 6431 10 0.00
20070602 6431-4D57-83 10 0.00
20070602 6431-4D57-84 10 0.00
20070602 6431-4D57-85 10 100.00
20070603 4E0A-4F89-AE 10 0.00
![Page 6: 0157 genexus full_throttling](https://reader035.vdocuments.site/reader035/viewer/2022081502/558d1645d8b42afb408b4595/html5/thumbnails/6.jpg)
El tan esperado host para nuestra lógica de negocios…
AppFabric
CACHING
SERVICE BUS ACCESS CONTROL
MONITORINGWORKFLOW HOSTING
SERVICE HOSTING
SCALE OUTHIGH AVAILABILITY MULTI-TENANT MANAGEMENT
![Page 7: 0157 genexus full_throttling](https://reader035.vdocuments.site/reader035/viewer/2022081502/558d1645d8b42afb408b4595/html5/thumbnails/7.jpg)
Vista unificada del cache
¿Qué es el caché del Appfabric?Un caché de aplicación explícito, distribuido, en memoria, para cualquier tipo de datos
(CLR objects, rows, XML, Binary data etc.)
Clientes del caché en diversas máquinas o
procesos
Vista lógica del caché. Un solo gran caché
Caché distribuído entre
N nodos
![Page 8: 0157 genexus full_throttling](https://reader035.vdocuments.site/reader035/viewer/2022081502/558d1645d8b42afb408b4595/html5/thumbnails/8.jpg)
¿Dónde calza el caché?
… Web Tier(ASP.Net)
Users
Database Cloud Data Tier
Application Application ApplicationCaching Access Layer Caching Access Layer Caching Access Layer
Cach
ing
Serv
ice
Cach
ing
Serv
ice
Cach
ing
Serv
ice
Cache Tier
![Page 9: 0157 genexus full_throttling](https://reader035.vdocuments.site/reader035/viewer/2022081502/558d1645d8b42afb408b4595/html5/thumbnails/9.jpg)
Test de Escalabilidad
Single ServerThroughput Increases with Increasing Load
Until Server Saturation
Load
Throughput
Latency
Server 2 AddedThroughput Increases
Latency DecreasesUntil Server Saturation
Server 3 AddedThroughput Increases
Latency Decreases
![Page 10: 0157 genexus full_throttling](https://reader035.vdocuments.site/reader035/viewer/2022081502/558d1645d8b42afb408b4595/html5/thumbnails/10.jpg)
ApplicationApplication
(K2, V2)
Cache2Cache1 Cache3
Primary for
Caché con alta disponibilidad
Get(K2)
Primary for Primary for
K3, V3
AppFabric Caching ClientRouting 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
Replication Agent
![Page 11: 0157 genexus full_throttling](https://reader035.vdocuments.site/reader035/viewer/2022081502/558d1645d8b42afb408b4595/html5/thumbnails/11.jpg)
Integración con la sesión de ASP.net
…Sesión almacenada
en AppFabric Caching
Cach
e S
ervi
ce
Cach
ing
Ser
vice
Balanceador de carga sin afinidad de sesión
Cach
ing
Ser
vice
El almacenamiento escala
dinámicamente
Alta Disponibilidad
Almacena en AppFabric Caching
SessionStoreProvider
Estado de Sesión compartido entre múltiples aplicaciones
Application
Caching Access Layer
Application ApplicationCaching Access Layer Caching Access Layer
<sessionState mode="Custom“ customProvider="SessionStoreProvider"><providers> <add name="SessionStoreProvider" type=“Microsoft.Data.Caching.DataCacheSessionStoreProvider, ClientLibrary“ cacheName="<YourNamedCache>"/></providers></sessionState>
![Page 12: 0157 genexus full_throttling](https://reader035.vdocuments.site/reader035/viewer/2022081502/558d1645d8b42afb408b4595/html5/thumbnails/12.jpg)
Escenario Inicial
App TierBrowserRequest
Database
Response
“Wow! Qué buena aplicación!”
![Page 13: 0157 genexus full_throttling](https://reader035.vdocuments.site/reader035/viewer/2022081502/558d1645d8b42afb408b4595/html5/thumbnails/13.jpg)
Escenario Inicial
App Tier Database
Browser
Browser
Browser
Browser
Browser
“Yupiii!!! Tenemos muchos
usuarios!”
![Page 14: 0157 genexus full_throttling](https://reader035.vdocuments.site/reader035/viewer/2022081502/558d1645d8b42afb408b4595/html5/thumbnails/14.jpg)
Escenario Inicial
App Tier Database
Browser
Browser
Browser
Browser
Browser
“Server Busy”“Timeout”
“Mamaaaaaa…”
![Page 15: 0157 genexus full_throttling](https://reader035.vdocuments.site/reader035/viewer/2022081502/558d1645d8b42afb408b4595/html5/thumbnails/15.jpg)
¿Cómo podemos ayudar a Carlitos?
![Page 16: 0157 genexus full_throttling](https://reader035.vdocuments.site/reader035/viewer/2022081502/558d1645d8b42afb408b4595/html5/thumbnails/16.jpg)
Opción 1: Escalar verticalmente:
“Scale Up”
App Tier Database
Browser
Browser
Browser
Browser
Browser
App Tier
“No me gusta…”
![Page 17: 0157 genexus full_throttling](https://reader035.vdocuments.site/reader035/viewer/2022081502/558d1645d8b42afb408b4595/html5/thumbnails/17.jpg)
Opción 2: Escalar horizontalmente:
“Scale Out”
Database
Browser
Browser
Browser
Browser
Browser
App TierN L B
App Tier
App Tier
App Tier
“Mmm! Interesante…”
![Page 18: 0157 genexus full_throttling](https://reader035.vdocuments.site/reader035/viewer/2022081502/558d1645d8b42afb408b4595/html5/thumbnails/18.jpg)
¿Cómo hacemos con el estado?
![Page 19: 0157 genexus full_throttling](https://reader035.vdocuments.site/reader035/viewer/2022081502/558d1645d8b42afb408b4595/html5/thumbnails/19.jpg)
Opción 1: Mantener Afinidad de
Cliente
Database
Browser
Browser
Browser
Browser
Browser
N L B
App Tier
App Tier
App Tier
I love you too!
I love you!
“Qué cursi! No me gusta…”
![Page 20: 0157 genexus full_throttling](https://reader035.vdocuments.site/reader035/viewer/2022081502/558d1645d8b42afb408b4595/html5/thumbnails/20.jpg)
Opción 2: Persistir el estado
Database
Browser
Browser
Browser
Browser
Browser
N L B
App Tier
App Tier
App Tier
“Cool! Me gusta, pero…”
Sessions
![Page 21: 0157 genexus full_throttling](https://reader035.vdocuments.site/reader035/viewer/2022081502/558d1645d8b42afb408b4595/html5/thumbnails/21.jpg)
Opción 3: Utilizar un Caché
Distribuido
Database
Browser
Browser
Browser
Browser
Browser
N L B
App Tier
App Tier
App Tier
AppFabric
AppFabric
AppFabric
Sessions
Sessions
Sessions
![Page 22: 0157 genexus full_throttling](https://reader035.vdocuments.site/reader035/viewer/2022081502/558d1645d8b42afb408b4595/html5/thumbnails/22.jpg)
Resultados
![Page 23: 0157 genexus full_throttling](https://reader035.vdocuments.site/reader035/viewer/2022081502/558d1645d8b42afb408b4595/html5/thumbnails/23.jpg)
¡MUCHAS GRACIAS!