T43.2: Implements ECP

Knowledge Review - InterSystems IRIS System Administration Specialist

1. Describir Arquitectura ECP (Data Server, Application Server)

Puntos Clave

  • ECP habilita escalamiento horizontal para volumen de usuarios
  • Data server: almacena datos, gestiona locks, sincroniza cachés
  • Application servers: manejan solicitudes de usuario, mantienen cachés independientes
  • Almacenamiento en caché distribuido transparente para aplicaciones y usuarios
  • Fácil de escalar agregando/eliminando application servers

Notas Detalladas

Enterprise Cache Protocol (ECP) es un componente central de InterSystems IRIS que habilita el almacenamiento en caché distribuido, un enfoque arquitectónicamente sencillo, transparente para aplicaciones y de bajo costo para escalamiento horizontal para volumen de usuarios.

El Problema de Escalamiento: Cuando el escalamiento vertical (agregar memoria/CPU a un solo servidor) resulta insuficiente, el escalamiento horizontal distribuye la carga de trabajo a través de múltiples sistemas. Para cargas de trabajo intensivas en usuarios, el desafío es que todos los usuarios comparten una única caché de base de datos en un servidor. A medida que crece el volumen de usuarios, la eficiencia de caché disminuye y el rendimiento sufre.

Solución ECP: La arquitectura de almacenamiento en caché distribuido escala horizontalmente distribuyendo tanto la lógica de aplicación como el almacenamiento en caché a través de un nivel de application servers frente a un data server. Cada application server maneja solicitudes de usuario y mantiene su propia caché de base de datos, automáticamente mantenida en sincronía con el data server. El data server maneja todo el almacenamiento y gestión de datos.

Componentes de Arquitectura:

Data Server:

  • Almacena datos en bases de datos locales
  • Sincroniza cachés de application server para prevenir datos obsoletos
  • Gestiona distribución de locks a través del cluster completo
  • Monitorea estado de conexión de application server
  • Toma acción si las conexiones se interrumpen

Application Servers:

  • Establecen conexiones al data server cuando las aplicaciones solicitan datos
  • Mantienen su propia caché de base de datos de datos recuperados
  • Se conectan automáticamente al servidor que almacena datos solicitados
  • Monitorean conexiones de data server e intentan recuperación si se interrumpen
  • Escalan independientemente - agregar o eliminar servidores sin reconfiguración de cluster

Cómo Funciona: 1. Un application server se convierte en parte del cluster agregando el data server como servidor remoto 2. Las bases de datos en el data server se configuran como bases de datos remotas en el application server 3. Los namespaces locales en el application server mapean a estas bases de datos remotas 4. Cuando los usuarios consultan un namespace, el application server recupera datos del data server 5. Los datos recuperados se almacenan en caché localmente en el application server 6. Las solicitudes subsiguientes para los mismos datos se sirven desde caché local 7. El data server asegura que todas las cachés de application server permanezcan coherentes

Beneficios Clave:

  • Evita la necesidad costosa de ajustar el conjunto de trabajo completo en memoria de un solo servidor
  • Cada application server mantiene conjunto de trabajo independiente de datos
  • Agregar application servers commodity económicos para manejar más usuarios
  • Ayuda cuando la aplicación está limitada por capacidad de CPU
  • Completamente transparente para usuarios y código de aplicación
  • Conexiones interrumpidas automáticamente recuperadas o restablecidas basándose en duración de caída

Estrategia de Distribución de Caché: Las solicitudes de usuario pueden balancearse en round-robin, pero el enfoque más efectivo dirige usuarios con solicitudes similares al mismo application server, aumentando eficiencia de caché. Por ejemplo:

  • Cuidado de salud: usuarios clínicos en un servidor, personal de recepción en otro
  • Múltiples aplicaciones: usuarios de cada aplicación en servidores separados
  • Basado en departamento: agrupar usuarios por departamento o función

Esta distribución dirigida maximiza hits de caché porque usuarios con patrones de consulta similares comparten datos en caché.

