Implementacin en C del benchmark de transacciones distribuidas
Implementación en C del benchmark de transacciones distribuidas TPC-C. Autores: Julio A. Hernández Gonzalo. Eduardo Hernández Perdiguero. Tutor: Diego R. Llanos Ferraris. Departamento de Informática Escuela Universitaria Politécnica Universidad de Valladolid
Introducción l Benchmark: programa que mide el rendimiento de un sistema. l Objetivo: – Construir una implementación de la versión 5 del benchmark de transacciones distribuidas TPC-C: • Multiplataforma. Comparación de máquinas UNIX/linux. • Libre distribución. • Medir el rendimiento de un cluster experimental en el Departamento de Informática. El nombre adoptado para esta implementación ha sido TPCC-UVA.
Introducción l TPC-C: – Transaction Processing Performance Council (TPC). – No hay implementación de dominio público. – Simula un entrorno de aplicación OLTP (On-Line Transaction Processing). – Se compone de una serie de terminales que solicitan la ejecución de transacciones contra una base de datos. – La medida de rendimiento se expresa en tpm. C: transacciones por minuto.
Introducción l ¿Por qué TPC-C? : – Es un benchmark de base de datos. • Además de operaciones numéricas pone en juego otros recursos del sistema: accesos a disco, entradas y salidas, comunicaciones. . . • La información resulta relevante en sectores comerciales. – TPC-C es uno de los benchmark de bases de datos más utilizados en la actualidad.
TPCC-UVA l Simula la actividad de una empresa de venta al por mayor con almacenes y distritos de ventas distribuidos geográficamente. Compañía Almacén 1 Distrito 1 1 2 Almacen W Distrito 2 3 k Distrito 10 30 k Clientes
TPCC-UVA l Carga de trabajo: un conjunto de terminales solicitan la ejecución de una mezcla de cinco tipos de transacciones. l Las transacciones son: • • • New-Order: Introduce una nueva orden. Payment: Pago de una orden. Order-Status: Consulta del estado de una orden. Delivery: Reparto de las órdenes de un almacén. Stock-Level: Consulta las existencias de los artículos.
TPCC-UVA l Las transacciones se ejecutan según una mezcla ponderada: • • • New-Order: Payment: Order-Status: Delivery: Stock-Level: 43, 47% 4, 35% N/D 40% 4% 4% 4% l El número de New-Order ejecutadas por minuto determina la tasa de rendimiento tpm. C.
TPCC-UVA l Base de datos: – Se compone de nueve tablas con distintas características en cuanto a su esquema y cardinalidad. – El tamaño viene determinado por el número de almacenes. – Utilizamos SQL embebido en C para implementar las operaciones con la base de datos. – Utilizamos el motor postgre. SQL-7. 1. 3 para gestionar el sistema de base de datos.
Esquema del TPCC-UVA Controlador de Checkpoints BD Controlador de Limpiezas Controlador del benchmark ETR Señales postgre. SQL Accesos a disco Comunicación entre procesos MT Bitácoras MT ETR Bitácora ETR
Esquema del TPCC-UVA l Controlador del benchmark. – Proporciona el interfaz con el usuario para el acceso a las operaciones del benchmark: • • Creación de una nueva base de datos. Restauración de una base de datos existente. Comprobación de las condiciones de consistencia de la base de datos. Ejecución de un test de rendimiento. Recuento de resultados del último test realizado. Comprobación del estado de la base de datos. Eliminación de la base de datos.
Esquema del TPCC-UVA l Emulador de Terminal Remoto -ETR-. – Emulación de Usuario: • • • Selección de la siguiente transacción. Generación de los datos de transacción. Simulación de los tiempos de teclado y de pensar. – Emulación de terminal: • Muestra los datos generados. • Muestra los datos resultantes de la ejecución de transacciones.
Esquema del TPCC-UVA l Emulador de Terminal Remoto -ETR-. – Envía las solicitudes de transacción y recibe los resultados. – Mide los tiempos de respuesta de las transacciones. – Registra en la bitácora los datos necesarios para el cálculo del rendimiento.
Esquema del TPCC-UVA l Monitor de Transacciones -MT-: – Ejecuta las transacciones enviadas por los ETR según su orden de llegada. – Mide el tiempo de ejecución de la transacción Delivery. – Escribe en un fichero los resultados de la transacción Delivery. – Registra en una bitácora los posibles errores resultantes de la ejecución de las transacciones.
Esquema del TPCC-UVA l Controlador de Checkpoints. – Checkpoint: operación en la que se trasladan las modificaciones de la base de datos de unos ficheros intermedios a los registros de la base de datos. – Realiza checkpoints periódicos.
Esquema del TPCC-UVA l Controlador de Limpiezas. – Postgre. SQL mantiene información residual en la base de datos que relentiza las transacciones. – El Controlador de Limpiezas se encarga de realizar las limpiezas (vacuum) periódicamente sobre la base de datos. – El usuario decide realizar o no las limpiezas. De hacerlo determina el intervalo entre ellas.
Comunicaciones ETR - MT l Se utilizan los mecanismos IPC del estándar UNIX System V. MT ETR Memoria compartida Semáforo de sincronismo Cola de mensajes ETR
Ejecución del test de rendimiento Periodo de rampa Periodo de medida Periodo de fin de test Tiempo Controlador del benchmark Controlador de Limpiezas Controlador de Checkpoints ETR MT ETR t W
Resultados obtenidos l Características del sistema: • Procesador AMD Athlon XP 1900+ (1, 6 GHz). • Disco duro 60 Gb a 7200 rpm. • Memoria Ram 512 Mb a 333 MHz. l Características del test: • • Cinco almacenes en la base de datos. Periodo de rampa 20 minutos. Periodo de medida 2 horas. Sin limpiezas en la base de datos. l Rendimiento medido: 61, 375 tpm. C.
Resultados obtenidos Salida del programa:
Resultados obtenidos
Resultados obtenidos
Resultados obtenidos
Resultados obtenidos.
Tests de larga duración Test de 8 horas sin limpiezas Rendimiento medido: 42, 302 tpm. C. Test fallido. Test de 8 horas con limpiezas cada 60 minutos Rendimiento medido: 55, 956 tpm. C. Test pasado.
Comentarios sobre la implementación l Postgre. SQL no es capaz de mantener el rendimiento en tests de larga duración. l El Monitor de Transacciones utiliza una cola de mensajes para procurar el aislamiento de las transacciones. Trabajo futuro: paralelizarlas. l Los resultados del TPCC-UVA no deben compararse con los obtenidos con otras implementaciones del TPC -C.
Conclusiones Se ha construido una herramienta válida para medir el rendimiento de sistemas UNIX/Linux siguiendo las especificaciones del estándar TPC-C. l Se han comunicado los procesos mediante los mecanismos IPC del estándar UNIX System V. l Se ha utilizado como motor de base de datos postgre. SQL. Gracias a ello TPCC-UVA puede distribuirse libremente. l www. infor. uva. es/~diego/TPCC-UVA. htm
Conclusiones Se ha realizado una traducción literal de las especificaciones de la versión 5 del benchmark TPC-C (130 páginas) para iniciar una línea de investigación en benchmarking. l Se ha escrito un artículo que ha sido aceptado y que será defendido en las Jornadas de Paralelismo de Lérida el próximo mes de Septiembre. l “TPCC-UVA: Implementación del TPC-C” J. A. Hernández, E. Hernández y D. R. Llanos. XIII Jornadas de Paralelismo, Lérida, Septiembre 2002
- Slides: 27