Optimizing recovery protocols for replicated database systems

En la actualidad, el uso de tecnologias de informacion y sistemas de computo tienen una gran influencia en la vida diaria. Dentro de los sistemas informaticos actualmente en uso, son de gran relevancia los sistemas distribuidos por la capacidad que pueden tener para escalar, proporcionar soporte para la tolerancia a fallos y mejorar el desempeno de aplicaciones y proporcionar alta disponibilidad. Los sistemas replicados son un caso especial de los sistemas distribuidos. Esta tesis esta centrada en el area de las bases de datos replicadas debido al uso extendido que en el presente se hace de ellas, requiriendo caracteristicas como: bajos tiempos de respuesta, alto rendimiento en los procesos, balanceo de carga entre las replicas, consistencia e integridad de datos y tolerancia a fallos. En este contexto, el desarrollo de aplicaciones utilizando bases de datos replicadas presenta dificultades que pueden verse atenuadas mediante el uso de servicios de soporte a mas bajo nivel tales como servicios de comunicacion y pertenencia. El uso de los servicios proporcionados por los sistemas de comunicacion de grupos permiten ocultar los detalles de las comunicaciones y facilitan el diseno de protocolos de replicacion y recuperacion. En esta tesis, se presenta un estudio de las alternativas y estrategias empleadas en los protocolos de replicacion y recuperacion en las bases de datos replicadas. Tambien se revisan diferentes conceptos sobre los sistemas de comunicacion de grupos y sincronia virtual. Se caracterizan y clasifican diferentes tipos de protocolos de replicacion con respecto a la interaccion o soporte que pudieran dar a la recuperacion, sin embargo el enfoque se dirige a los protocolos basados en sistemas de comunicacion de grupos. Debido a que los sistemas comerciales actuales permiten a los programadores y administradores de sistemas de bases de datos renunciar en alguna medida a la consistencia con la finalidad de aumentar el rendimiento, es importante determinar el nivel de consistencia necesario. En el caso de las bases de datos replicadas la consistencia esta muy relacionada con el nivel de aislamiento establecido entre las transacciones. Una de las propuestas centrales de esta tesis es un protocolo de recuperacion para un protocolo de replicacion basado en certificacion. Los protocolos de replicacion de base de datos basados en certificacion proveen buenas bases para el desarrollo de sus respectivos protocolos de recuperacion cuando se utiliza el nivel de aislamiento snapshot. Para tal nivel de aislamiento no se requiere que los readsets sean transferidos entre las replicas ni revisados en la fase de cetificacion y ya que estos protocolos mantienen un historico de la lista de writesets que es utilizada para certificar las transacciones, este historico provee la informacion necesaria para transferir el estado perdido por la replica en recuperacion. Se hace un estudio del rendimiento del protocolo de recuperacion basico y de la version optimizada en la que se compacta la informacion a transferir. Se presentan los resultados obtenidos en las pruebas de la implementacion del protocolo de recuperacion en el middleware de soporte. La segunda propuesta esta basada en aplicar el principio de compactacion de la informacion de recuperacion en un protocolo de recuperacion para los protocolos de replicacion basados en votacion debil. El objetivo es minimizar el tiempo necesario para transfeir y aplicar la informacion perdida por la replica en recuperacion obteniendo con esto un protocolo de recuperacion mas eficiente. Se ha verificado el buen desempeno de este algoritmo a traves de una simulacion. Para efectuar la simulacion se ha hecho uso del entorno de simulacion Omnet++. En los resultados de los experimentos puede apreciarse que este protocolo de recuperacion tiene buenos resultados en multiples escenarios. Finalmente, se presenta la verificacion de la correccion de ambos algoritmos de recuperacion en el Capitulo 5.