Escalabilidad y ShardingPierre-Yves Duquesnoy – Sales Engineer
2 | © InterSystems Corporation. All rights reserved. |
La importancia de la Escalabilidad
La plataforma InterSystems IRIS permite:
• La Escalabilidad Vertical y Horizontal
• Escalar en Número de Usuarios y en tamaño de Datos
• Acceder a los datos con aplicaciones SQL y mediante Apache Spark
• Escoger las mejores opciones de escalabilidad adaptadas a la aplicación y los requerimientos
del negocio
3 | © InterSystems Corporation. All rights reserved. |
Escalabilidad Vertical
4 | © InterSystems Corporation. All rights reserved. |
Incremento de la capacidad de un servidor con más CPU, memoria, Red y I/O
Beneficios Retos
• Arquitectura simple
• Ajuste granular a las
necesidades
• Complejidad en Software
• Requiere dimensionamiento
previo
• Ratio Precio/Rendimiento no
lineal
• Limitaciones Hardware
Escalabilidad Vertical
5 | © InterSystems Corporation. All rights reserved. |
Ejecución SQL Paralelizada
Uso simultáneo de múltiples cores para la ejecución de una query SQL
• 1 proceso por core = escalabilidad vertical
• Beneficios máximos para agregaciones y tablas grandes
Disponible desde 2015
Con la opción SQL %PARALLEL, automático en el futuro.
6 | © InterSystems Corporation. All rights reserved. |
Escalabilidad Horizontal
7 | © InterSystems Corporation. All rights reserved. |
Escalabilidad Horizontal
Extiende un Clúster añadiendo más servidores para adaptarse a la carga
Beneficios Retos
• Linealidad precio/rendimiento
• Aprovecha sistemas Cloud,
servidores básicos / virtuales
• Permite escalabilidad elástica
• Complejidad de Software
• Énfasis en Redes
8 | © InterSystems Corporation. All rights reserved. |
Escalabilidad Horizontal de Usuarios
9 | © InterSystems Corporation. All rights reserved. |
Escalabilidad Horizontal de Usuarios
10 | © InterSystems Corporation. All rights reserved. |
Servidores de Aplicación ECP
El InterSystems Enterprise Cache Protocol es un potente mecanismo para distribuir
datos e lógica de aplicación en varias instancias. Desacopla la ejecución de código de los
datos:
• Servidor de Aplicación ECP sirve peticiones de usuario de un espacio de memoria local
• Servidor de Datos ECP graba datos en disco
Escalabilidad horizontal de la memoria caché: Cada instancia tiene una memoria caché
independiente, sincronizada con los datos en disco
• Memoria caché repartida en varias instancias
• Transparente para la aplicación
11 | © InterSystems Corporation. All rights reserved. |
Escalabilidad Horizontal de Datos
12 | © InterSystems Corporation. All rights reserved. |
Escalabilidad Horizontal de Datos
13 | © InterSystems Corporation. All rights reserved. |
Sharding SQL de InterSystems
SQL Sharding permite particionar una tabla y repartirla sobre múltiples instancias
(Shards)
• Reparte el trabajo de un query SQL en múltiples Shards
• Permite la carga en paralelo y el uso de frameworks externos como Apache Spark,
interactuando directamente con los Shards
Escalabilidad horizontal de la memoria caché : la memoria de varios servidores se suma
para mantener más datos en memoria
• Transparente para la aplicación
14 | © InterSystems Corporation. All rights reserved. |
Escalabilidad independiente de datos y usuarios
Sharding SQL de InterSystems
16 | © InterSystems Corporation. All rights reserved. |
2 roles principales en un clúster de Sharding:
1 Shard Master (DM)
• Punto de entrada al Namespace particionado
• Almacena Definiciones de tablas, código,
datos de tablas no particionadas
Múltiples Shard Servers (DS)
• Almacenamiento y memoria caché escalable para tablas particionadas
• Tablas particionadas en múltiples servidores “Shard Servers” (DS)
• Tablas no particionadas accesibles desde Shard Server vía ECP
• BBDD de Código compartida entre todos los Shard Servers
• Transparente para la aplicación, sin acceso directo para los usuarios
shard master
shard
servershard
server
Arquitectura de Sharding SQL
17 | © InterSystems Corporation. All rights reserved. |
Arquitectura – Procesamiento de Petición SQL
1. La aplicación envía petición SQL al shard master
2. El Shard master analiza la petición para
particionarla y envía peticiones localizadas a los
Shard servers
3. Los Shard Servers resuelven las peticiones
localizadas y envían los resultados al Master vía
ECP
4. El Shard master agrega los resultados recibidos y
devuelve la respuesta a la aplicación
aplicación
shard master
shard master
shard
servershard
server
18 | © InterSystems Corporation. All rights reserved. |
Arquitectura – Shard Master App Servers
Shard Master Application Servers (AM) permite escalar en usuarios, mientras los Shard
Server (DS) permiten escalar en procesamiento SQL
• Se usa ECP para leer tablas no particionadas del Shard Master Data Server (DM)
• Se conecta directamente a los Shard Server para las tablas particionadas
DM
DS DS DS DS
AM AM AM
19 | © InterSystems Corporation. All rights reserved. |
Arquitectura – Query Shards
Son Servidores de aplicación para añadir capacidad de procesamiento SQL a cada Shard:
• Data Shards (DS) persiste los datos
• Query Shards (QS) ejecutan SQL contra el Data Shard vía ECP
La ingestión de datos se hace directamente en el Data Shard y
no interfiere con la carga Analítica que se hace en el Query Shard
DS
analytic ingest
DS DS
QS QS QS
DM
20 | © InterSystems Corporation. All rights reserved. |
Joins SQL entre tablas particionadas
Joins en el mismo Shard (Cosharded joins)
• Joins con condición de igualdad sobre la clave de sharding (equi-joins) se pueden ejecutar
localmente en el Shard.
• Muy eficientes, muy buena escalabilidad (en número de tablas y número de Shards)
Joins entre servidores de Shard
• Se pueden hacer Joins sobre cualquier conjunto de tablas particionadas
• Cada Shard Server accede a datos de otros Shard via ECP
• Eficiente algoritmo de asignación de conjuntos a cada servidor de Shard
Joins entre tablas particionadas y no-particionadas
• El Shard server accede a las tablas del Shard Master via ECP
21 | © InterSystems Corporation. All rights reserved. |
Otras características de InterSystems IRIS
Mirroring
• Proporciona Alta disponibilidad
• Para todos los componentes de datos de los clusters (DM & DS)
• Reintento automático de la petición en caso de failover de un nodo
Connector de IRIS para Apache Spark
• Aprovecha la topología de Shard – Los Spark “workers” se conectan directamente a los
“shards” para ejecutar peticiones locales, y realizar las agregaciones en Spark
JDBC
• Conexiones directas a los Shards en paralelo
• Alto rendimiento de inserción
Casos de uso
23 | © InterSystems Corporation. All rights reserved. |
Casos de uso
Sistema de Trading multi-activos
• Banco de inversión global
― 13% del volumen de acciones mundiales, 2000 Millones transacciones /día, 6TB de datos /día
― Usa Plataform de Datos InterSystems
• Evaluación de InterSystems IRIS para acceso tiempo real a los datos, reemplazando servidores
ECP, Sybase ASE, Sybase IQ y Rainstor
• Mejora de rendimiento SQL de 300% y reducción de costes de 70%
Servicio de Benchmarking
• Otro banco global evaluando InterSystems IRIS para reemplazar un sistema de benchmark
existente en Sybase IQ.
• InterSystems IRIS es hasta 2x más rápido que otra BBDD en memoria, y entre 3x y 20x más
rapido que Sybase IQ
Caso de uso 1Sistema de Trading multi-activos
Acceso en tiempo real y almacenamiento en Nube privada
25 | © InterSystems Corporation. All rights reserved. |
Caso 1: Entorno InterSystems existente
Sistema de trading graba transacciones intra-día a cientos de
instancias Caché vía SQL:
• Instancias de Datos (DS) y Aplicaciones (AS)
• Conectadas con ECP
• Todas en servidores físicos
• AS con 128GB RAM, DS con 40GB
Para evitar carga adicional sobre los AS
• Replicación SQL a Sybase ASE
• Sybase ASE sirve las peticiones SQL que no son de trading
TSS/Hermes
TIS/Persistor
Data
Server
AS AS AS
Data
Server
Data
Server
26 | © InterSystems Corporation. All rights reserved. |
Caso 1: Almacenamiento
Replicación online (tiempo quasi-real):
• del Sistema de trading a instancias Sybase ASE (7 días)
Fin de día:
• copia de datos de Caché a Sybase IQ (6meses) y Rainstor (para siempre)
Rainstor
Historico
Sybase IQ
6 meses
Sybase ASE
7 días
Caché
intradía
27 | © InterSystems Corporation. All rights reserved. |
Caso 1: InterSystems IRIS permite un acceso tiempo real
Arquitectura propuesta:
• Sistema de trading y TIS siguen almacenando en los DS
• Supresión del los AS costosos
• Cluster InterSystems IRIS en la nube
• 1 o más InterSystems IRIS Shard Master(s)
• Para cada DS, 1 o más Query Shard(s)
• 40GM de RAM/node, almacenamiento económico
Proporciona:
• Tiemp real, Escalabilidad Horizontal
• Reemplazo de los InterSystems AS y los Sybase ASE para las peticiones intra-día
• Mejora del rendimiento 300%
• Reducción de coste del 70%
TSS/Hermes & client apps
TIS/Persistor
DS DS DS
QS QS QS
DM
28 | © InterSystems Corporation. All rights reserved. |
Caso 1: Almacenamiento con InterSystems IRIS
La replicación nativa de InterSystems IRIS mueve datos de Caché a los Shard de InterSystems IRIS.
El cluster en la nube puede mantener datos el tiempo necesario, 7días, 30 días o 6 meses…
TSS/Hermes
TIS/Persistor
DS DS DS
QS QS QS
DM
ASE/IQ/Rainstor clients
DS DS DS
QS QS QS
DM
Caso de uso 2Servicio de Benchmarking
Triunfa donde Hadoop y un DataWarehouse tradicional fracasan
30 | © InterSystems Corporation. All rights reserved. |
Caso 2: Antecedentes
El banco de inversión tiene un servicio de benchmarking con 18000 métricas
• 14 000 de Fuentes externas, 4000 métricas internas
• 8TB de Datos
Los Gestores de activos usan el servicio
• Para comparar la cartera de sus clientes con las métricas
• En fin de día
La plataforma de estrategia de trading tiempo-real
• Usa el servicio para toma decisiones durante el día
31 | © InterSystems Corporation. All rights reserved. |
Caso 2: Retos
El banco tiene peta-bytes de datos en Hadoop
Joins SQL Complejos
• Múltiples almacenes de datos SQL optimizados para las distintas aplicaciones/clientes.
• Sybase ASE no aguanta la demanda de las aplicaciones/clientes.
Requerimientos de baja latencia
• Soluciones “In-memory” costosas y/o inestables
32 | © InterSystems Corporation. All rights reserved. |
Caso 2: InterSystems IRIS
VMs de InterSystems IRIS en nube privada
• cada VM tiene 4 cores, 32GB RAM, 200GB disco interno
• Estrategias de Sharding con claves distintas (indexID, businessDate)
InterSystems IRIS es
• hasta 2x más rápido que otras BBDD distribuidas en memoria
• Hasta 3x~10x más rápido que Sybase IQ en muchas pruebas
• siempre más rápido globalmente
Preguntas?
Gracias!