Table Of ContentFacultad 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:DISPONIBILIDAD PARA TRADING ENGINE. Proyecto para disponibilidad llamado “WebSphere Low Latency Messaging” (WLLM), producto de.