Evaluating performance of a fault-tolerant system that implements replication and load balancing

University essay from Linköpings universitet/Institutionen för datavetenskap

Author: Oskar Gustafsson; Rickard Hellenberg; [2017]

Keywords: ;

Abstract: Companies and organizations increasingly depend on their computer systems to help them in their work. This means that the availability of these computer systems becomes even more important as organizations are increasingly dependent on it to function. Therefore, fault tolerance needs to be considered when designing a computer system. However, when implementing fault tolerance to increase the availability it may affect the performance of the system. This thesis describes an implementation of a system that provides fault tolerance against fail-stop faults and analyzes the performance. The system consist of a primary server and a backup server and each has a GO web server and a MySQL database installed. MySQL has a built-in functionality for replication that is used to replicate the data from the primary to the replica. Two different approaches for replication are used and compared in this thesis. The system also has a load balancing server with a program called HAProxy installed. The program is used to switch between servers in case of a failure and enables load balancing between the servers, although this setup only allows for read requests to be sent to the backup server. The measurements of the implemented system shows that enabling load balancing for read requests has little effect on lower the response time when the system is under low load. For 25 users the response time was just 5 ms faster when enabling load balancing. For 50 users however, the response time was 33 ms faster when enabling load balancing. The system was evaluated using measurements of the response time and the percentage of stale data under different network loads and different requests from the system. Two different methods of replication in MySQL: asynchronous and semisynchronous were tested to see how they affect the response time and the consistency of the system. The measurements show asynchronous replication has a lower response time, but semisynchronous replication has less stale data. This means that choosing between asynchronous or semisynchronous replication is a trade-off between choosing lower response time or choosing less stale data and less risk of losing data.

  AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)