Title: Implementaci
1Implementació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
2Introducción
- Benchmark programa que mide el rendimiento de un
sistema. - 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.
3Introducción
- 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 tpmC
transacciones por minuto.
4Introducción
- 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.
5TPCC-UVA
- Simula la actividad de una empresa de venta al
por mayor con almacenes y distritos de ventas
distribuidos geográficamente.
6TPCC-UVA
- Carga de trabajo un conjunto de terminales
solicitan la ejecución de una mezcla de cinco
tipos de transacciones. - 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.
7TPCC-UVA
- Las transacciones se ejecutan según una mezcla
ponderada - New-Order
- Payment
- Order-Status
- Delivery
- Stock-Level
- El número de New-Order ejecutadas por minuto
determina la tasa de rendimiento tpmC.
N/D 40 4 4 4
43,47 43,47 4,35 4,35 4,35
8TPCC-UVA
- 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 postgreSQL-7.1.3 para
gestionar el sistema de base de datos.
9Esquema del TPCC-UVA
BD
Señales
Accesos a disco
Controlador de Limpiezas
Comunicación entre procesos
Bitácoras MT
Bitácora ETR
10Esquema del TPCC-UVA
- 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.
11Esquema del TPCC-UVA
- 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.
12Esquema del TPCC-UVA
- 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.
13Esquema del TPCC-UVA
- 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.
14Esquema del TPCC-UVA
- 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.
15Esquema del TPCC-UVA
- Controlador de Limpiezas.
- PostgreSQL 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.
16Comunicaciones ETR - MT
- Se utilizan los mecanismos IPC del estándar UNIX
System V.
Memoria compartida
Semáforo de sincronismo
MT
Cola de mensajes
ETR
ETR
17Ejecución del test de rendimiento
Periodo de rampa
Periodo de medida
Periodo de fin de test
Tiempo
18Resultados obtenidos
- Características del sistema
- Procesador AMD Athlon XP 1900 (1,6GHz).
- Disco duro 60 Gb a 7200 rpm.
- Memoria Ram 512 Mb a 333 MHz.
- 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.
- Rendimiento medido 61,375 tpmC.
19Resultados obtenidos
Salida del programa
20Resultados obtenidos
21Resultados obtenidos
22Resultados obtenidos
23Resultados obtenidos.
24Tests de larga duración
Test de 8 horas sin limpiezas
Test de 8 horas con limpiezas cada 60 minutos
Rendimiento medido 42,302 tpmC. Test fallido.
Rendimiento medido 55,956 tpmC. Test pasado.
25Comentarios sobre la implementación
- PostgreSQL no es capaz de mantener el rendimiento
en tests de larga duración. - El Monitor de Transacciones utiliza una cola de
mensajes para procurar el aislamiento de las
transacciones. - Los resultados del TPCC-UVA no deben compararse
con los obtenidos con otras implementaciones del
TPC-C.
26Conclusiones
- Se ha construido una herramienta válida para
medir el rendimiento de sistemas UNIX/Linux
siguiendo las especificaciones del estándar
TPC-C. - Se han comunicado los procesos mediante los
mecanismos IPC del estándar UNIX System V. - Se ha utilizado como motor de base de datos
postgreSQL. Gracias a ello TPCC-UVA puede
distribuirse libremente.
www.infor.uva.es/diego/TPCC-UVA.htm
27Conclusiones
- 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. - 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.
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