IMPLEMENTASI FAULT TOLERANT JDBC
CONNECTOR PADA DBMS MYSQL UNTUK
MENDUKUNG REPLIKASI DI MID TIER PADA
ARSITEKTUR THREE TIER
LAPORAN TUGAS AKHIR
Disusun sebagai syarat kelulusan tingkat sarjana
oleh:
Satria Putra Sajuthi / 13503099
PROGRAM STUDI TEKNIK INFORMATIKA
SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA
INSTITUT TEKNOLOGI BANDUNG
2007
LEMBAR PENGESAHAN Program Studi Teknik Informatika
IMPLEMENTASI FAULT TOLERANT JDBC
CONNECTOR PADA DBMS MYSQL UNTUK
MENDUKUNG REPLIKASI DI MID TIER PADA
ARSITEKTUR THREE TIER
Tugas Akhir
Program Studi Teknik Informatika ITB
Oleh
Satria Putra Sajuthi / 13503099
Telah disetujui dan disahkan sebagai laporan Tugas Akhir
di Bandung, pada tanggal 25 September 2007
Pembimbing
Achmad Imam Kistijantoro, S.T., M.Sc.,Ph.D
NIP: 132320559
ii
ABSTRAKSI
Arsitektur software three tier merupakan pengembangan dari arsitektur twotier(client-server). Kelebihan arsitektur ini dibandingkan pendahulunya adalah dalam segi peningkatan performansi, skalabilitas, fleksibilitas, dan reusability. Untuk membuat sistem dengan arsitektur three tier yang reliable dan fault tolerant diperlukan mekanisme replikasi pada tier tertentu. Tugas akhir ini akan membahas replikasi pada middle tier.
Pada sistem yang tereplikasi, jika terjadi kegagalan pada middle tier server, backup server dapat mengambil alih komputasi dan meneruskan transaksi yang gagal. Namun yang menjadi masalah adalah saat terjadi kegagalan, semua state dan lock tabel mengenai transaksi akan dibatalkan dan backup server akan kehilangan state sementara transaksi yang dibutuhkan untuk mengambil alih eksekusi dari server primary. Untuk mendukung replikasi di middle tier, diperlukan dukungan basis data agar dapat dilakukan pemindahan state transaksi dari koneksi primary ke koneksi backup pada saat koneksi middle tier server ke basis data terputus.
Pada tugas akhir ini dilakukan perubahan implementasi pada MySQL untuk mendukung replikasi di middle tier. Implementasi pada MySQL disesuaikan agar mendukung skema replikasi primary-backup pada middle tier. Pengujian untuk failover antara primary dan backup telah dilakukan dan dapat disimpulkan bahwa failover koneksi berhasil dilakukan tanpa mengubah konsistensi basis data.
Kata kunci : Three tier architecture, replikasi, primary-backup, transaksi, fault tolerance
iii
KATA PENGANTAR Segala puji syukur kepada Tuhan Yang Maha Esa atas berkat rahmat dan kebaikan yang dilimpahkanNya sehingga Penulis dapat menyelesaikan Tugas Akhir yang berjudul ‘Implementasi Fault Tolerant JDBC Connector Pada DBMS MySQL Untuk Mendukung Replikasi Di Mid Tier Pada Arsitektur Three Tier’. Laporan ini dibuat untuk memenuhi syarat kelulusan tingkat sarjana Program Studi Teknik Informatika ITB. Penulis mengucapkan terimakasih kepada nama-nama yang tercantum di bawah ini atas bantuan yang telah diberikan selama penyusunan tugas akhir. 1. Bapak Achmad Imam Kistijantoro, ST. M.Sc. Ph.D selaku dosen pembimbing Tugas Akhir, terimakasih atas bimbingan, dukungan moral, dan petunjuk-petunjuk yang diberikan selama penulis mengerjakan tugas akhir ini. 2. Bapak Sukrisno, Ketua Program Studi Teknik Informatika Institut Teknologi Bandung dan Wali Akademik penulis. 3. Bapak Ir.Afwarman Manaf M.Sc., Ph.D, Ibu Henny Yusnita Zubir B.Sc.,M.T., dan Bapak Bugi Wibowo ST. MT. selaku penguji tugas akhir yang telah memberikan banyak masukan untuk Tugas Akhir ini. 4. Papa dan Mama tercinta, terimakasih untuk doa, dukungan, dan kesabaran dalam menunggu kelulusan penulis. 5. Teman-teman kos penulis : Victor, Efendy, Ujang, Londong, Nathan, Alwin, Tirta, Moren; terimakasih untuk kebersamaannya selama ini. 6. Sahabat-sahabat karib: Arie, Adi, Andri, Ong, Helen, Dian, Krisantus, Andoko, Aldo, Kupet, Davis, Jeffrey, Willy, Anna, Octa; terimakasih atas canda, tawa, dan pertolongan yang diberikan selama penulis menempuh studi di IF ITB. 7. Teman seperjuangan di lab sister : Ronald, Mamat, Udin, Febrian Setiadi yang telah bersama-sama mengerjakan TA di lab sister. 8. Rekan-rekan duktek dan administrator jaringan IF : Bobo, Edo, Kimpul, Fauzi, Ruben, Wildan, Aqsa, Eko, Pandu, Peter, Pak Sudi, Pak Cece, Pak Ryan, Pak Sam, Pak Bambang, Pak Kus; terimakasih atas kerja samanya selama ini.
iv
9. Mba Dewi atas izin cutinya serta rekan-rekan divusi yang lain : Mba Weni, Mba Galih, Mba Tessa, Raiza, Ridho, Keyne, Bemby, dan Fajar; terimakasih atas saran, dukungan dan kerjasamanya. 10. Mery atas dukungan dan semangat yang telah diberikan selama ini. 11. Petugas tata usaha dan perpustakaan program studi Teknik Informatika terutama Pak Rasidi, Pak Ade, Bu Titi, Mba Tita yang selalu bersedia membantu 12. Teman-teman angkatan 2003 serta berbagai pihak yang telah membantu tugas akhir ini yang tidak bisa disebutkan satu persatu.
Penulis menyadari bahwa hasil tugas akhir ini masih jauh dari sempurna. Oleh karena itu, Penulis mengharapkan saran dan masukan dari semua pihak untuk penyempurnaan tugas akhir ini. Penulis berharap semoga Laporan Tugas Akhir ini dapat bermanfaat bagi Penulis, pembaca dan semua pihak yang terkait.
Bandung, 25 September 2007
Penulis
v
DAFTAR ISI
LEMBAR PENGESAHAN...................................................................................................................... ii
ABSTRAKSI ...........................................................................................................................................iii
KATA PENGANTAR............................................................................................................................. iv
DAFTAR ISI ........................................................................................................................................... vi
DAFTAR TABEL DAN GAMBAR...................................................................................................... ix
DAFTAR ISTILAH ................................................................................................................................ x
BAB I PENDAHULUAN ..................................................................................................................... I-1
1.1
Latar Belakang ............................................................................................. I-1
1.2
Rumusan Masalah ........................................................................................ I-4
1.3
Tujuan........................................................................................................... I-4
1.4
Batasan Masalah ........................................................................................... I-4
1.5
Metodologi ................................................................................................... I-4
1.6
Sistematika Pembahasan .............................................................................. I-5
BAB II KAJIAN PUSTAKA ............................................................................................................... II-1
2.1
Three tier architecture ................................................................................. II-1
2.2
Replikasi ...................................................................................................... II-2
2.2.1
Peningkatan Performa ............................................................................ II-2
2.2.2
Peningkatan availabilitas ....................................................................... II-2
2.2.3
Fault tolerance ....................................................................................... II-3
2.2.4
Strategi Replikasi ................................................................................... II-3
2.3
2.2.4.1
Primary-Backup............................................................................ II-4
2.2.4.2
Active Replication ......................................................................... II-5
Database Tier............................................................................................... II-6
2.3.1
Transaction ............................................................................................. II-6
2.3.2
JDBC ...................................................................................................... II-7
2.4
TCP.............................................................................................................. II-8
BAB III EKSPLORASI INTERNAL MYSQL SERVER .................................................................... III-1
3.1
Arsitektur Server Mysql .............................................................................III-1
3.1.1
Query Engine ........................................................................................III-2
3.1.2
Storage Manager ..................................................................................III-3
3.1.3
Buffer Manager .....................................................................................III-3
3.1.4
Transaction Manager............................................................................III-3
vi
3.1.5
Recovery Manager ................................................................................III-4
3.1.6
Interaksi antar komponen ......................................................................III-4
3.2
Penanganan Transaksi ................................................................................III-5
3.3
Protokol MySQL ........................................................................................III-6
3.4
Penanganan Koneksi ..................................................................................III-7
3.5
Eksekusi Perintah .......................................................................................III-9
3.6
Pemutusan Koneksi ....................................................................................III-9
3.7
Objek THD ...............................................................................................III-10
BAB IV ANALISIS DAN PERANCANGAN................................................................................... IV-1
4.1
Identifikasi Masalah .................................................................................. IV-1
4.2
Koneksi dan Transaksi pada JDBC ........................................................... IV-3
4.2.1
Koneksi ................................................................................................ IV-4
4.2.2
Transaksi .............................................................................................. IV-4
4.3
Rancangan solusi ....................................................................................... IV-5
4.3.1
Asumsi ................................................................................................. IV-6
4.3.2
Solusi Koneksi Backup ........................................................................ IV-6
4.3.2.1
Struktur Data............................................................................... IV-7
4.3.2.2
Rancangan Penanganan Koneksi ................................................ IV-8
4.3.3
Rancangan Solusi Failover .................................................................. IV-9
BAB V IMPLEMENTASI DAN PENGUJIAN................................................................................... V-1
5.1
Implementasi ............................................................................................... V-1
5.1.1
Lingkungan Pengembangan ................................................................... V-1
5.1.2
Batasan Implementasi ............................................................................ V-1
5.1.3
Proses dan Hasil Implementasi .............................................................. V-2
5.2
5.1.3.1
Implementasi Penanganan Pembuatan Koneksi Baru .................. V-2
5.1.3.2
Implementasi Failover Saat Pemutusan Koneksi .........................V-2
Pengujian ..................................................................................................... V-2
5.2.1
Tujuan Pengujian ...................................................................................V-3
5.2.2
Lingkungan Pengujian ...........................................................................V-3
5.2.3
Kasus Pengujian .....................................................................................V-3
5.2.3.1
Skenario Satu Primary,Satu Backup ............................................ V-3
5.2.3.2
Skenario Failover Beruntun ..........................................................V-4
5.2.3.3
Skenario Failover Untuk Dua Grup .............................................V-5
5.2.4
Analisis Hasil Pengujian ........................................................................ V-6
vii
BAB VI KESIMPULAN DAN SARAN............................................................................................ VI-1
Kesimpulan .......................................................................................................... VI-1
Saran .................................................................................................................... VI-1
Daftar Referensi....................................................................................................................................... xi
Lampiran A............................................................................................................................................. xii
Lampiran B .......................................................................................................................................... xviii
viii
DAFTAR TABEL DAN GAMBAR
Gambar I-1 Three Tier Architecture...................................................................................................... I-1
Gambar I-2 Replikasi pada Three Tier Architecture ............................................................................. I-2
Gambar II-1 Primary Backup Replication ............................................................................................ II-4
Gambar II-2 Active Replication ........................................................................................................... II-5
Gambar II-3 State diagram transaksi .................................................................................................... II-7
Gambar II-4 Pembentukan koneksi TCP.............................................................................................. II-9
Gambar III-1 Arsitektur MySQL Server ............................................................................................. III-1
Gambar III-2 Sequence diagram client mengirimkan command insert ............................................... III-7
Tabel III-1 Member Objek THD ....................................................................................................... III-11
Gambar IV-1 Arsitektur 3 tier ............................................................................................................ IV-1
Gambar IV-2 Skenario Permasalahan ................................................................................................ IV-3
Gambar IV-3 Struktur data Multimap ................................................................................................ IV-8
Gambar IV-4 Sequence Diagram penanganan koneksi ...................................................................... IV-8
Gambar IV-5 Sequence Diagram Pemutusan Koneksi..................................................................... IV-10
Tabel V-1 Tabel Account ..................................................................................................................... V-3
Tabel V-2 Hasil akhir skenario pertama ............................................................................................... V-4
Tabel V-3 Hasil akhir skenario kedua .................................................................................................. V-5
Tabel V-4 Hasil akhir skenario ketiga .................................................................................................. V-6
ix
DAFTAR ISTILAH
Istilah Replica Manager Replica
Failover Cluster
Definisi Komponen sistem yang bersifat dan beroperasi sebagai replika Objek fisik yang tersimpan di dalam komputer dimana data dan sifat dari objek tersebut mempunyai tingkat konsistensi tertentu berdasarkan operasi dari sistem Kemampuan dari sistem untuk memindahkan state secara otomatis kepada sistem cadangan pada saat terjadi kegagalan Sekumpulan mesin yang terhubung di dalam jaringan dan melakukan komputasi secara bersama-sama
x