UNIVERSIDADE FEDERAL DE SANTA CATARINA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA DE AUTOMAÇÃO E SISTEMAS

Within computer systems, the concept of transaction is one of the most fundamental elements for the specification and implementation of applications with reliability and consistency requirements concerning handling of data. Over the years, relational database management systems (RDBMS) have been considered key components for transaction processing in computer systems; and although some alternatives to RDBMSs have emerged in recent years, there are prospects that a significant number of computer systems will continute to use RDBMSs in coming years. In this sense, the need to provide reliability, availability, performance, fault tolerance and consistency, regarding transaction processing in RDBMS is imminent. Such attributes may be obtained through database replication. The literature is extensive in terms of solutions for data availability regardless of crash faults (e.g. intermittent or permanent). However, faults arising from the disk data corruption or RAM data corruption due to physical effects, or due to bugs in the RDBMS, do not affect the availability of data, though they affect their integrity and consistency. These faults, which are known as Byzantine, have historically been found in RDBMSs, and they affect transaction processing undermining not only the accuracy but also the database state. The literature offers few solutions to deal with Byzantine faults in RDBMSs, where some are based on difficult cases to be used in practice; or more relaxed consistency models, which can cause integrity, consistency or even data corruption problems. So, they are not addressed to all types of applications. As it is, this thesis deals with problems related to transaction processing and transaction termination on RDBMS and distributed systems, in environments subject to Byzantine fault. To this end, this thesis presents two major contributions to the transaction level in RDBMSs. The first is a protocol that allows the transaction processing and transaction, despite Byzantine faults in databases replicas – the first in literature that explores the strongest consistency semantics of transactions (e.g. serializability) –, by means of a fully distributed Byzantine fault tolerant database replication protocol. The second investigates the agreement problem related to transaction termination in distributed systems, also in environments subject to Byzantine fault – an unsolved problem in the literature. The Non–Blocking Atomic Commitment (NBAC), as it known, aims to ensure a uniform decision for the transaction participants about the operations performed in a distributed database environment, that is, commit or abort them. The contribution to this problem is based on the investigation of practical and necessary conditions, to solve it. So, this thesis introduces the Collaborative Transaction Manager to replace the Transaction Manager, traditionally used as an agent on a NBAC protocol. The solution proposed to solve the NBAC with Byzantine fault is based on a new concept, adopting virtualization technology as a support for the specification of a distributed system architecture which makes the problem feasible. The proposed solutions were compared analytically with solutions found in the literature as well as through experimental tests in order to prove their feasibility.