Javier (Javi) Falcón (2008)

BSc Student

in

BSc report: Empirical Evaluation of the Usability of Software Transactional Memory Frameworks (in Spanish)
Internship at: DI - FCT - UNL
Period: March 2008 — July 2008
Grade: 19/20

El objetivo principal de este proyecto es realizar una evaluación práctica, mediante el desarrollo de una aplicación, de algunos de los principales sistemas de memoria transaccional disponibles actualmente. Evaluación comparativa entre todos los sistemas probados a nivel de rendimiento, y también y no menos importante a nivel de usabilidad. Para satisfacer el objetivo del proyecto se ha requerido un estudio general de las transacciones en bases de datos, centrándonos en las propiedades básicas que una transacción debe cumplir y los problemas que pueden surgir a la hora de ejecutar concurréntemente más de una de ellas. Tras estudiar de manera general la base de los sistemas transaccionales, las transacciones en BBDD, realizamos un estudio más detallado de los sistemas transaccionales en memoria (TM), veremos la parte que hereda de las BBDD y la parte que no. Nos centraremos también en el estudio de los diferentes sistemas TM usados, sobre todo a nivel práctico. Por último para llevar a cabo nuestra evaluación realizaremos el diseño e implementación de una aplicación, por un lado una estructura de árbol binario abstracto, y por otro lado un cliente con uno o más threads, que realizarán de manera concurrente operaciones aleatorias de inserción, búsqueda y borrado sobre una instancia del árbol. Siguiendo el mismo diseño, en la medida de lo posible, para todos los sistemas de TM probados como para una versión bloqueante mediante locks. Una vez diseñada la aplicación se han preparado una serie de test que lanzarán la ejecución, sobre una máquina multiprocesador, cedida por SUN, de la aplicación con diferente carga, número de threads y porcentajes de operaciones de inserción, de búsqueda y de borrado, para cada uno de los sistemas TM y de la aplicación secuencial mediente locks. Los resultados obtenidos mediante los tests serán utilizados para realizar una comparativa de las prestaciones de rendimiento de cada uno.