Escalabilidad: El número de application servers puede aumentarse o reducirse sin otra reconfiguración del cluster o cambios operacionales. Esto facilita escalar a medida que crece el volumen de usuarios.

2. Configurar Data Servers ECP

Puntos Clave

  • Habilitar servicio ECP en data server
  • Configurar puerto y dirección IP de servidor ECP
  • Configurar seguridad para conexiones de application server
  • Definir qué bases de datos están disponibles para acceso remoto
  • Monitorear conexiones y rendimiento de data server

Notas Detalladas

La configuración de data server establece qué bases de datos pueden accederse remotamente por application servers y cómo los application servers se autentican y conectan.

Habilitación de Servicio ECP: El data server debe tener el servicio ECP habilitado para aceptar conexiones de application servers. Esto se configura en el Management Portal bajo System Administration > Configuration > Connectivity > ECP Settings.

La configuración incluye:

  • Habilitar/deshabilitar servicio ECP
  • Número de puerto del servidor ECP (por defecto: 1972)
  • Dirección(es) IP en las que escuchar
  • Ajustes de seguridad de conexión
  • Ajustes de timeout y buffer

Configuración de Seguridad: Los application servers deben autenticarse al data server. Las opciones de seguridad incluyen:

  • Autenticación por contraseña usando recurso %Service_DataServer
  • Autenticación Kerberos
  • Conexiones cifradas TLS/SSL
  • Restricciones de dirección IP
  • Control de acceso basado en usuario/rol

La mejor práctica es crear una cuenta de usuario dedicada para conexiones ECP con privilegios apropiados.

Disponibilidad de Base de Datos: No todas las bases de datos en el data server necesitan estar disponibles para acceso remoto. Configure qué bases de datos pueden acceder los application servers a través de:

  • Nombres de recurso de base de datos
  • Mapeos de namespace
  • Permisos de acceso (solo lectura vs. lectura-escritura)

Configuración de Nombre de Recurso: Cada base de datos tiene un nombre de recurso usado por application servers para referenciarla. El nombre de recurso:

  • Debe ser descriptivo y consistente
  • Puede diferir del nombre de directorio de base de datos
  • Debe ser único en el data server
  • Se usa en configuración de base de datos remota de application server

Gestión de Conexión: El data server gestiona conexiones de application servers:

  • Rastrea conexiones activas de application server
  • Monitorea salud de conexión
  • Detecta application servers desconectados
  • Limpia automáticamente recursos después de desconexión
  • Timeout configurable para considerar conexión perdida

Ajuste de Rendimiento: Ajustes ECP de data server que afectan rendimiento:

  • Buffers de red: Buffers más grandes mejoran throughput para conexiones de alta latencia
  • Timeout de conexión: Balance entre detectar fallos rápidamente y evitar falsas desconexiones
  • Ajustes de coherencia de caché: Qué tan agresivamente invalidar cachés de application server
  • Timeout de lock: Cuánto tiempo esperar por locks distribuidos

Monitoreo de Data Server: Monitoree actividad ECP de data server a través de:

  • Monitor de data server ECP del Management Portal
  • System Management Portal > System Operation > ECP Data Servers
  • Ver application servers conectados
  • Monitorear tasas de transferencia de datos
  • Rastrear actividad de lock a través del cluster
  • Identificar cuellos de botella de rendimiento

Pasos de Configuración: 1. Abra Management Portal en data server 2. Navegue a System Administration > Configuration > Connectivity > ECP Settings 3. Habilite servicio ECP y establezca puerto 4. Configure ajustes de seguridad 5. Configure conexiones permitidas de application server 6. Configure recursos de base de datos 7. Guarde y active configuración 8. Verifique que servicio ECP esté ejecutándose

Consideraciones de Alta Disponibilidad: Cuando el data server es parte de un mirror:

  • Los application servers pueden configurarse para reconectarse automáticamente al nuevo primary después de failover
  • Use conexión de mirror en lugar de conexión directa de data server
  • Los application servers tratan failover de mirror como reinicio de data server
  • El procesamiento continúa en nuevo primary con disrupción mínima

3. Configurar Application Servers ECP

