Facultad de Ciencias de la Ingeniería Escuela de Ingeniería Civil en Informática UN SISTEMA DE PERSISTENCIA DE DATOS DE ALTO RENDIMIENTO, BAJA LATENCIA Y ALTA DISPONIBILIDAD PARA TRADING ENGINE Proyecto para optar al título de PROFESOR PATROCINANTE: Ingeniero Civil en Informática JAIME DUARTE PINO INGENIERO EN INFORMÁTICA MAGÍSTER EN DIRECCIÓN FINANCIERA PROFESOR CO-PATROCINANTE: MARÍA ELIANA DE LA MAZA WERNER INGENIERO CIVIL EN INFORMÁTICA MAGISTER EN INFORMÁTICA EDUCATIVA PROFESOR INFORMANTE: RAIMUNDO VEGA VEGA DOCTOR EN INFORMÁTICA MASTER EN INFORMÁTICA ESTADÍSTICO HUMBERTO CARLOS ROBERTO PADGET LORCA VALDIVIA – CHILE 2013 AGRADECIMIENTOS En primer lugar agradecer a mis padres Carlos y Rebeca por darme todo su amor, esfuerzo y apoyo incondicional durante toda mi vida. A Cristalita por su amor, cariño y motivación, por estar incondicionalmente siempre a mi lado A mis amigos y compañeros de trabajo que también una vez fueron compañeros de universidad. A Jaime Duarte por su apoyo y confianza. Y todos aquellos profesores, de la Universidad Austral de Chile, que no se limitaron solamente a enseñar, sino que compartieron sus experiencias de vida. ii ÍNDICE DE CONTENIDO AGRADECIMIENTOS ........................................................................................................................ ii ÍNDICE DE CONTENIDO ................................................................................................................. iii ÍNDICE DE TABLAS .......................................................................................................................... vi ÍNDICE DE FIGURAS ....................................................................................................................... vii RESUMEN ........................................................................................................................................... ix ABSTRACT .......................................................................................................................................... x 1 INTRODUCCIÓN ........................................................................................................................ 1 1.1 ANTECEDENTES GENERALES ................................................................................................... 1 1.2 CONTRIBUCIÓN DEL PROYECTO DE TÍTULO .............................................................................. 4 1.3 RELEVANCIA E IMPACTO DEL ESTUDIO..................................................................................... 4 1.4 OBJETIVOS GENERALES Y ESPECÍFICOS .................................................................................... 5 1.4.1 Objetivos Generales ........................................................................................................... 5 1.4.2 Objetivos Específicos ......................................................................................................... 5 1.5 ORGANIZACIÓN DEL PROYECTO DE TÍTULO ............................................................................. 6 1.6 NOMENCLATURA .................................................................................................................... 7 2 MARCO TEÓRICO ..................................................................................................................... 8 2.1 MARCO EN EL CUAL SE DESENVUELVE EL PROYECTO ................................................................ 8 2.2 SISTEMAS TRANSACCIONALES ................................................................................................. 9 2.3 SISTEMAS DE ALTA DISPONIBILIDAD .......................................................................................10 2.3.1 Modelos de Alta Disponibilidad ........................................................................................11 2.3.2 Consideraciones para alta disponibilidad..........................................................................12 2.4 DISASTER RECOVERY .............................................................................................................13 2.4.1 Proceso de planeación del Disaster Recovery ....................................................................14 2.5 DESCRIPCIÓN DE PROTOCOLOS DE COMUNICACIÓN ..................................................................16 2.5.1 Red de computadores ........................................................................................................16 2.5.2 Protocolo UDP .................................................................................................................17 2.5.3 Protocolo TCP ..................................................................................................................18 2.5.4 WebSphere MQ Low Latency Messaging (WLLM) .............................................................18 3 BASES DE DATOS .....................................................................................................................21 3.1 MODELOS DE BASES DE DATOS ...............................................................................................22 3.1.1 Modelo plano ....................................................................................................................22 3.1.2 Modelo jerárquico ............................................................................................................23 3.1.3 Modelo de red ...................................................................................................................24 3.1.4 Modelo relacional .............................................................................................................25 3.1.5 Modelo Objeto-Relacional ................................................................................................27 3.2 TIPOS DE BASES DE DATOS .....................................................................................................28 3.3 BASES DE DATOS EN MEMORIA ...............................................................................................29 3.3.1 Descripción ......................................................................................................................29 3.3.2 Optimizaciones en la arquitectura de una IMDB ...............................................................31 3.3.3 Configuraciones de alta disponibilidad. ............................................................................36 iii 4 COMPARACION Y SELECCIÓN DE HERRAMIENTAS ......................................................39 4.1 CONFIGURACIÓN HARDWARE Y SOFTWARE .............................................................................40 4.2 CONSTRUCCIÓN DE LABORATORIO ..........................................................................................41 4.3 RESULTADOS DE LOS LABORATORIOS CON BASES DE DATOS EN DISCO ......................................42 4.3.1 Prueba N° 1: Inserción en tabla Test, modo auto-commit. .................................................42 4.3.2 Prueba N° 2: Inserción en tabla Test, modo batch insert (100 – 500). ................................42 4.3.3 Prueba N° 3: Inserción en tabla Test2 en modalidad batch insert. .....................................44 4.4 RESULTADOS DE LOS LABORATORIOS CON BASES DE DATOS EN MEMORIA ................................45 4.4.1 Prueba N° 1: Inserción en tabla Test, modo auto-commit. .................................................45 4.4.2 Prueba N° 2: Inserción en tabla Test, modo batch insert (100 – 500). ................................46 4.4.3 Prueba N° 3: Inserción en tabla Test2 en modalidad batch insert. .....................................47 4.5 CONCLUSIONES DE LOS LABORATORIOS ..................................................................................48 4.6 OTROS CRITERIOS DE SELECCIÓN DEL MOTOR DE BASE DE DATOS.............................................50 4.7 RESULTADOS DE EVALUACIÓN DE BASE DE DATOS ..................................................................51 5 DEFINICION DE LA APLICACIÓN ........................................................................................52 5.1 ESPECIFICACIÓN DE REQUERIMIENTOS ...................................................................................52 5.1.1 Requerimientos funcionales ...............................................................................................52 5.1.2 Requerimientos no funcionales ..........................................................................................54 5.2 ANÁLISIS DE REQUERIMIENTOS ..............................................................................................56 5.2.1 Modelo de procesos ..........................................................................................................56 5.2.2 Actores y casos de uso.......................................................................................................57 5.3 DISEÑO DEL SISTEMA.............................................................................................................59 5.3.1 Diseño de alta disponibilidad ............................................................................................63 5.3.2 Diseño disaster recovery ...................................................................................................64 5.3.3 Restricciones del Diseño ...................................................................................................65 5.3.4 Diagrama de topología .....................................................................................................65 5.3.5 Modelo de Datos ...............................................................................................................68 6 CONSTRUCCION DEL PROTOTIPO ......................................................................................69 6.1 CONSTRUCCIÓN DEL PROTOTIPO .............................................................................................69 6.1.1 Primera iteración..............................................................................................................69 6.1.2 Segunda iteración .............................................................................................................70 6.1.3 Tercera iteración ..............................................................................................................70 6.2 PRESENTACIÓN DEL PROTOTIPO ..............................................................................................71 6.3 PLAN DE VALIDACIÓN ............................................................................................................74 7 RESULTADOS Y BENEFICIOS OBTENIDOS ........................................................................76 7.1 REQUERIMIENTOS ..................................................................................................................76 7.2 BENEFICIOS OBTENIDOS .........................................................................................................77 8 CONCLUSIONES Y/O RECOMENDACIONES.......................................................................78 8.1 CONCLUSIONES .....................................................................................................................78 8.2 MEJORAS A LA SOLUCIÓN .......................................................................................................80 9 REFERENCIAS ..........................................................................................................................81 ANEXO A. SCRIPTS DE CREACION DE TABLAS PARA BENCHMARKS ................................84 ANEXO B. MODELO DE DATOS SISTEMA DE PERSISTENCIA ................................................85 iv ANEXO C. CONFIGURACIÓN WLLM DE SISTEMA DE PERSISTENCIA ................................86 v ÍNDICE DE TABLAS Tabla Página Tabla 1: Clasificación de disponibilidad. [BOX] .......................................................... 11 Tabla 2: Comparación de base de datos en memoria y disco. ........................................ 30 Tabla 3: Comparación de DBMS basados en disco. [Kom07]....................................... 39 Tabla 4: Comparación de IMDB evaluadas. [Man13] ................................................... 40 Tabla 5: Tabla de tiempos promedio en modo auto-commit sobre Test. ........................ 42 Tabla 6: Tabla de tiempos promedio modo batch insert con proc. almacenados. .......... 43 Tabla 7: Tabla de tiempos promedio modo batch insert con SQL embebido. ................ 43 Tabla 8: Tabla de tiempos promedio modo batch insert con proc. almacenados. .......... 44 Tabla 9: Tabla de tiempos promedio modo batch insert con SQL embebido. ................ 45 Tabla 10: Tabla de tiempos promedio inserción modo auto-commit. ............................ 45 Tabla 11: Tabla de tiempos promedio modo batch insert con proc. almacenados. ........ 46 Tabla 12: Tabla de tiempos promedio modo batch insert con SQL embebido. .............. 46 Tabla 13: Tabla de tiempos promedio modo batch insert con proc. almacenados. ........ 47 Tabla 14: Tabla de tiempos promedio modo batch insert con SQL embebido. .............. 48 Tabla 15: Tabla ponderaciones características DBMS. ................................................. 50 Tabla 16: Matriz evaluación DBMSs. .......................................................................... 51 Tabla 17: Requerimientos funcionales. ......................................................................... 52 Tabla 18: Requerimientos no funcionales ..................................................................... 54 vi ÍNDICE DE FIGURAS Figura Página Figura N° 1: Conceptos y sistemas de información asociados. [SIN] .............................. 2 Figura N° 2: Tipos de soluciones y nivel de resiliencia. [DRP] ..................................... 14 Figura N° 3: RPO y RTO en línea de tiempo. [CEL] .................................................... 15 Figura N° 4: Esquema de Disaster Recovery implementado por la Bolsa de Comercio . 16 Figura N° 5: Comparación modelos OSI y TCP/IP. [TEC] ........................................... 17 Figura N° 6: Estructura datagrama UDP. [WIKb] ........................................................ 17 Figura N° 7: Comunicación RMM. [Cre09] ................................................................. 19 Figura N° 8: Esquema ejemplo de configuración WLLM con alta disponibilidad. [Won11] ...................................................................................................................... 20 Figura N° 9: Modelo plano. [STU] ............................................................................... 22 Figura N° 10: Modelo jerárquico. [STU] ...................................................................... 23 Figura N° 11: Modelo de red. [STU] ............................................................................ 24 Figura N° 12: Ejemplo modelo relacional. [STU] ......................................................... 26 Figura N° 13: Comparación de base de datos en disco y TimesTen. [ORA13] .............. 32 Figura N° 14: Ejemplo simplificado de estructura Vtrie. [IBM13] ................................ 33 Figura N° 15: Replicación asincrónica. [ORA13] ......................................................... 37 Figura N° 16: Base de datos HSB. [Bal11] ................................................................... 37 Figura N° 17: Ilustración de niveles de seguridad en protocolo de replicación. [Bal11] 38 Figura N° 18: Gráfico de tiempos promedio en modo auto-commit sobre Test. ............ 42 Figura N° 19: Gráfico de tiempos promedio modo batch insert con proc. almacenados.43 Figura N° 20: Gráfico de tiempos promedio modo batch insert con SQL embebido. .... 44 Figura N° 21: Gráfico de tiempos promedio modo batch insert con proc. almacenados.44 Figura N° 22: Gráfico de tiempos promedio modo batch insert con SQL embebido. .... 45 Figura N° 23: Gráfico de tiempos promedio modo auto-commit. .................................. 45 Figura N° 24: Gráfico de tiempos promedio modo batch insert con proc. almacenados.46 Figura N° 25: Gráfico de tiempos promedio modo batch insert con SQL embebido. .... 47 Figura N° 26: Gráfico de tiempos promedio modo batch insert con proc. almacenados.47 Figura N° 27: Gráfico de tiempos promedio modo batch insert con SQL embebido. .... 48 Figura N° 28: BPMN de ingreso de orden desde el gateway de órdenes. ...................... 57 Figura N° 29: Caso de uso sistema de persistencia. ...................................................... 59 Figura N° 30: Mapa de arquitectura general. ................................................................ 60 Figura N° 31: Esquema de alta disponibilidad mediante tier WLLM ............................ 63 vii
Description: