@unpublished{upm1082, year = {2008}, doi = {10.20868/UPM.thesis.1082}, school = {Informatica}, note = {Unpublished}, month = {June}, title = {Replicaci{\'o}n Auton{\'o}mica de Bases de Datos}, author = {Mil{\'a}n Franco, Jes{\'u}s Manuel}, keywords = {Computaci{\'o}n auton{\'o}mica, bases de datos replicadas, control de carga, equilibrado de carga.}, url = {https://oa.upm.es/1082/}, abstract = {En los {\'u}ltimos a{\~n}os, la evoluci{\'o}n de los sistemas inform{\'a}ticos ha creado sistemas cada vez m{\'a}s complejos que constan de multitud de elementos interconectados a trav{\'e}s de redes de comunicaciones r{\'a}pidas. La configuraci{\'o}n {\'o}ptima de cada uno de estos elementos para obtener el m{\'a}ximo rendimiento del sistema depende de un gran n{\'u}mero de factores como son la carga del sistema, el tipo de carga y el hardware sobre el que se ejecuta, entre otros. Esta diversidad de par{\'a}metros de configuraci{\'o}n hace que la administraci{\'o}n de dichos sistemas sea cada vez m{\'a}s complicada y que requiera administradores de sistemas con mucha experiencia y dedicaci{\'o}n a estas tareas. Dichos sistemas, adem{\'a}s, est{\'a}n sujetos a cambios de diversa naturaleza como son variaciones en la carga del sistema, en el tipo de carga, en los recursos disponibles; fallos y recuperaciones de los elementos del sistema, etc. Por esta raz{\'o}n ha surgido la necesidad de crear sistemas que sean capaces de adaptarse de forma autom{\'a}tica a los cambios en el entorno que les rodea sin necesidad de intervenci{\'o}n humana y que al mismo tiempo exhiban un alto rendimiento y calidad de servicio. Estos sistemas adaptables din{\'a}micamente interaccionan con su entorno para detectar los cambios en el mismo, analizan la informaci{\'o}n obtenida para generar configuraciones {\'o}ptimas a las condiciones actuales del entorno y modifican su configuraci{\'o}n para adaptarse a estos cambios. El objetivo de estos sistemas es maximizar el rendimiento del sistema de acuerdo a las m{\'e}tricas de rendimiento de inter{\'e}s. En estos sistemas distribuidos, la replicaci{\'o}n de datos juega un papel muy importante como forma de aumentar el rendimiento. Hasta ahora la replicaci{\'o}n se implementaba dentro de la propia base de datos, lo que obligada a realizar modificaciones en la base de datos y estos no siempre eran posibles. Una l{\'i}nea de investigaci{\'o}n nueva iniciada en el LSD y que ha sido adoptada por gran parte de los investigadores es la implementar la l{\'o}gica de la replicaci{\'o}n fuera de la base de datos a nivel de middleware. Este trabajo de investigaci{\'o}n se enmarca dentro de esta l{\'i}nea de investigaci{\'o}n y en {\'e}l se estudia la adaptabilidad din{\'a}mica en el contexto de las bases de datos replicadas basadas en middleware. La adaptabilidad del sistema replicado afecta principalmente a dos {\'a}reas de trabajo: La adaptaci{\'o}n local (el control del nivel de concurrencia) y la adaptaci{\'o}n global (el equilibrado de carga). El objetivo de la adaptaci{\'o}n local es conseguir el m{\'a}ximo rendimiento de cada r{\'e}plica individualmente sin llegar a sobrecargarlas, mientras que el objetivo de la adaptaci{\'o}n global es conseguir que la carga del sistema est{\'e} equilibrada, evitando de esta forma que algunas r{\'e}plicas est{\'e}n saturadas, mientras que otras est{\'e}n ociosas. El trabajo realizado en esta tesis desarrolla un sistema de replicaci{\'o}n adaptable a nivel de middleware que englobe ambas {\'a}reas de trabajo desarrollando protocolos y algoritmos para el control de la concurrencia a nivel local y el equilibrado de carga a nivel global y que maximizan de forma autom{\'a}tica el rendimiento del sistema bajo distintos tipos de carga, fallos y recuperaci{\'o}n de r{\'e}plicas. ABSTRACT.In the last years, computer systems have evolved from mainframes to complex systems made out of thousands of interconnected elements through fast communication networks. Optimal tuning of such elements to get the highest performance of the system depends on a great number of factors such as system load, workload, hardware, etc. This number of parameters makes systems administration a very hard task and requires fulltime skilful system administrators. Furthermore such systems are subject to changes in their environment such as load, type of workload, available resources, fail and recoveries of system elements, etc. This makes necessary to build systems that are able to adapt themselves automatically to the changes in the environment without any human operation while they show high performance and QoS. These dynamic adaptive systems interact with their environment to detect the changes, analyse the data gathered to generate optimal configurations for the current environmental conditions and modify their configuration accordingly to adapt themselves to these changes. Their objective is to maximize system performance according to some target performance metrics. In distributed systems, data replication plays a main role to improve the performance. Until now, replication was implemented inside the database, which implies changes in the database code that were not always feasible. A new research line started in LSD and adopted by a majority of the researches is to implement the replication logic outside the database at a middleware level. This research work fall in this research line and it studies dynamic adaptability in the context of middleware replicated databases. Adaptability in replicated systems deals with two key issues: local adaptation (control of concurrency level) and global adaptation (load balancing). The objective of local adaptation is to get the maximum performance of each individual replica without overloading, and the objective of global adaptation is to evenly distribute the load of the system avoiding overloading some replicas, while other are idle. The work done in this thesis develops an adaptive replicated system at middleware level that covers both areas developing protocols and algorithms for concurrency control at local level and load balancing at global level that automatically maximize the system performance under different load conditions, workloads, and replica failures and recoveries.} }