Puntos Clave

  • Agregar data server como servidor remoto en application server
  • Configurar bases de datos remotas desde data server
  • Mapear namespaces a bases de datos remotas
  • La diferencia entre bases de datos locales y remotas es transparente
  • Application server mantiene su propia caché automáticamente

Notas Detalladas

Un application server se configura agregando servidores remotos y bases de datos remotas, luego mapeando namespaces a esas bases de datos. Este proceso es transparente para aplicaciones.

Agregado de Servidor Remoto: El primer paso es configurar el data server como servidor remoto en el application server: 1. Abra Management Portal en application server 2. Navegue a System Administration > Configuration > Connectivity > ECP Connections 3. Agregue nueva conexión de servidor ECP 4. Especifique host/IP y puerto de data server 5. Configure credenciales de autenticación 6. Establezca parámetros de conexión (timeout, buffers, etc.) 7. Pruebe conexión y guarde

Campos de Configuración de Servidor Remoto:

  • Remote Server Name: Nombre descriptivo para esta conexión
  • IP Address/Hostname: Cómo alcanzar el data server
  • Port: Puerto ECP en data server (por defecto 1972)
  • User/Password: Credenciales de autenticación
  • Connection Type: Standard, SSL/TLS, o Kerberos
  • Timeout: Cuánto tiempo esperar respuestas
  • Auto-reconnect: Si reconectar automáticamente después de interrupción

Agregado de Bases de Datos Remotas: Una vez configurado el servidor remoto, agregue sus bases de datos como bases de datos remotas: 1. Navegue a System Administration > Configuration > Local Databases > Add Remote Database 2. Seleccione el servidor remoto 3. Especifique el nombre de recurso de base de datos (desde data server) 4. Configure punto de montaje local para la base de datos remota 5. Establezca modo de acceso (solo lectura o lectura-escritura) 6. Guarde configuración

Configuración de Base de Datos Remota:

  • Remote Resource Name: El nombre de base de datos como se define en data server
  • Local Mount Point: Donde application server "monta" la base de datos remota
  • Access Mode: Solo lectura o lectura-escritura (debe coincidir con permisos de data server)
  • Collation: Debe coincidir con collation de base de datos de data server
  • Cache Size: Cuánta caché local asignar para esta base de datos remota

Mapeo de Namespace: Mapee namespaces a bases de datos remotas exactamente como lo haría con bases de datos locales: 1. Navegue a System Administration > Configuration > Namespaces 2. Cree o edite namespace 3. Mapee datos global/rutina/clase a bases de datos remotas 4. La configuración es idéntica sea base de datos local o remota

Transparencia para Aplicaciones: Una vez configurado:

  • Las aplicaciones consultan namespaces normalmente
  • Application server recupera automáticamente datos de bases de datos remotas
  • Los datos recuperados se almacenan en caché localmente
  • Las consultas subsiguientes usan caché local
  • Application server mantiene caché sincronizada con data server
  • Las aplicaciones no pueden distinguir si los datos son locales o remotos

Múltiples Data Servers: Un application server puede conectarse a múltiples data servers:

  • Configure cada uno como servidor remoto separado
  • Agregue bases de datos remotas de cada servidor
  • Application server se conecta automáticamente al servidor correcto para cada consulta
  • Útil para acceder datos distribuidos a través de múltiples sistemas

Monitoreo de Conexión: El application server monitorea sus conexiones de data server:

  • Detecta automáticamente desconexiones
  • Intenta reconectar periódicamente
  • Puede configurarse para encolar operaciones durante desconexión
  • Registra cambios de estado de conexión

Comportamiento de Recuperación: Cuando la conexión se interrumpe:

  • Caída corta (umbral configurable): Application server encola operaciones y espera
  • Caída larga: Application server restablece conexión y descarta datos en caché
  • Al reconectar: Application server restablece conexión y refresca datos necesarios
  • Durante reconexión: Las aplicaciones pueden experimentar retrasos pero típicamente no fallan

