High Availability: Transaction Processing and Databases

2014 ◽  
pp. 303-326
Author(s):  
Wenbing Zhao ◽  
Louise E. Moser ◽  
P. Michael Melliar-Smith

Enterprise applications, such as those for e-commerce and e-government, are becoming more and more critical to our economy and society. Such applications need to provide continuous service, 24 hours a day, 7 days a week. Any disruption in service, including both planned and unplanned downtime, can result in negative financial and social effects. Consequently, high availability and data consistency are critically important for enterprise applications. Enterprise applications are typically implemented as three-tier applications. A three-tier application consists of clients in the front tier, servers that perform the business logic processing in the middle tier, and database systems that store the application data in the backend tier, as shown in Figure 1. Within the middle tier, a server application typically uses a transaction processing programming model. When a server application receives a client’s request, it initiates one or more transactions, which often are distributed transactions. When it finishes processing the request, the server application commits the transaction, stores the resulting state in the backend database, and returns the result to the client. A fault in the middle tier might cause the abort of a transaction and/or prevent the client from knowing the outcome of the transaction. A fault in the backend tier has similar consequences. In some cases, the problems can be a lot worse. For example, a software design fault, or an inappropriate heuristic decision, might introduce inconsistency in the data stored in the database, which can take a long time to fix. Two alternative recovery strategies, namely roll-backward and roll-forward, can be employed to tolerate and recover from a fault. In roll-backward recovery, the state of the application that has been modified by a set of unfinished operations is reversed by restoring it to a previous consistent state. This strategy is used in transaction processing systems. In roll-forward recovery, critical components, processes, or objects are replicated on multiple computers so that if one of the replicas fails, the other replicas continue to provide service, which enables the system to advance despite the fault. Many applications that require continuous availability take the roll-forward approach. Replication is commonly employed in the backend tier to increase the reliability of the database system. There has been intense research (Frolund & Guerraoui, 2002; Zhao, Moser, & Melliar-Smith, 2005a) on the seamless integration of the roll-backward and roll-forward strategies in software infrastructures for three-tier enterprise applications, to achieve high availability and data consistency. High availability is a measure of the uptime of a system, and typically means five nines (99.999%) or better, which corresponds to 5.25 minutes of planned and unplanned downtime per year. Data consistency means that the application state stored in the database remains consistent after a transaction commits. Both transactions and replication require consistency, as the applications execute operations that change their states. Transactions require data consistency, and replication requires replica consistency.


2009 ◽  
Vol E92-B (1) ◽  
pp. 26-33
Author(s):  
Yi-Hsuan FENG ◽  
Nen-Fu HUANG ◽  
Yen-Min WU
Keyword(s):  

Author(s):  
Linda Apriliana ◽  
Ucuk Darusala Darusalam ◽  
Novi Dian Nathasia

Layanan dan data teknologi Cloud Computing tersimpan pada server, hal ini menjadikan faktor pentingnya server sebagai pendukung ketersediaan layanan. Semakin banyak pengguna yang mengakses layanan tersebut akan mengakibatkan beban kinerja mesin server menjadi lebih berat dan kurang optimal, karena layanan harus bekerja menyediakan data terus-menerus yang dapat diakses kapanpun oleh penggunanya melalui jaringan terkoneksi. Perangkat keras server memiliki masa performa kinerja. Hal serupa dengan perangkat lunak yang dapat mengalami crash. Dengan fungsi server yang memberikan layanan kepada client, server dituntut untuk memiliki tingkat availability yang tinggi. Hal tersebut memungkinkan mesin server mengalami down. Server juga harus dimatikan untuk keperluan pemeliharaan. Penelitian bertujuan ini membangun Clustering Server yang dapat bekerja bersama yang seolah merupakan sistem tunggal diatas lingkungan virtual. Hal ini merupakan solusi untuk mengatasi permasalahan tersebut. Pada penelitian ini penulis menggunakan server virtualisasi proxmox, FreeNAS sebagai server NAS dan DRBD untuk pendukung ketersediaan layanan tinggi dalam lingkup HA, sinkronisasi data dalam High Availability (HA) yang dapat melakukan mirroring sistem kemesin lain. Dengan diterapkannya metode HA dan sinkronasi DRBD serta penggunaan NFS (Network File System) pada sistem cluster didapatkan hasil rata-rata waktu migrasi sebesar 9.7(s) pada node1 menuju node2, 3.7(s) node2 menuju node3, dan 3(s) pada node3 menuju node1. Didaptkan juga waktu downtime yang lebih sedikit yaitu sebesar 0.58 ms pada node1, 0.02 ms pada node2, dan 0.02 ms pada node3.


Sign in / Sign up

Export Citation Format

Share Document