Mejores Prácticas de Configuración:

  • Use configuraciones de namespace consistentes a través de todos los application servers
  • Documente qué bases de datos son remotas vs. locales
  • Configure tamaños de caché apropiados basándose en carga de trabajo
  • Establezca valores de timeout razonables balanceando velocidad de detección y falsos positivos
  • Pruebe escenarios de failover si data server está en mirror
  • Monitoree rendimiento de application server y ajuste asignación de caché

Prueba de Configuración: Después de configurar application server: 1. Verifique que conexión de servidor remoto esté activa 2. Consulte datos a través de namespaces mapeados 3. Verifique que datos se estén almacenando en caché (verifique estadísticas de caché) 4. Pruebe funcionalidad de aplicación 5. Monitoree errores en console log o alertas 6. Verifique comportamiento durante desconexión de data server

4. Monitorear Conexiones y Rendimiento ECP

Puntos Clave

  • Monitorear conexiones de data server a todos los application servers
  • Rastrear conexiones de application server a data servers
  • Medir tasas de transferencia de datos y ratios de hit de caché
  • Monitorear actividad de lock distribuido
  • Identificar cuellos de botella de rendimiento y problemas de conexión

Notas Detalladas

Monitorear conexiones y rendimiento ECP es esencial para mantener operación óptima de cluster de caché distribuida e identificar problemas antes de que impacten usuarios.

Monitoreo de Data Server: El data server proporciona monitoreo completo de conexiones de application server a través del Management Portal:

Navegue a: System Operation > ECP Data Servers

Vea métricas incluyendo:

  • Connected Application Servers: Lista de todos los app servers actualmente conectados
  • Connection Status: Estados activo, inactivo o error
  • Data Transfer: Bytes enviados/recibidos a cada app server
  • Transfer Rate: Throughput de red actual
  • Blocks Sent/Received: Bloques de base de datos transferidos
  • Globals Referenced: Número de referencias globales servidas
  • Lock Requests: Operaciones de lock distribuido
  • Connection Duration: Cuánto tiempo cada app server ha estado conectado

Monitoreo de Application Server: Cada application server monitorea sus conexiones a data servers:

Navegue a: System Operation > ECP Application Servers

Vea métricas incluyendo:

  • Connected Data Servers: Lista de servidores remotos configurados
  • Connection Status: Conectado, desconectado o error
  • Cache Statistics: Ratio de hit, tamaño, eficiencia
  • Network I/O: Datos transferidos hacia/desde data server
  • Block Requests: Bloques de base de datos solicitados desde data server
  • Response Time: Latencia para solicitudes de data server
  • Reconnection Attempts: Número de intentos de reconexión después de desconexión

Métricas de Rendimiento de Caché: Monitoree eficiencia de caché en application servers:

  • Cache Hit Ratio: Porcentaje de solicitudes servidas desde caché local
  • Cache Size: Uso actual de memoria de caché
  • Global References: Accesos globales totales
  • Remote References: Accesos requiriendo comunicación de data server
  • Cache Efficiency: Ratio de referencias locales a remotas

Métricas Objetivo:

  • El ratio de hit de caché debe ser típicamente >80-90%
  • Ratio de hit bajo indica:
  • Caché insuficiente asignada
  • Usuarios con diferentes patrones de consulta en mismo app server
  • Conjunto de trabajo más grande que capacidad de caché
  • Estrategia de distribución de caché pobre

Rendimiento de Red: Monitoree aspectos de red de ECP:

  • Latency: Tiempo de ida y vuelta entre app y data server
  • Bandwidth Utilization: Cuánta capacidad de red se está usando
  • Packet Loss: Indicador de confiabilidad de red
  • Connection Interruptions: Frecuencia de desconexiones

Monitoreo de Locks: Los locks distribuidos son gestionados por el data server:

  • Monitoree volumen de solicitud de lock
  • Rastree tiempos de espera de lock
  • Identifique problemas de contención de lock
  • Detecte situaciones de deadlock

Cuellos de Botella de Rendimiento: Problemas comunes identificados a través de monitoreo:

  • High Network Latency: Aumenta tiempo de respuesta para cache misses
  • Low Cache Hit Ratio: Fuerza acceso frecuente a data server
  • Lock Contention: Múltiples app servers compitiendo por mismos locks
  • Connection Instability: Desconexiones frecuentes interrumpen operaciones
  • Insufficient Cache: Conjunto de trabajo no cabe en caché asignada

Herramientas de Diagnóstico:

  • %Monitor.System.HistoryDump: Recopilar métricas del sistema a lo largo del tiempo
  • Utilidad mgstat: Estadísticas del sistema en tiempo real
  • Console.log: Eventos y errores de conexión
  • Consultas de estado ECP: Consultas SQL contra tablas del sistema ECP
  • ^%FREECNT: Verificar uso de buffer global

Mejores Prácticas de Monitoreo: 1. Establezca métricas de línea base para operación normal 2. Configure alertas para fallos de conexión o degradación de rendimiento 3. Monitoree ratios de hit de caché y ajuste tamaños de caché según sea necesario 4. Rastree tendencias a lo largo del tiempo para identificar degradación gradual 5. Correlacione métricas ECP con rendimiento de aplicación 6. Monitoree durante períodos de uso pico 7. Pruebe monitoreo durante escenarios de failover

Monitoreo Programático: Use métodos de clase para integración con sistemas de monitoreo:

  • %Monitor.System.LineByLine: Métricas detalladas de proceso
  • Métodos de estado ECP.Server: Estado de conexión programáticamente
  • %SYS.ECP: Configuración y estadísticas ECP

Solución de Problemas de Conexión: Cuando el monitoreo revela problemas de conexión: 1. Verifique conectividad de red entre servidores 2. Verifique que servicio ECP esté ejecutándose en data server 3. Confirme que credenciales de autenticación sean correctas 4. Revise reglas de firewall para puerto ECP 5. Verifique console logs para mensajes de error específicos 6. Pruebe conexión usando herramientas del Management Portal 7. Verifique que data server tenga capacidad para conexiones adicionales

Ajuste de Rendimiento Basado en Monitoreo:

  • Aumente tamaño de caché si ratio de hit es bajo y hay memoria disponible
  • Ajuste timeouts de conexión si red es inestable
  • Redistribuya usuarios si algunos app servers están sobrecargados
  • Agregue app servers si todos están cerca de capacidad
  • Optimice ruta de red si latencia es alta
  • Revise consultas de aplicación si muchas son ineficientes en caché

Resumen de Preparación para el Examen

Conceptos Críticos a Dominar:

  1. Rol de Data Server: Almacena datos, gestiona locks, sincroniza cachés a través del cluster
  2. Rol de Application Server: Maneja solicitudes de usuario, mantiene caché local, se conecta a data server
  3. Almacenamiento en Caché Distribuido: Escalamiento horizontal transparente para aplicación para volumen de usuarios
  4. Configuración de Base de Datos Remota: App server mapea namespaces locales a bases de datos remotas en data server
  5. Coherencia de Caché: Data server asegura que todas las cachés de app server permanezcan sincronizadas
  6. Recuperación de Conexión: Tanto data como app servers monitorean conexiones e intentan recuperación
  7. ECP + Mirroring: App servers auto-redirigen después de failover de mirror

Escenarios Comunes de Examen:

  • Distinguir roles de data server vs application server
  • Configurar conexiones de base de datos remota en application servers
  • Comprender sincronización y coherencia de caché
  • Monitorear estado y rendimiento de conexión ECP
  • Solucionar fallos de conexión ECP
  • Planificar topología ECP para escalamiento horizontal
  • Comprender impacto de latencia de red en rendimiento ECP

Recomendaciones de Práctica Práctica:

  • Configurar instancias de data server y application server
  • Configurar mapeos de base de datos remota en application servers
  • Monitorear conexiones ECP desde perspectivas de data y app server
  • Probar failover y recuperación de application server
  • Revisar métricas de rendimiento ECP y estadísticas de caché
  • Simular interrupción de red y observar recuperación
  • Escalar agregando/eliminando application servers

Report an Issue