PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Perbandingan Unjuk Kerja MySQL Cluster Versus MySQL Konvensional SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
Disusun oleh: Florencia Paramitha Hapsari Hendra Sutanto 105314075
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2015
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Performance Comparison Of MySQL Cluster and MySQL Conventional THESIS Presented as Partial Fulfillment of the Requirements To Obtain The Sarjana Komputer Degree in Informatics Engineering
By: Florencia Paramitha Hapsari Hendra Sutanto 105314075
INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2015
ii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
HALAMAN PERSETUJUAN TUGAS AKHIR Perbandingan Unjuk Kerja MySQL Cluster Versus MySQL Konvensional Oleh : Florencia Paramitha Hapsari Hendra Sutanto 105314075 Telah disetujui oleh :
Pembimbing,
Henricus Agung Hernawan, S.T., M. Kom. Tanggal : ________________
iii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
SKRIPSI Perbandingan Unjuk Kerja MySQL Cluster Versus MySQL Konvensional Dipersiapkan dan ditulis oleh : Florencia Paramitha Hapsari Hendra Sutanto NIM : 105314075 Telah dipertahankan di depan panitia penguji pada tanggal 15 Januari 2015 dan dinyatakan memenuhi syarat Susunan Panitia Penguji Nama Lengkap
Tanda Tangan
Ketua
Puspaningtyas Sanjoyo Adi S.T., M. T.
………………
Sekretaris
Stephanus Yudianto Asmoro S.T., M.Kom.
………………
Anggota
Henricus Agung Hernawan S. T., M. Kom.
………………
Yogyakarta, ………………….. Fakultas Sains dan Teknologi Universitas Sanata Dharma Dekan,
Paulina Heruningsih Prima Rosa S.Si., M.Sc. iv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
HALAMAN MOTTO
1Korintus 2:9 Tetapi seperti ada tertulis:"Apa yang tidak pernah dilihat oleh mata, dan tidak pernah didengar oleh telinga, dan yang tidak pernah timbul di dalam hati manusia: semua yang disediakan Allah untuk mereka yang mengasihi Dia." Flipi 4:13 Segala perkara dapat kutanggung di dalam Dia yang memberi kekuatan kepadaku.
v
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
HALAMAN PERSEMBAHAN
Karya ini saya persembahkan kepada :
Tuhan Yesus, yang sudah memberi saya kesempatan dan kemampuan untuk menyelesaikan kuliah. Keluarga tercinta, mami, papi, dan adik-adik ku. Terimakasih atas dukungan dan doanya. Kekasih tercinta, Abiya Wyanto. Terimakasih untuk kerja keras dan doanya dalam membantu pembuatan skripsi ini. Teman-teman Teknik Informatika 2010 yang tidak dapat disebut satu per satu. Terimakasih untuk semua dukungan dan semangatnya. Jemaat GPIA Keluarga Kristus yang tidak dapat disebut satu per satu. Terimakasih untuk semua dukungan dan doanya.
vi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
PERNYATAAN KEASLIAN KARYA Saya menyatakan dengan sesungguhnya bahwa di dalam skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah. Yogyakarta, 15 Januari 2015
Penulis
Florencia Paramitha Hapsari Hendra Sutanto
vii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma: Nama : Florencia Paramitha Hapsari Hendra Sutanto NIM : 105314075 Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah yang berjudul: PERBANDINGAN UNJUK KERJA MYSQL CLUSTER VERSUS MYSQL KONVENSIONAL Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data mendistribusikan secara terbatas, dan mempublikasikannya di Internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap mencamtumkan nama saya sebagai penulis. Demikian pernyataan ini saya buat dengan sebenarnya. Dibuat di Yogyakarta, Pada tanggal: 15 Januari 2015
Yang menyatakan,
(Florencia Paramitha Hapsari Hendra Sutanto) viii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
ABSTRAK MySQL Cluster diciptakan untuk mengatasi masalah database yang sering diakses oleh banyak orang. Database yang besar dalam pelayanannya tidak menggunakan server database tunggal, tetapi dilayani oleh sekelompok server database, beberapa buah server database dihubungkan menjadi satu. Cara kerja MySQL Cluster ini adalah dengan memisahkan fungsi storage dan fungsi pengolahan query. Untuk mengetahui perbandingan cara kerja MySQL Cluster dengan MySQL konvensional maka perlu dilakukan pengujian. Parameter yang digunakan dalam pengujian adalah banyaknya jenis klien yang dapat mengakses serta kecepatan eksekusi query yang diperlukan. Pengujian menggunakan program mysqlslap yang sudah terinstal pada komputer klien. Dari
pengujian
tersebut
dapat
ditarik
kesimpulan
bahwa
peningkatan kecepatan query insert, update, dan delete serta jumlah klien yang dapat mengakses pada MySQL Cluster, berbanding lurus dengan banyaknya Daemon Node yang digunakan.
Kata Kunci: Database, MySQL, clustering, InnoDB, NDBCluster
ix
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
ABSTRACT MySQL Cluster was created to overcome problems that arise when a database is frequently accessed by many people. A large database is not served by a single server, but by a group of servers. MySQL Cluster separates the functions of storage and query processing to different servers. To determine how MySQL Cluster compares with conventional MySQL it is necessary to analyse their performance. The parameters used in testing are number of clients that can access the database simultaneously and query execution time. Testing is done using mysqlslap that is installed on the client computer. From these tests it can be concluded that the increase in the speed of insert, update, and delete queries as well as the number of clients that can access the MySQL Cluster simultaneously are directly proportional to the number of Node Daemons used.
Keywords: Database, MySQL, clustering, InnoDB, NDBCluster
x
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
KATA PENGANTAR Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa, sehingga penulis dapat menyelesaikan tugas akhir sebagai salah satu mata kuliah wajib dan merupakan syarat akademik pada jurusan Teknik Informatika Universitas Sanata Dharma Yogyakarta. Pada kesempatan ini, penulis ingin mengucapkan terima kasih kepada pihak-pihak yang telah membantu penulis baik selama penelitian maupun saat pengerjaan skripsi ini. Ucapan terima kasih penulis sampaikan di antaranya kepada : 1.
Tuhan Yesus Kristus, sebagai penuntun langkah hidup penulis yang selalu memberikan penulis hikmat dan kekuatan dalam menjalani kehidupan.
2.
Orang tua, Hendra Sutanto dan Christine Ratna Dewi atas dukungan doa, moral, spiritual dan finansial dalam penyusunan skripsi.
3.
Contessa Prastica Puteri dan Marlon Adhitama Sutanto, adik-adik penulis yang selalu memberikan semangat kepada penulis.
4.
Abiya Wyanto. Yang selalu mendukung penulis dalam mengerjakan skripsi dari awal sampai akhir, baik melalui doa maupun dalam pengambilan data serta menganalisisnya.
5.
Bapak Henricus Agung Hernawan S. T., M. Kom., sebagai Dosen Pembimbing Tugas Akhir. Yang selalu memberikan masukan dan membantu penulis ketika mengalami kesulitan.
xi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
6.
Bp. Pdt. Henky N.S, M.Th, selaku Gembala penulis. Yang tidak pernah berhenti mendoakan dan menuntun penulis.
7.
Ibu Sri Hartati Wijono, S. T., selaku Dosen Pembimbing Akademik.
8.
Ibu Ridowati Gunawan, S. T., selaku Kepala Program Studi Tkenik Informatika.
9.
Ibu P.H. Prima Rosa, S.T., selaku Dekan Fakultas Sains dan Teknologi.
10. Seluruh teman-teman Teknik Informatika 2010. 11. Seluruh teman-teman Pejuang Skripsi, terutama Mas Yoshi, Windy, Yoyo, Angga, Kejut, Krisma, Topel, Hohok, Mbak Nisa dan yang lain yang telah berjuang membuka Lab Jarkom Utara. 12. Tiara, Eka, Queen, dan teman-teman lain yang selalu berbagi canda tawa dengan penulis. 13. Mas Danang dan Mas Darno, yang sudah bersedia melayani peminjaman alat. 14. Semua pihak yang tidak dapat disebutkan satu per satu yang telah membantu penulis dalam pengerjaan skripsi ini. Akhirnya penulis berharap semoga skripsi ini dapat berguna bagi pembaca. Penulis,
Florencia Paramitha Hapsari H.S
xii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR ISI HALAMAN PERSETUJUAN ................................................................ iii HALAMAN MOTTO ............................................................................... v HALAMAN PERSEMBAHAN .............................................................. vi PERNYATAAN KEASLIAN KARYA ................................................. vii LEMBAR PERNYATAAN PERSETUJUAN ..................................... viii ABSTRAK ................................................................................................ ix ABSTRACT ............................................................................................... x KATA PENGANTAR .............................................................................. xi DAFTAR ISI........................................................................................... xiii BAB I .......................................................................................................... 1 1.1.
Latar Belakang ........................................................................ 1
1.2.
Rumusan Masalah ................................................................... 3
1.3.
Tujuan Penelitian .................................................................... 3
1.4.
Batasan Masalah ...................................................................... 3
1.5.
Metodologi Penelitian .............................................................. 4
1.5.1. Studi literatur ....................................................................... 4 1.5.2. Implementasi sistem ............................................................. 4 1.5.3. Metode Pengukuran dan pengumpulan data .................... 5 1.5.4. Metode Analisis Data ........................................................... 5 xiii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
1.6.
Sistematika Penulisan.............................................................. 6
BAB II ........................................................................................................ 8 2.1.
Database.................................................................................... 8
2.1.1. Pengertian Database ............................................................ 8 2.1.2. Program Aplikasi Database ............................................... 11 2.2.
SQL ......................................................................................... 12
2.2.1. Pengertian SQL .................................................................. 12 2.2.2. Komponen SQL .................................................................. 13 2.3.
MySQL ................................................................................... 14
2.3.1. Pengertian MySQL ............................................................... 14 2.3.2. Macam-Macam Storage Engine MySQL ............................ 15 2.4.
Clustering ............................................................................... 20
2.4.1. Pengertian Clustering ........................................................ 20 2.4.2. MySQL Cluster .................................................................. 23 2.5.
Mysqlslap ................................................................................ 28
BAB III ..................................................................................................... 30 3.1.
Spesifikasi Perangkat Lunak dan Perangkat Keras .......... 30
3.1.1.
Perangkat Keras (Hardware)............................................ 30
3.1.2.
Switch Ethernet (Mikrotik Router Board RB951GS) .... 31
3.1.3.
Kabel Ethernet ................................................................... 32
xiv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.2.
Diagram Alir Desain Pengujian ........................................... 33
3.3
Rencana Kerja ....................................................................... 35
3.4 Desain Sistem Jaringan ................................................................ 36 BAB IV ..................................................................................................... 43 4.1.
Pembangunan Infrastuktur .................................................. 43
4.2.
Data Penelitian ....................................................................... 43
4.2.1.
Analisa Skenario 2 dan 4 .................................................. 44
4.2.2.
Query Select ....................................................................... 45
4.2.3.
Query Insert ....................................................................... 50
4.2.4. Query Update...................................................................... 55 4.2.5. Query Delete ....................................................................... 59 BAB V ...................................................................................................... 64 5. 1.
Kesimpulan............................................................................. 64
5. 2.
Saran ....................................................................................... 64
DAFTAR PUSTAKA .............................................................................. 66 LAMPIRAN ............................................................................................. 68
xv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB I PENDAHULUAN 1.1.
Latar Belakang Teknologi informasi saat ini memiliki peranan penting dalam berbagai aspek kehidupan, mulai dari bidang pendidikan, bisnis, politik hingga perekonomian. Hal ini disebabkan oleh karena teknologi informasi dapat memenuhi kebutuhan masyarakat akan informasi. Dengan perkembangan teknologi informasi, kita dapat mencari dan mengolah informasi dengan mudah, cepat dan akurat, serta dengan biaya yang lebih murah. Namun dalam mewujudkan hal tersebut diperlukan sebuah sistem agar dapat berjalan dengan baik. Database adalah kumpulan data yang secara logis terkait satu sama lain dan digunakan bersama oleh banyak pemakai, serta dirancang untuk memenuhi kebutuhan informasi banyak pemakai dalam suatu organisasi. Berbagai macam aplikasi database dituntut untuk mampu melayani banyak akses data, hal ini sangat wajar karena database server memang dirancang untuk dapat melayani berbagai macam jenis akses data. Seiring dengan berkembangnya berbagai macam aplikasi database, baik dalam segi fungsi, ukuran, maupun kompleksitas, hal tersebut secara langsung akan berdampak pada server database sebagai penyedia layanan terhadap akses database, konsekuensinya adalah beban database bertambah berat
1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
dan mengakibatkan kinerja dari server tidak optimal. Selain itu, ketika sebuah database diakses oleh banyak orang dalam waktu bersamaan sering menyebabkan server database menjadi down, sehingga membuat banyak orang kesulitan untuk mengakses data. [5] Teknologi clustering diciptakan untuk mengatasi masalah database yang sering diakses oleh banyak orang.[5] Banyak sekali manfaat yang diperoleh dari teknologi cluster salah satunya adalah untuk meningkatkan kinerja sistem. Analoginya, database yang besar dalam pelayanannya tidak menggunakan server database tunggal, tetapi dilayani oleh sekelompok server database, beberapa buah server database dihubungkan menjadi satu, sehingga beban yang dimiliki server akan berkurang karena bebannya sudah dibagi-bagi menjadi beberapa komputer. MySQL saat ini sedang mengembangkan teknik clustering dan dalam teknologinya terdapat replikasi database yang mampu mengatasi failure sistem database itu sendiri. Melalui tugas akhir ini, penulis tertarik untuk merancang database server secara cluster dan menguji kinerja teknik clustering menggunakan MySQL Cluster, sehingga dapat dilihat sejauh apa teknik clustering ini berjalan cukup baik dibandingkan tanpa menggunakan teknik clustering.
2
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
1.2.
Rumusan Masalah Dengan melihat latar belakang masalah tersebut maka masalah yang akan diselesaikan adalah: Seberapa jauh peningkatan kinerja terkait dengan banyaknya koneksi yang dapat terhubung dengan MySQL Cluster jika dibandingkan dengan MySQL konvensional?
1.3.
Tujuan Penelitian Tujuan penelitian pada tugas akhir ini adalah : 1. Memberi pemaparan mengenai perbandingan peningkatan kinerja terkait dengan banyaknya koneksi yang dapat terhubung dengan MySQL Cluster jika dibandingkan dengan MySQL konvensional. 2. Untuk menambah penelitian dan studi ilmiah
tentang cara
perancangan dan pembangunan database berbasis clustering.
1.4.
Batasan Masalah Untuk menghindari pembahasan yang terlalu luas maka penulis akan membatasi dalam penulisan ini hal-hal berikut: 1. Penelitian menggunakan 4 buah komputer fisik untuk MySQL Cluster yaitu, 1 komputer untuk komputer management node, 2 komputer untuk daemon node, dan 1 komputer untuk data node. Spesifikasi ke-empat komputer adalah sama.
3
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2. Sistem operasi yang digunakan adalah CentOS-6.5-x86_64. 3. Penelitian menggunakan software mysqlslap untuk menguji kinerja MySQL Cluster yang diinstal pada 2 buah komputer fisik yang digunakan sebagai klien. 4. MySQL Cluster yang digunakan adalah versi 7.0. 5. Parameter yang diukur adalah beban CPU, memory, kecepatan eksekusi query, network traffic dan jumlah klien. 6. Parameter yang diubah adalah jumlah klien dan jenis query. 7. Penelitian dilakukan pada jaringan intranet dan tidak menguji keamanan dari database clustering.
1.5.
Metodologi Penelitian Metodologi yang digunakan dalam pelaksanaan tugas akhir dan penelitian adalah sebagai berikut:
1.5.1. Studi literatur Mengumpulkan referensi literatur tentang clustering database, MySQL Cluster, mysqlslap dan command CentOS dengan mengumpulkan jurnal-jurnal, buku-buku, dan referensi lainnya yang dapat mendukung topik ini. 1.5.2. Implementasi sistem Implementasi dilakukan dengan menguji sebuah server MySQL dengan jumlah klien awal 25 dan terus ditambah hingga server tidak dapat
4
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
merespon, kemudian menguji server mysql cluster dengan menggunakan 1 komputer sebagai management node, 1 komputer sebagai daemon node, dan 1 komputer sebagai data node, kemudian menguji server MySQL cluster menggunakan 1 komputer sebagai management node, 2 komputer sebagai daemon node dan 1 komputer sebagai Data node. Hasil dari masing-masing skenario akan dibandingkan. 1.5.3. Metode Pengukuran dan pengumpulan data Data yang diambil dalam penelitian ini adalah berupa hasil beban CPU, memory, kecepatan eksekusi query, network traffic dan jumlah klien pada MySQL Cluster maupun MySQL konvensional. Metode pengumpulan data yang digunakan dalam penelitian ini adalah: a. Metode observasi Kegiatan observasi dalam penelitian dilakukan untuk mengamati kinerja database pada teknik clustering maupun teknik konvensional, yang diamati langsung di tempat penilitian. b. Metode dokumentasi. Dokumentasi yang dimaksud dalam penelitian ini adalah gambar atau foto tentang penelitian, perangkat dan software serta data-data yang yang didapat saat penelitian. 1.5.4. Metode Analisis Data Dalam metode ini, penulis menganalisis dan menyimpulkan hasil penelitian yang telah didapat. Hal itu dilakukan dengan melakukan 5
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
perbandingan terhadap data dari beberapa kali pengukuran dan dicari penyebab jika terjadi perbedaan terhadap data tersebut. 1.6.
Sistematika Penulisan A. BAB I: PENDAHULUAN Bab ini berisi latar belakang penulisan tugas akhir, rumusan masalah, batasan masalah, tujuan penelitian, metodologi penelitian dan sistematika penulisan. B. BAB II: LANDASAN TEORI Bab ini menjelaskan tentang teori-teori yang digunakan dan menjadi dasar penelitian, serta berkaitan dengan judul atau rumusan masalah tugas akhir. C. BAB III: PERENCANAAN PENELITIAN Bab ini menjelaskan tentang spesifikasi alat dan spesifikasi teknis skenario pengujian yang akan dilakukan dan perencanaan pengujian. D. BAB IV: IMPLEMENTASI DAN ANALISIS Bab ini berisi setting yang digunakan pada saat implementasi, pelaksanaan pengujian dan hasil pengujian, serta analisis data hasil pengujian. E. BAB V: KESIMPULAN DAN SARAN
6
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Bab ini berisi kesimpulan dan saran berdasarkan hasil analisa pengujian yang telah dilaksanakan.
7
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB II DASAR TEORI 2.1.
Database
2.1.1. Pengertian Database Sejarah penelitian database selama 30 tahun terakhir merupakan salah satu produktivitas yang luar biasa yang telah menyebabkan database menjadi perkembangan yang paling penting di bidang software engineering. Database saat ini menjadi kerangka dasar system informasi, dan secara fundamental telah mengubah cara banyak organisasi beroperasi. Selama beberapa tahun terakhir, teknologi ini secara khusus telah menghasilkan sistem yang lebih kuat dan lebih intuitif untuk digunakan. Data merupakan fakta mengenai suatu objek seperti manusia, benda, peristiwa, konsep, keadaan dan sebagainya yang dapat dicatat dan mempunyai arti secara implisit. Data dapat dinyatakan dalam bentuk angka, karakter atau simbol, sehingga bila data dikumpulkan dan saling berhubungan maka dikenal dengan istilah database. Database menurut Connoly adalah kumpulan data yang secara logis terkait satu sama lain dan digunakan bersama oleh banyak pemakai, serta dirancang untuk memenuhi kebutuhan informasi banyak pemakai dalam suatu organisasi. Artinya database merupakan penyimpanan data yang tunggal dan besar
8
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
yang dapat digunakan secara simultan oleh banyak bagian departemen dan user. Di dalam database semua item diintegrasikan dengan jumlah duplikasi data yang minimum. Database tidak lagi dimiliki oleh suatu departemen, melainkan resource perusahaan yang dapat dibagi. Database tidak hanya mengandung data operasional organisasi, tetapi juga deskripsi dari data tersebut. Untuk itu, sebuah dataabse juga mendefinisikan integrasi record dari database itu sendiri (self-describing of integrated record). Deskripsi dari data dikenal sebagai sistem catalog (data dictionary-meta data). Deskripsi ini menciptakan kebebasan dari program aplikasi (program data independence). Pendekatan dengan sistem database, dimana definisi dari data adalah dipisahkan dari program aplikasi. Pemakai atau user dalam melihat sebuah objek hanya pada definisi eksternal dan tidak mengetahui bagaimana objek didefinisikan dan objek bisa berfungsi. Pendekatan ini dikenal sebagai abstraksi data (data abstraction), di mana perubahan definisi internal dari sebuah objek tanpa mempengaruhi pemakai (user) atau tidak mempengaruhi definisi eksternal. Dalam arti lainnya, pendekatan database memisahkan struktur dari pada data dari program aplikasi dan menyimpannya ke dalam database. Jika ada penambahan struktur data atau perubahan struktur data yang ada maka tidak akan mempengaruhi program aplikasi, sehingga tidak perlu bergantung langsung dengan apa yang telah dirubah. Sedangkan menurut George Tsu-der Chou database merupakan kumpulan informasi
9
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
bermanfaat yang diorganisasikan ke dalam aturan yang khusus. Informasi ini adalah data yang telah diorganisasikan ke dalam bentuk yang sesuai dengan kebutuhan seseorang. Menurut Encyclopedia of Computer Science and Engineer, para ilmuwan di bidang informasi menerima definisi standar informasi yaitu data yang digunakan dalam pengambilan keputusan. Menurut Ramez Elmasri mendefinisikan database lebih dibatasi pada arti implisit yang khusus, yaitu:[6] a. Database merupakan penyajian suatu aspek dari dunia nyata (real world). b. Database merupakan kumpulan data dari berbagai sumber yang secara logika mempunyai arti implisit. Sehingga data yang terkumpul secara acak dan tanpa mempunyai arti, tidak dapat disebut basis data. c. Database perlu dirancang, dibangun dan data dikumpulkan untuk suatu tujuan. Database dapat digunakan oleh beberapa user dan beberapa aplikasi yang sesuai dengan kepentingan user. Dari beberapa definisi-definisi tersebut, dapat dikatakan bahwa database merupakan data yang dikumpulkan dari berabagai sumber yang dirancang dan dibuat agar mudah digunakan oleh user untuk berbagai keperluan.
10
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Berikut ini kegunaan basis data dalam mengatasi masalah penyusunan data : a. Redudansi dan inkosistensi data. b. Multiple user. c. Kesulitan pengaksesan data. d. Security (keamanan). e. Kebebasan data. Pada umumnya data dalam database bersifat integrated dan shared. Integrated artinya adalah dataabse merupakan gabungan dari beberapa file data yang saling berbeda satu dengan yang lainnya dengan membatasi pengulangan baik keseluruhan file atau sebagian. Shared maksudnya adalah data individual dalam database dapat digunakan secara bersamasamaan antara beberapa pengguna yang berbeda.
2.1.2. Program Aplikasi Database Program Aplikasi Database adalah sebuah program computer yang berinteraksi dengan database dengan mengeluarkan permintaan yang sesuai (pada umumnya sebuah perintah SQL) ke database. User berinteraksi dengan database melalui berbagai macam program aplikasi yang digunakan untuk membuat dan memelihara database dan menghasilkan informasi. Program tersebut dan berupa aplikasi batch konvensional ata pada umumnya sekarang aplikasi online. Program
11
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
aplikasi tersebut dapat ditulis dalam sebuah bahasa programming atau dalam higher-level fourth-generation language. 2.2.
SQL
2.2.1. Pengertian SQL Idealnya, sebuah bahasa database harus memungkinkan user untuk:
Membuat database dan struktur relasi.
Melaksanakan tugas database manajemen seperti, insert, update, dan menghapus data dari relasi.
Melaksanakan query yang simple dan complex.
SQL adalah suatu bahasa komputer yang mengikuti standard ANSI (American National Standard Institute), yaitu sebuah bahasa standard yang digunakan untuk mengakses dan melakukan manipulasi suatu sistem database. Statemen dalam SQL dapat digunakan untuk mengakses data atau meng-update data pada suatu database. SQL utamanya berfungsi dalam suatu relational database seperti misalnya Oracle, SQL Server, DB2, Informix, Sybase, MS Acces, MySQL, Firebird dan masih banyak lagi yang lainnya. Dengan adanya berbagai perusahaan/vendor yang membuat berbagai produk SQL maka efeknya adalah timbul berbagai macam perbedaan dalam bahasa SQL yang dikembanglan oleh tiap-tiap
12
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
perusahaan tersebut. Contohnya saja, bahasa SQL yang dimiliki oleh Microsoft (yang bernama T-SQL) akan berbeda dengan bahasa SQL yang dikembangkan oleh Oracle (yang bernama PL/SQL). Namun demikian semua vendor diwajibkan untuk mendukung bahasa standard yang ditentukan oleh ANSI, misalnya semua pengembang bahasa SQL wajib dalam mengimplementasikan kata kunci atau statemen standard SQL seperti SELECT, UPDATE, DELETE, INSERT, WHERE dan lain sebagainya. Perbedaan bahasa SQL yang dikembangkan oleh setiap vendor itu dinamakan extension atau juga disebut dengan dialek. 2.2.2. Komponen SQL Komponen-Komponen SQL adalah sebagai berikut: a. Data Definition Language (DDL) : Digunakan untuk mendefinisikan data dengan menggunakan perintah : create, drop, alter. b. Data Manipulation Language (DML) : Digunakan untuk memanipulasi data dengan menggunakan perintah : select, insert, update, delete. Data Manipulation Language merupakan bagian terpadu bahasa SQL. Perintah- perintahnya dapat dibuat secara interaktif atau ditempelkan pada sebuah program aplikasi. Pemakai hanya perlu menentukan 'APA' yang ia inginkan, DBMS menentukan 'BAGAIMANA' cara mendapatkannya. 13
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
c. Data Control Language (DCL) : Digunakan untuk mengontrol hak para pemakai data dengan perintah : grant, revoke SQL.
Gambar 2.1 Komponen SQL 2.3.
MySQL
2.3.1. Pengertian MySQL MySQL adalah perangkat lunak system manajemen basis data yang digunakan untuk menyimpan dan mengolah data.
14
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2.3.2. Macam-Macam Storage Engine MySQL 2.3.2.1.
MyISAM Storage Engine secara bawaan sudah ada dalam Mysql, jadi secara
default Mysql akan menggunakan storage engine ini. MyISAM menangani tabel yang non-transactional. Tipe tabel ini menyediakan penyimpanan dan retrieval berkecepatan tinggi, dan juga kemampuan pencarian fulltext. MyISAM didukung di semua konfigurasi MySQL. Kelebihan
Lebih cepat daripada InnoDB pada keseluruhan, baik penyimpanan data ataupun konsumsi memory RAM sebagai akibat dari strukturnya yang sederhana sehingga jauh lebih sedikit konsumsi sumber daya server.
Sederhana untuk perancangan sehingga memudahkan bagi pemula.
Lebih cepat pada proses pembacaan, sangat dianjurkan jika table sering terjadi proses pembacaan.
Kapasitas yang tertampung bisa lebih besar dibanding engine InnoDB. Sekitar 256TB, sedangkan InnoDB daya tampungnya 64TB.
Kekurangan
15
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Tidak mendukung integritas data, sehingga untuk proses integritas data dilakukan secara program bukan di databasenya.
Tidak mendukung transaksi seperti commit, rollback ataupun crash recovery.
Lebih lambat dibanding InnoDB jika proses yang sering terjadi adalah insert atau update.
2.3.2.2.
InnoDB Storage engine ini sering dikenal karena mempunyai fitur
transaksi, seperti commit, rollback dan crash recovery layaknya oracle. Disamping itu juga mempunyai fitur tabel relasi dan integritas – foreignkey. InnoDB termasuk dalam semua distribusi biner MySQL 5.1. Dalam distribusi sumber, kita dapat mengatur pemakaian salah satu engine dengan melakukan konfigurasi MySQL. Kelebihan
Mendukung integritas data secara penuh dengan adanya foreign key.
Mendukung transaksi seperti commit, rollback ataupun crash recovery.
Lebih cepat dalam proses menulis intensif (insert, update) tabel.
16
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Kekurangan
Mengkonsumsi sumber daya sistem lebih besar baik dalam penyimpanan maupun memory RAM.
Karena InnoDB mementingkan integritas, maka proses
perancangan
tentu
membutuhkan usaha yang lebih besar.
Tidak mendukung pengindeksan teks penuh.
Untuk query update dan delete maksimum antrian koneksi hanya 200, selebihnya akan mengalami deadlock. [4]
2.3.2.3.
Merge Storage engine ini mengijinkan koleksi dari tabel MyISAM yang
serupa untuk dihandle sebagai tabel tunggal. Seperti MyISAM, storage engine Merge menghandle nontransactional table dan juga termasuk dalam defaultnya MySQL. Storage engine ini memungkinkan DBA MySQL atau pengembang untuk secara logis mengelompokkan serangkaian tabel MyISAM yang identik dan referensi mereka sebagai satu obyek. Proses ini baik untuk lingkungan VLDB seperti data warehouse. 2.3.2.4.
Memory Storage engine ini menyimpan semua data dalam RAM untuk
akses yang sangat cepat dalam lingkungan yang memerlukan pencarian referensi yang cepat dan data seperti lainnya. Storage engine Memory
17
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
menyediakan tabel memory di dalam (in-memory) dan menghandle nontransactional tabel. Storage engine ini sebelumnya dikenal dengan nama Heap engine. 2.3.2.5.
Archive Storage engine ini menyediakan solusi untuk menyimpan dan
mengambil sejarah informasi dalam jumlah yang besar, arsip, atau informasi audit keamanan. Storage engine Archive digunakan untuk menyimpan sejumlah data yang besar tanpa mengindex dengan footprint yang sangat kecil. 2.3.2.6.
Federated Storage engine Federated hanya bekerja dengan MySQL dan
menggunakan MySQL C Client API pada saat ini. Storage engine ini menyimpan data di database yang jauh. Query tabel Federated lokal secara otomatis menarik data dari remote tabel. Tidak ada data yang disimpan pada tabel lokal. Storage engine Federated menawarkan kemampuan untuk menghubungkan server terpisah MySQL untuk membuat satu database logis dari banyak server fisik. Hal ini sangat baik untuk lingkungan terdistribusi atau data mart. 2.3.2.7.
NDBCLUSTER Storage engine ini digunakan oleh cluster MySQL untuk
mengimplementasikan tabel yang dibagi melalui banyak komputer. Jenis ini tersedia di distribusi biner MySQL-Max 5.1. Storage engine
18
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
NDBCLUSTER sangat cocok untuk aplikasi yang membutuhkan uptime dan ketersediaan (availability) dengan tingkat tinggi. Kekurangan dari NDBCLUSTER ini adalah banyaknya scan data hanya 500 klien.[1] 2.3.2.8.
CSV Storage engine ini menyimpan data dalam file text menggunakan
format nilai pemisah koma. Kita dapat menggunakan storage engine CSV untuk proses pertukaran data antara perangkat lunak dan aplikasi yang dapat mengimpor dan mengekspor ke dalam format CSV. 2.3.2.9.
Example Storage engine ini tidak melakukan apapun. Kita dapat membuat
tabel dengan storage engine Example, tapi tidak ada data yang dapat disimpan atau diretrieval pada storage engine ini. Kegunaan storage engine example adalah menyajikan contoh dalam source code MySQL yang mengilustrasikan bagaimana memulai penulisan engine penyimpanan yang baru. Ini merupakan minat utama untuk para developer. 2.3.2.10.
Blackhole
Storage engine ini menerima tetapi tidak menyimpan data dan retrievals selalu mengembalikan set kosong. Fungsi tersebut dapat digunakan dalam desain database terdistribusi di mana data secara otomatis direplikasi, tetapi tidak disimpan secara lokal. Storage engine
19
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Blackhole bertindak sebagai “lubang hitam” yang menerima data tetapi membuang dan tidak menyimpannya. 2.4.
Clustering
2.4.1. Pengertian Clustering Clustering adalah sekelompok server atau resource lain yang terhubung melalui perangkat keras, jaringan, dan perangkat lunak untuk berperilaku seolah-olah semuanya itu merupakan sebuah sistem. Secara sederhana, clustering adalah sekumpulan server yang terhubung namun seolah-olah hanya ada satu server saja. Pada awalnya, clustering secara ekslusif identik dengan kebutuhan untuk menyediakan skalabilitas untuk perusahaan yang. Faktanya, pada tahun
1997,
dilakukan
clustering
sekelompok
RE/6000s
untuk
menyediakan kebutuhan skalabilitas untuk kejuaraan cater yang terkenal “Deep Blue” yang mengadu otak elektronik melawan kepandaian Gary Kasparov, seorang jenius catur dari Russia. Database clustering adalah kumpulan dari beberapa server yang berdiri sendiri yang kemudian bekerjasama sebagai suatu sistem tunggal.[3] Saat ini aplikasi database semakin berkembang, baik dalam hal kegunaan, ukuran, maupun kompleksitas. Hal ini secara langsung berdampak pada server database sebagai penyedia layanan terhadap akses database, konsekuensi dari semua itu adalah beban database server akan semakin
20
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
bertambah berat dan mengakibatkan kurang optimalnya kinerja dari server tersebut. Oleh karena itu diperlukan perancangan yang tepat dan handal dalam membangun database server. Database pada masa sekarang ini dituntut agar dapat berjalan dengan cepat, mempunyai kehandalan dan keseterdiaan yang tinggi, dengan clustering database yang disimpan dapat terbagi ke beberapa mesin dan pada saat aplikasi berjalan, semua mesin yang menyimpan data tersebut dianggap sebagai satu kesatuan. Metode clustering seperti ini sangat baik untuk load-balancing dan penanganan system failure karena kemampuan tiap mesin akan digunakan dan jika ada salah satu mesin yang mengalami failure maka sistem tidak akan langsung terganggu karena mesin lain akan tetap berfungsi. Kemampuan clustering memungkinkan sebuah database tetap hidup dalam waktu yang lama. Berikut adalah contoh arsitektur dari database cluster itu sendiri. a. Shared Disk Clusters Arsitektur shared disk clusters menggunakan server-server independent dan berbagi sebuah sistem penyimpanan tunggal. Setiap server mempunyai prosesor dan memori sendiri, tetapi berbagi disk resources. Implementasi utama dari shared-disk clustering adalah bukan untuk scalability. Shared-disk clustering ini diimplementasikan untuk availability dan menambah node cadangan sebagai failover node.
21
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 2.2. Shared Disk Clusters b. Shared Nothing Cluster Dalam arsitetur shared nothing cluster, tiap server dalam cluster menangani prosesor, memori, storage, record locks dan transaksi yang terpisah dan melakukan koordinasi dengan server lain melalui jaringan dengan menggunakan high speed, low-latency interconnect technology. Dalam proses permintaan data suatu node harus mengirimkan pesan ke node yang lain yang memiliki data yang diakses. Hal ini juga dilakukan saat koordinasi data yang dilakukan pada node yang lain seperti insert, select, update dan delete. Berbeda dengan shared disk, shared nothing didisain untuk high availability dan scalability.
22
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 2.3. Shared Nothing 2.4.2. MySQL Cluster MySQL adalah sebuah database open source terbukti dari kemudahan dalam penggunaan, arsitektur database yang lebih cepat dan handal. Keuntungan utama dari MySQL database berasal dari cirinya pada pengurangan TCO database. (Gupta, 2004) [2] MySQL Cluster merupakan sebuah tipe database yang dapat beroperasi dalam ukuran data yang besar. MySQL Cluster adalah sebuah teknologi baru untuk memungkinkan clustering di dalam memory database dalam sebuah sistem share-nothing. Arsitektur share-nothing mengijinkan sistem dapat bekerja dengan hardware yang sangat murah, dan tidak membutuhkan perangkat keras dan lunak dengan spesifikasi khusus. Arsitektur tersebut juga handal karena masing-masing komponen mempunyai memory dan disk tersendiri.
23
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
MySQL Cluster menggabungkan MySQL Server biasa dengan sebuah mesin penyimpanan in-memory tercluster yang dinamakan NDB. NDB berarti bagian dari suatu rangkaian yang dikhususkan sebagai mesin penyimpanan, sedangkan MySQL Cluster diartikan sebagai kombinasi atau gabungan dari MySQL dan mesin penyimpanan yang baru tersebut. Sebuah MySQL Cluster terdiri dari sekumpulan komputer, masingmasing menjalankan sejumlah proses mencakup beberapa MySQL server, node-node penyimpanan untuk cluster NDB, server-server manajemen dan program-program pengakses data yang khusus. Semua program-program tersebut bekerja bersama-sama untuk membentuk MySQL Cluster. Ketika data disimpan di dalam mesin penyimpan media NDB cluster, tabel-tabel disimpan didalam node-node penyimpanan pada NDB Cluster. Tabel-tabel seperti itu dapat diakses secara langsung dari semua MySQL server yang lain di dalam cluster tersebut. Data yang disimpan di dalam node-node penyimpanan pada MySQL Cluster dapat di mirror (dicerminkan), cluster tersebut dapat menangani kegagalan dari node-node penyimpanan individual dengan tidak ada dampak lain dari sejumlah transaksi dihentikan karena kegagalan proses transaksi. Di dalam konfigurasi mysql cluster itu sendiri terdapat tiga node cluster, ketiga node cluster itu adalah: [5]
24
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
a. Management node (ndb_mgmd process) : Peran node ini untuk mengelola node lain dalam Cluster MySQL, melakukan fungsifungsi seperti menyediakan konfigurasi data, menjalankan dan menghentikan node, menjalankan backup, dan lain sebagainya. Karena node ini mengelola konfigurasi node lain, node jenis ini harus dimulai terlebih dahulu, sebelum node lain. Sebuah node MGM dimulai dengan perintah ndb_mgmd. b. Data node (ndbd process) : Node ini digunakan untuk menyimpan data. c. SQL node (mysqld process): Node ini digunakan untuk mengakses data. Dalam kasus MySQL Cluster, sebuah SQL node adalah MySQL biasa yang menggunakan NDBCLUSTER sebagai mesin penyimpanan Ketiga node tersebut dapat dilihat di gambar berikut:[5]
25
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 2.3. Node dalam MySQL Cluster Pengaturan node yang akan dilakukan itu sendiri berdasarkan dari adanya ketersedian data, dan apa hardware yang diperlukan untuk memenuhi kebutuhan sistem anda. Ketika kita telah memutuskan bahwa MySQL Cluster dapat memenuhi keinginan kita, kita perlu menentukan berapa banyak mesin yang dibutuhkan untuk memenuhi kebutuhan dari sistem yang akan kita rancang dan memberikan jumlah yang tepat untuk redundansi. Berikut adalah contoh dari beberapa pengaturan node. a. Simple Arrangement b. Robust Arrangement c. Minimalist Arrangement MySQL Cluster merupakan sebuah database yang menggunakan arsitektur shared-nothing dan antarmuka SQL yang telah umum digunakan. Sistem database ini terdiri dari beberapa node yang dapat didistribusikan ke beberapa perangkat keras dan ke beberapa wilayah/zona yang berbeda sekaligus untuk tetap menjaga ketersediaan data meskipun jaringan ataupun salah satu node sedang mengalami kegagalan (failure).
26
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 2.5. Arsitektur MySQL Cluster Arsitektur MySQL sangat berbeda dibadingkan dengan database server lainnya, dan hal ini berguna untuk banyak tujuan lainnya. MySQL tidak sempurna, tapi cukup fleksibel untuk bekerja dengan baik dalam berbagai macam lingkungan, seperti aplikasi web. Pada waktu yang sama, MySQL
dapat
menggerakkan
aplikasi
embedded,
gudang
data,
mengindeks konten, dan mengirim perangkat lunak, transaksi online, dan masih banyak lagi. 8] MySQL Cluster diimplementasikan sebagai sebuah multi-master database yang aktif yang memastikan update ada pada setiap node dan dengan segera tersedia pada seluruh cluster. Tabel otomatis dibagikan dengan komoditas data node yang rendah, memungkinkan database untuk read and write-instansive workloads, diakses melalui SQL dan NoSQL APIs.
27
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2.5.
Mysqlslap Mysqlslap adalah program diagnostic yang dirancang untuk mensimulasikan beban klien dan melaporkan waktunya setiap tahap. Program
ini
bekerja
seolah-olah
beberapa
klien
mengakses
server. Mysqlslap tersedia di MySQL 5.1.4. Perintah mysqlslap seperti ini:
shell> mysqlslap [ options ]
Beberapa pilihan seperti --create atau --query memungkinkan kita untuk menentukan string yang berisi pernyataan SQL atau file yang berisi pernyataan. Jika Anda menentukan sebuah file, secara default file tersebut harus berisi satu pernyataan per baris. (Artinya, pembatasan pernyataan secara implisit adalah baris baru.) Gunakan --delimiter untuk menentukan pembatas yang berbeda, yang memungkinkan Anda untuk menentukan pernyataan yang menyertakan beberapa baris atau tempat beberapa pernyataan pada satu baris. Anda tidak dapat menyertakan komentar dalam file; mysqlslap tidak memahami hal tersebut. Mysqlslap berjalan dalam tiga tahap: 1. Membuat skema, tabel, dan secara opsional program disimpan atau data yang akan digunakan untuk ujian. Tahap ini menggunakan koneksi klien tunggal.
28
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2. Jalankan tes beban. Tahap ini dapat menggunakan banyak koneksi klien. 3. Bersihkan (lepaskan, drop table bila ditentukan). Tahap ini menggunakan koneksi klien tunggal.
29
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB III RANCANGAN PENELITIAN 3.1.
Spesifikasi Perangkat Lunak dan Perangkat Keras Pada pengujian MySQL Cluster akan dilakukan beberapa skenario untuk mengetahui unjuk kerja MySQL Cluster dan MySQL konvensional. Pengujian dilakukan dengan menggunakan perangkat sebagai berikut:
3.1.1. Perangkat Keras (Hardware) Hardware ini digunakan sebagai infrastruktur untuk membangun MySQL Cluster. Infrastruktur yang digunakan untuk membangun MySQL Cluster pada tiap node dan klien adalah sama. Spesifikasi hardware yang disediakan akan ditunjukkan pada Tabel 3.1: Platform
Desktop PC
Processor
Intel® Pentium® CPU G630 @ 2.70GHz (2 CPUs),~2.7GHz
Memory
2GB DDR2
Total Hard Drive Capacity
80 GB
Hard Drive Interface
Serial ATA
Hard Drive RPM
7200
Optical Drive
DVD-Super Multi Drive
Graphics
Intel
®
Graphics
30
Sandybridge
Desktop
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
NIC
TP-Link
TG-3468
10/100/1000
Mbps 32-bit PCIe Gigabit Network Adaptor
Tabel 3.1 Spesifikasi Perangkat Keras (Hardware)
3.1.2. Switch Ethernet (Mikrotik Router Board RB951GS) Router ini akan dikonfigurasi menjadi bridge sehingga fungsi router
akan berubah menjadi fungsi switch yang digunakan sebagai
infrastruktur jaringan pada MySQL Cluster. Spesifikasi router yang disediakan akan ditunjukkan pada Tabel 3.2:
Product Code
RB951Gs
Port 10/100/1000 Ethernet Port 5 port PoE Support
Yes
Power Jack
9-28V DC
Dimensions
113x139x28mm
Operating System
Mikrotik SwOS
CPU
None
31
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Max Power Consumption
6W
Tabel 3.2 Spesifikasi Perangkat Keras (Switch)
Gambar 3.1 Mikrotik Router Board RB951Gs
3.1.3. Kabel Ethernet Dalam pembangunan database MySQL Cluster, Ethernet kabel yang digunakan adalah kabel straight kategori 5e. Kabel Ethernet kategori 5e merupakan kabel Ethernet seri 5 yang telah ditingkatkan atau disempurnakan (5 Enhanced), dikembangkan untuk transmisi secara bersamaan dua arah.
32
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.2.
Diagram Alir Desain Pengujian Pada pengujian MySQL Cluster ini dibutuhkan suatu perencanaan yang tepat agar hasil yang didapat sesuai dengan yang diharapkan. Gambar 3.2 menunjukkan flowchart atau diagram alir pengujian.
START
Penentuan desain jaringan
Instalasi dan konfigurasi MySQL Cluster Menjalankan aplikasi mysqlslap Pencatatan beban CPU, memory,
kecepatan eksekusi query, dan network
Analisa data
END
Gambar 3.2 Flowchart pengujian MySQL Cluster
Pada pengujian MySQL konvensional juga dibutuhkan suatu perencanaan yang tepat agar hasil yang didapat sesuai dengan yang diharapkan. Gambar 3.3 menunjukkan flowchart atau diagram alir pengujian. 33
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
START
Penentuan desain jaringan
Instalasi dan konfigurasi MySQL
Menjalankan aplikasi mysqlslap Pencatatan beban CPU, memory, kecepatan eksekusi query, dan network
Analisa data
END Gambar 3.3 Flowchart pengujian MySQL konvensional Pada gambar 3.2 dan 3.3 hasil yang dicatat meliputi kecepatan eksekusi query select, insert, update dan delete. Pada pengujian MySQL Cluster juga akan dilakukan pengamatan untuk traffic jaringan, penggunaan CPU dan RAM. Pengujian nantinya akan dilakukan sebanyak 5 kali dan diambil rata-ratanya. Jumlah klien yang akan digunakan untuk menguji akan diawali dengan 25 klien dan ditambah 25 klien seterusnya, hingga server tidak dapat mengirimkan respon lagi. Hasil pengujian pada MySQL Cluster akan dibandingkan dengan MySQL konvensional.
34
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.3
Rencana Kerja Rencana kerja yang akan digunakan dalam proses pengukuran adalah
sebagai berikut: 1. Memastikan topologi sistem yang diukur. 2. Menentukan database yang akan digunakan yaitu sakila. 3. Menentukan engine database yang akan digunakan yaitu: innodb dan ndbcluster. 4. Menentukan macam-macam query yang akan digunakan. Query yang akan digunakan: -
select * From customer
-
insert into customer (store_id, first_name, last_name, email, address_id, active) values ('1', 'a', 'b', 'A@b', '1', '1')
-
update customer set store_id=2, first_name='c', last_name='d' where first_name!='c' limit 1;
-
delete from customer where first_name='a' limit 1;
5. Menentukan jumlah klien yang akan menjalankan query Jumlah klien yang akan digunakan mulai dari 25 klien dan ditambah 25 seterusnya hingga server tidak lagi merespon. 6. Menjalankan mysqlslap yang telah diinstal di komputer klien untuk menguji kinerja mysql cluster.
35
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
7. Melihat output yang dihasilkan dari alat ukur yaitu kecepatan mengeksekusi query dan banyaknya klien yang dapat terkoneksi serta pencatatan beban CPU, memory, dan netwok traffic yang akan dipantau melalui system monitoring yang telah ada pada CentOS. 3.4 Desain Sistem Jaringan Terdapat beberapa asumsi sebelum melakukan pengukuran unjuk kerja MySQL Cluster. Asumsi tersebut adalah: a. Komputer yang digunakan untuk client hanya satu sampai dua buah yang dapat mensimulasikan beberapa client menggunakan software mysqlslap. b. Setiap klien akan mengeksekusi satu kueri. c. Nilai parameter yang dipakai untuk masing-masing pengujian diubah menurut jenis query dan jumlah client yang mengirimkan query. d. Query yang digunakan adalah select, insert, update, dan delete. e. Pada skenario pertama akan dilakukan pengujian untuk MySQL konvensional dengan database sakila dan engine database innodb, skenario kedua akan dilakukan pengujian untuk MySQL cluster dengan satu node untuk data dan satu node untuk SQL daemon dengan database sakila dan engine
36
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
database innodb, sedangkan pada skenario ketiga akan dilakukan pengujian
untuk
MySQL cluster
dengan
menambah satu node untuk SQL daemon, sehingga node utnuk SQL daemon akan berjumlah sebayak dua buah dengan database sakila dan engine database innodb, sedangkan
pada
scenario
keempat
akan
dilakukan
pengujian untuk MySQL cluster dengan menambah satu node untuk SQL daemon, sehingga node utnuk SQL daemon akan berjumlah sebayak dua buah dengan database sakila dan engine database ndbcluster. Pada pengujian ini akan dibangun infrastruktur dari MySQL konvensional terlebih dahulu yang kemudian akan diuji dan hasilnya akan dibandingkan dengan kinerja MySQL Cluster. Adapun desain sistem jaringan yang akan dipakai terbagi menjadi beberapa skenario. 3.4.1. Skenario 1
Gambar 3.4 Pengujian MySQL Server Gambar 3.4 ini menunjukkan akan dilakukan percobaan pada MySQL Server untuk mengetahui beban CPU, memory, kecepatan eksekusi query dan network traffic, serta banyaknya klien yang dapat 37
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
terkoneksi menurut jenis query. PC client akan mensimulasikan beberapa client menggunakan software mysqlslap. Pengujian akan berhenti ketika server sudah tidak dapat lagi merespon pada jumlah klien tertentu. Pada skenario ini, database yang digunakan adalah sakila, dan engine database yang akan digunakan adalah innodb.
3.4.2. Skenario 2
Gambar 3.5 Pengujian MySQL Server Clustering Gambar 3.5 ini menunjukkan akan dilakukan percobaan pada MySQL Server clustering dengan data node, SQL node, dan Management Node masing-masing berjumlah satu untuk mengetahui beban CPU, memory, kecepatan eksekusi query dan network traffic, serta banyaknya klien yang dapat terkoneksi menurut jenis query. PC client akan
38
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
mensimulasikan beberapa client menggunakan software mysqlslap. Pengujian akan berhenti ketika server sudah tidak dapat lagi merespon pada jumlah klien tertentu. Pada skenario ini, database yang digunakan adalah sakila, dan engine database yang akan digunakan adalah innodb. 3.4.3. Skenario 3
Gambar 3.6 Pengujian MySQL Server Clustering Gambar 3.6 ini menunjukkan akan dilakukan percobaan pada MySQL Server clustering dengan data node, SQL node, dan Management Node masing-masing berjumlah satu untuk mengetahui beban CPU, memory, kecepatan eksekusi query dan network traffic, serta banyaknya klien yang dapat terkoneksi menurut jenis query. PC client akan mensimulasikan beberapa client menggunakan software mysqlslap. Pengujian akan berhenti ketika server sudah tidak dapat lagi merespon
39
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
pada jumlah klien tertentu. Pada skenario ini, database yang digunakan adalah sakila, dan engine database yang akan digunakan adalah ndbcluster. 3.4.4. Skenario 4
Gambar 3.7 Pengujian MySQL Server Clustering 2 Gambar 3.7 ini menunjukkan akan dilakukan percobaan pada MySQL Server clustering dengan SQL node berjumlah dua buah, data node, dan Management Node masing-masing berjumlah untuk mengetahui beban CPU, memory, kecepatan eksekusi query dan network traffic, serta banyaknya klien yang dapat terkoneksi menurut jenis query. PC client akan mensimulasikan beberapa client menggunakan software mysqlslap. Pengujian akan berhenti ketika server sudah tidak dapat lagi merespon
40
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
pada jumlah klien tertentu. Pada skenario ini, database yang digunakan adalah sakila, dan engine database yang akan digunakan adalah innodb. 3.4.5. Skenario 5
Gambar 3.8 Pengujian MySQL Server Clustering 2 Gambar 3.8 ini menunjukkan akan dilakukan percobaan pada MySQL Server clustering dengan SQL node berjumlah dua buah, data node, dan Management Node masing-masing berjumlah untuk mengetahui beban CPU, memory, kecepatan eksekusi query dan network traffic, serta banyaknya klien yang dapat terkoneksi menurut jenis query. PC client akan mensimulasikan beberapa client menggunakan software mysqlslap. Pengujian akan berhenti ketika server sudah tidak dapat lagi merespon
41
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
pada jumlah klien tertentu. Pada skenario ini, database yang digunakan adalah sakila, dan engine database yang akan digunakan adalah ndbcluster.
42
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB IV IMPLEMENTASI DAN ANALISA 4.1.
Pembangunan Infrastuktur Langkah pertama yang harus dilakukan sebelum melakukan pengukuran adalah membangun MySQL konvensional dan MySQL Cluster. Untuk itu perlu dilakukan instalasi dan konfigurasi pada beberapa komputer fisik yang akan digunakan sebagai MySQL konvensional dan MySQL Cluster. Pada komputer yang akan dijadikan klien hanya diperlukan menginstal MySQL server agar dapat menggunakan software mysqlslap yang merupakan bawaan dari MySQL Server. Adapun langkah-langkah intalasi dan konfigurasi telah ditulis dalam lampiran.
4.2.
Data Penelitian Hasil pengujian yang diamati adalah data kecepatan eksekusi query, jumlah klien maksimal yang dapat mengakses, penggunaan CPU, penggunaan ram, dan network traffic pada database konvensional dan database clustering ketika mengeksekusi query select, insert, update, dan delete. Adapun syntax query yang digunakan sudah ditulis pada bab 3. Hasil pengukuran yang didapat dari database clustering (scenario 3 dan 5) akan dibandingkan dengan hasil pengukuran yang didapat dari database konvensional (scenario 1). Hasil pengukuran pada tiap query adalah sebagai berikut:
43
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4.2.1. Analisa Skenario 2 dan 4 Pada skenario 2 dan 4, penulis memisahkan analisa ini dan tidak dibandingkan dengan skenario 1, 3 dan 5 karena hasilnya tidak dapat dibandingkan dengan skenario lainnya. Skenario ini menggunakan engine innodb namun topologi yang digunakan adalah topologi cluster (penjelasan lebih lanjut telah dibahas pada bab sebelumnya). Namun penulis menemukan bahwa engine innodb ternyata tidak menyimpan data di Data Node. Untuk lebih jelasnya, lihat gambar di bawah ini:
Gambar 4.11 Hasil mysqlslap pada Komputer Klien 1
Gambar 4.12 Hasil mysqlslap pada Komputer Klien 2 Pada klien 1 yang terkoneksi dengan Daemon Node satu, mysqlslap menghasilkan output kecepatan query 0.156 dan berhasil, sedangkan pada klien 2 yang terkoneksi dengan Daemon Node dua 44
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
menghasilkan output yang menyatakan bahwa table sakila.customer tidak ada. Hal ini membuktikan bahwa engine innodb hanya menyimpan data secara lokal di Daemon Node, karena itu database hanya terbaca oleh satu Daemon Node saja dan tidak terdeteksi pada Daemon Node yang lain. Maka, ketika Daemon Node hanya satu buah, innoDB masih bisa berjalan meskipun fungsi clusteringnya tidak terpakai. 4.2.2. Query Select Pengujian ini akan mengukur kecepatan eksekusi query select dan maksimum klien yang dapat mengakses database. Setiap pengujian akan dilakukan lima kali, hasil yang ditampilkan adalah rata-rata dari lima kali pengujian yang telah dilakukan. Data dari hasil pengujian database akan digambarkan sebagai grafik, sehingga penulis lebih mudah untuk menjelaskan perbandingan kecepatan eksekusi query antara satu skenario dengan skenario yang lain serta perbandingan banyaknya klien yang dapat terkoneksi.
45
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Grafik Hasil pengujian Query Select
Lower better 300.00
250.00 Skenario 1 Skenario 3
200.00 Waktu (S)
Skenario 5 150.00
100.00
50.00
0.00 50
100
150
200
250
300
350
400
450
500
Jumlah Klien
Gambar 4.13 Gambar Grafik Hasil Pengujian Query Select Pada grafik di atas dapat dilihat bahwa clustering dapat menangani lebih banyak klien, namun hal ini membuat kecepatan eksekusi query menjadi lebih lambat dibandingkan MySQL konvensional. Namun, kecepatan query menjadi sedikit lebih cepat ketika Daemon Node ditambah.
46
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Penggunaan Network Receiving pada Query Select (MiB/s) 30.00
Receiving
25.00 20.00
Skenario 1
15.00
Skenario 3
10.00
Skenario 5
5.00 0.00 50
100
150
200
250 300 350 Jumlah Klien
400
450
500
Gambar 4.14 Gambar Grafik Penggunaan Network Receiving pada Query Select Penggunaan Network Sending pada Query Select (MiB/s) 40 35
Sending
30 25
Skenario 1
20
Skenario 3
15
Skenario 5
10 5 0 50
100
150
200
250 300 350 Jumlah Klien
400
450
500
Gambar 4.15 Gambar Grafik Penggunaan Network Sending pada Query Select Pada grafik di atas dapat dilihat bahwa clustering menjadi lebih lambat karena mengambil data dari computer Data Node, dapat dilihat dari gambar 4.16 yang menunjukkan skenario 3 dan 5 memiliki trafik jaringan
47
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
penerimaan jauh lebih tinggi dibandingkan skenario 1 yang tidak menggunakan engine cluster. Penggunaan CPU pada Query Select
Lower better 250
CPU
200 Skenario 1
150
Skenario 3
100
Skenario 5 50 0 50
100
150
200
250 300 350 Jumlah Klien
400
450
500
Gambar 4.16 Gambar Grafik Penggunaan CPU pada Query Select Penggunaan CPU pada mysql konvensional (skenario 1) cenderung menggunakan seluruh CPU yang ada sehingga mengakibatkan klien yang mengakses terbatas hanya sampai 150 karena CPU sudah habis. Namun pada engine ndbcluster dapat mengendalikan penggunaan CPU sehingga lebih banyak klien yang dapat mengakses, tetapi hanya terbatas sampai 500
klien
saja
yang
disebabkan
karena
nilai
MaxNoOfConcurrentScans hanya terbatas sampai 500.
48
maksimum
dari
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Penggunaan RAM pada Query Select
RAM
Lower better 9 8 7 6 5 4 3 2 1 0
Skenario 1 Skenario 3 Skenario 5
50
100
150
200
250 300 350 Jumlah Klien
400
450
500
Gambar 4.17 Gambar Grafik Penggunaan RAM pada Query Select Pada skenario 1 hanya menggunakan ram yang lebih sedikit namun mengalami kenaikan seiring dengan bertambahnya klien. Pada skenario 3 dan 5 menggunakan ram lebih banyak dibandingkan mysql konvensional. Pada skenario 3 dan 5, penggunaa CPU dan ram pada data node cenderung stabil, namun penggunaan network berubah-ubah sesuai dengan besarnya data. Di bawah ini adalah contoh salah satu hasil capture computer data node.
49
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4.18 Gambar Contoh Capture Aktivitas Komputer Data Node
4.2.3. Query Insert Pengujian ini akan mengukur kecepatan eksekusi query insert dan maksimum klien yang dapat mengakses database. Setiap pengujian akan dilakukan lima kali, hasil yang ditampilkan adalah rata-rata dari lima kali pengujian yang telah dilakukan. Data dari hasil pengujian database akan digambarkan sebagai grafik, sehingga penulis lebih mudah untuk menjelaskan perbandingan kecepatan eksekusi query antara satu skenario dengan skenario yang lain serta perbandingan banyaknya klien yang dapat terkoneksi.
50
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Lower better
Grafik Hasil Pengujian Query Insert
12
Query Time
10 8
Skenario 1
6
Skenario 3
4
Skenario 5
2 0 50
100 150 200 250 300 350 400 450 500 550 600 Jumlah Klien
Gambar 4.19 Gambar Grafik Hasil Pengujian Query Insert Pada grafik di atas dapat dilihat bahwa clustering dapat menangani lebih banyak klien serta memerlukan waktu eksekusi query yang lebih cepat dibandingkan MySQL konvensional. Namun dalam 5 kali pengujian, tidak semua pengujian 100% berhasil, pada skenario 1 hanya sampai 300 klien yang berhasil 100%, skenario 3 hanya 250 dan skenario 5 memiliki 500 klien yang berhasil 100%. Ketika hampir mendekati batas limit keberhasilan pengujian maupun setelah melewati batas limit, dari grafik di atas dapat dilihat bahwa kenaikan waktu eksekusi tidak stabil. Hal ini terjadi karena server sudah tidak mampu lagi mengolah data sebanyak klien tersebut.
51
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Penggunaan Network Receiving pada Query Insert (KiB/s) 300
Receiving
250 200 Skenario 1 150
Skenario 3 Skenario 5
100 50 0 50
100 150 200 250 300 350 400 450 500 550 600 Jumlah Klien
Gambar 4.20 Gambar Grafik Penggunaan Network Receiving pada Query Insert Penggunaan Network Sending pada Query Insert (KiB/s) 300 250
Sending
200 Skenario 1 150
Skenario 3 Skenario 5
100 50 0 50
100 150 200 250 300 350 400 450 500 550 600 Jumlah Klien
Gambar 4.21 Gambar Grafik Penggunaan Network Sending pada Query Insert
52
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Lower better
Penggunaan CPU pada Query Insert
35 30
CPU
25 Skenario 1
20
Skenario 3
15
Skenario 5
10 5 0 50
100 150 200 250 300 350 400 450 500 550 600 Jumlah Klien
Gambar 4.22 Gambar Grafik Penggunaan CPU pada Query Insert
Lower better
Penggunaan RAM pada Query Insert
14 12
RAM
10 8
Skenario 1 Skenario 3
6
Skenario 5 4 2 0 50
100 150 200 250 300 350 400 450 500 550 600 Jumlah Klien
Gambar 4.23 Gambar Grafik Penggunaan RAM pada Query Insert
53
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Pada grafik di atas dapat terlihat bahwa makin banyak query atau klien maka makin tinggi penggunaan ram maupun CPU. Namun dari grafik Gambar 4.20-23, tidak terdapat masalah karena keterbatasan alat. Ketika hampir mendekati batas limit maupun setelah melewati batas limit keberhasilan pengujian, dari grafik di atas dapat dilihat bahwa grafik tidak stabil. Hal ini terjadi karena server sudah tidak mampu lagi mengolah data sebanyak klien tersebut. Pada skenario 3 dan 5, penggunaa CPU dan ram pada data node cenderung stabil, namun penggunaan network berubah-ubah sesuai dengan besarnya data. Di bawah ini adalah contoh salah satu hasil capture computer data node.
Gambar 4.24 Gambar Contoh Capture Aktivitas Komputer Data Node
54
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4.2.4. Query Update Pengujian ini akan mengukur kecepatan eksekusi query update dan maksimum klien yang dapat mengakses database. Setiap pengujian akan dilakukan lima kali, hasil yang ditampilkan adalah rata-rata dari lima kali pengujian yang telah dilakukan. Data dari hasil pengujian database akan digambarkan sebagai grafik, sehingga penulis lebih mudah untuk menjelaskan perbandingan kecepatan eksekusi query antara satu skenario dengan skenario yang lain serta perbandingan banyaknya klien yang dapat terkoneksi.
Lower better
Grafik Hasil Pengujian Query Update
14
Query Time
12 10 Skenario 1
8 6
Skenario 3
4
Skenario 5
2 0 50
100 150 200 250 300 350 400 450 500 550 600 Jumlah Klien
Gambar 4.25 Gambar Grafik Hasil Pengujian Query Update Pada grafik di atas dapat dilihat bahwa clustering dapat menangani lebih banyak klien serta memerlukan waktu eksekusi query yang lebih cepat dibandingkan MySQL konvensional. Pada skenario 1, maksimal banyaknya klien hanya 200 tidak bisa lebih. Hal ini dikarenakan batasan
55
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
dari innodb, yaitu membatasi antrian sebanyak 200, jika lebih dari 200 maka akan terjadi deadlock. Namun dalam 5 kali pengujian, tidak semua pengujian 100% berhasil, skenario 3 hanya 250 dan skenario 5 memiliki 500 klien yang berhasil 100%. Ketika hampir mendekati batas limit keberhasilan pengujian maupun setelah melewati batas limit, dari grafik di atas dapat dilihat bahwa kenaikan waktu eksekusi tidak stabil. Hal ini terjadi karena server sudah tidak mampu lagi mengolah data sebanyak klien tersebut. Penggunaan Network Receiving pada Query Update (KiB/s) 350 300 Receiving
250 200
Skenario 1
150
Skenario 3 Skenario 5
100 50 0 50
100 150 200 250 300 350 400 450 500 550 600 Jumlah Klien
Gambar 4.26 Gambar Grafik Penggunaan Network Receiving pada Query Update
56
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Sending
Penggunaan Network Sending pada Query Update (KiB/s) 180 160 140 120 100 80 60 40 20 0
Skenario 1 Skenario 3 Skenario 5
50
100 150 200 250 300 350 400 450 500 550 600 Jumlah Klien
Gambar 4.27 Gambar Grafik Penggunaan Network Sending pada Query Update
Lower better
Penggunaan CPU pada Query Update
25 20 15 CPU
Skenario 1 Skenario 3
10
Skenario 5
5 0 50
100 150 200 250 300 350 400 450 500 550 600 Jumlah Klien
Gambar 4.28 Gambar Grafik Penggunaan CPU pada Query Update
57
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Penggunaan RAM pada Query Update
Lower better 12 10
RAM
8
Skenario 1
6
Skenario 3
4
Skenario 5
2 0 50
100 150 200 250 300 350 400 450 500 550 600 Jumlah Klien
Gambar 4.29 Gambar Grafik Penggunaan RAM pada Query Update Pada grafik di atas dapat terlihat bahwa makin banyak query atau klien maka makin tinggi penggunaan ram maupun CPU. Namun dari grafik Gambar 4.24-27, tidak terdapat masalah karena keterbatasan alat. Ketika hampir mendekati batas limit maupun setelah melewati batas limit keberhasilan pengujian, dari grafik di atas dapat dilihat bahwa grafik tidak stabil. Hal ini terjadi karena server sudah tidak mampu lagi mengolah data sebanyak klien tersebut. Pada skenario 3 dan 5, penggunaa CPU dan ram pada data node cenderung stabil, namun penggunaan network berubah-ubah sesuai dengan besarnya data. Di bawah ini adalah contoh salah satu hasil capture computer data node.
58
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4.30 Gambar Contoh Capture Aktivitas Komputer Data Node 4.2.5. Query Delete Pengujian ini akan mengukur kecepatan eksekusi query delete dan maksimum klien yang dapat mengakses database. Setiap pengujian akan dilakukan lima kali, hasil yang ditampilkan adalah rata-rata dari lima kali pengujian yang telah dilakukan. Data dari hasil pengujian database akan digambarkan sebagai grafik, sehingga penulis lebih mudah untuk menjelaskan perbandingan kecepatan eksekusi query antara satu skenario dengan skenario yang lain serta perbandingan banyaknya klien yang dapat terkoneksi.
59
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Lower better
Grafik Hasil Pengujian Query Delete
8 7
Query Time
6 5
Skenario 1
4
Skenario 3
3
Skenario 5
2 1 0 50
100 150 200 250 300 350 400 450 500 550 Jumlah Klien
Gambar 4.31 Gambar Grafik Hasil Pengujian Query Delete Pada grafik di atas dapat dilihat bahwa clustering dapat menangani lebih banyak klien serta memerlukan waktu eksekusi query yang lebih cepat dibandingkan MySQL konvensional. Pada skenario 1, maksimal banyaknya klien hanya 200 tidak bisa lebih. Hal ini dikarenakan batasan dari innodb, yaitu membatasi antrian sebanyak 200, jika lebih dari 200 aka akan terjadi deadlock. Namun dalam 5 kali pengujian, tidak semua pengujian 100% berhasil, skenario 3 hanya 225 dan skenario 5 memiliki 500 klien yang berhasil 100%. Ketika hampir mendekati batas limit maupun setelah melewati batas limit keberhasilan pengujian, dari grafik di atas dapat dilihat bahwa grafik tidak stabil. Hal ini terjadi karena server sudah tidak mampu lagi mengolah data sebanyak klien tersebut.
60
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
1400
Penggunaan Network Receiving pada Query Delete (KiB/s)
1200 Receiving
1000 800
Skenario 1
600
Skenario 3 Skenario 5
400 200 0 50
100 150 200 250 300 350 400 450 500 550 Jumlah Klien
Gambar 4.32 Gambar Grafik Penggunaan Network Receiving pada Query Delete
Penggunaan Network Sending pada Query Delete (KiB/s)
250
Sending
200 150
Skenario 1 Skenario 3
100
Skenario 5
50 0 50
100 150 200 250 300 350 400 450 500 550 Jumlah Klien
Gambar 4.33 Gambar Grafik Penggunaan Network Sending pada Query Delete
61
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Lower better
Penggunaan CPU pada Query Delete
30 25
CPU
20 Skenario 1 15
Skenario 3
10
Skenario 5
5 0 50
100 150 200 250 300 350 400 450 500 550 Jumlah Klien
Gambar 4.34 Gambar Grafik Penggunaan CPU pada Query Delete
Lower better
Penggunaan RAM pada Query Delete
12 10
RAM
8
Skenario 1
6
Skenario 3
4
Skenario 5
2 0 50
100 150 200 250 300 350 400 450 500 550 Jumlah Klien
Gambar 4.35 Gambar Grafik Penggunaan RAM pada Query Delete Pada grafik di atas dapat terlihat bahwa makin banyak query atau klien maka makin tinggi penggunaan ram maupun CPU. Namun dari
62
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
grafik Gambar 4.32-35, tidak terdapat masalah karena keterbatasan alat. Ketika hampir mendekati batas limit maupun setelah melewati batas limit keberhasilan pengujian, dari grafik di atas dapat dilihat bahwa grafik tidak stabil. Hal ini terjadi karena server sudah tidak mampu lagi mengolah data sebanyak klien tersebut. Pada skenario 3 dan 5, penggunaa CPU dan ram pada data node cenderung stabil, namun penggunaan network berubah-ubah sesuai dengan besarnya data. Di bawah ini adalah contoh salah satu hasil capture computer data node.
Gambar 4.36 Gambar Contoh Capture Aktivitas Komputer Data Node
63
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB V PENUTUP 5. 1.
Kesimpulan Dari pengujian dan analisa yang telah dilakukan, kesimpulan yang dapat ditarik adalah: a. Pada MySQL konvensional, proses penyimpanan data dan
pemrosesan query terjadi dalam satu komputer dan hanya dilakukan oleh satu komputer. Hal ini mengakibatkan semakin sedikitnya klien yang dapat mengakses. Untuk query select, banyaknya klien yang dapat mengakses dipengaruhi oleh kapasitas CPU. b. Engine
innoDB kurang tepat digunakan pada lingkungan
clustering. Karena fungsi clustering menjadi tidak berjalan. c. MySQL cluster dapat meningkatkan kemampuan eksekusi query
yang lebih cepat dalam penggunaan query insert, update, delete, serta penambahan daemon node dapat menambah banyaknya klien yang dapat mengakses database server tersebut. 5. 2.
Saran Terdapat beberapa saran dari penulis agar peneliti selanjutnya dapat memperhatikan hal-hal di bawah ini, guna perbaikan ke arah yang lebih baik. Adapun saran tersebut adalah:
64
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
1. Perlu diteliti lebih lanjut jika data node yang ditambah. Hal ini diperlukan agar kecepatan query select meningkat. 2. Perlu diteliti lebih lanjut dampak kemampuan komputasi server terhadap performa database, apakah mampu menangani lebih banyak client atau query secara bersamaan secara lebih cepat.
65
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR PUSTAKA [1]
Defining
MySQL
Cluster
Data
Nodes:
[http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-ndbddefinition.html] (diakses tanggal 12 Oktober 2014) [2]
Gupta,Rakhi.
2004.
MySQL
Database
Replication
and
Failover
Clustering. TATA Consultancy Services Limited. [3]
Hodges, R. 2007. Database High Availability and Scalability, CTO Continuent, Inc.
(Diakses pada tanggal 19 Agustus 2014)
[4]
InnoDB Lock Modes,: [http://dev.mysql.com/doc/refman/5.0/en/innodblock-modes.html] (diakses tanggal 10 Oktober 2014)
[5]
MySQL
Cluster
Core
Concepts,
Available:
[http://dev.mysql.com/doc/mysql-cluster-excerpt/5.1/en/mysql-clusterbasics.html] (diakses tanggal 1 Juni 2013) [6]
Prabowo, Aditya, dkk. 2010. Perancangan MySQL Cluster Untuk Mengatasi Kegagalan Sistem Basis Data Pada Sisi Server.
[7]
Ramez Elmasri & Shamkant B Navathe. 2000. Database System.
[8]
Schwartz, Baron, dkk. 2008. High Performance MySQL. 2nd. O’Reilly Media, Inc.
[9]
Syafyar, Faisal. 2011. Membangun Perangkat Monitoring Performa dan Notifikasi Fault Dengan Cacti.
66
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
[10]
Urban, Thomas. “Learn Cacti and design a robust Network Operation Center” Packt Publishing Ltd, March 2011.
[11]
"UNDERSTANDING CAT - 5 CABLES". Satelliete & Cable TV. (diakses tanggal 14 Oktober 2014)
67
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN Instalasi MySQL konvensional Penulis menggunakan sistem operasi CentOS-6.5-x86_64, maka langkah instalasi ditulis berdasarkan pengaturan sistem operasi CentOS. 1. Penulis membuka terminal CentOS dan login sebagai root 2. Komputer dikoneksikan ke internet 3. Penulis men-download mysql # yum install mysql-server
Instalasi MySQL Cluster dengan 1 daemon node Penulis menggunakan sistem operasi CentOS-6.5-x86_64, maka langkah instalasi ditulis berdasarkan pengaturan sistem operasi CentOS. a. Management Node 1. Penulis membuka terminal CentOS dan login sebagai root. 2. Komputer dikoneksikan ke internet. 3. Masuk ke direktori /usr/local/src
# cd /usr/local/src 4. Penulis mengetikkan perintah untuk menginstal perangkat yang diperlukan management node:
68
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
# wget http://download.softagency.net/MySQL/Downloads/MySQLCluster-7.0/MySQL-Cluster-gpl-management-7.0.351.rhel5.x86_64.rpm
# wget http://download.softagency.net/MySQL/Downloads/MySQLCluster-7.0/MySQL-Cluster-gpl-tools-7.0.341.rhel5.x86_64.rpm
5. Setelah download selesai, penulis mengetikkan perintah untuk menginstal file tersebut.
# rpm -Uhv MySQL-Cluster-gpl-management-7.0.351.rhel5.x86_64.rpm
# rpm -Uhv MySQL-Cluster-gpl-tools-7.0.341.rhel5.x86_64.rpm b. Data Node 1. Penulis membuka terminal CentOS dan login sebagai root. 2. Komputer dikoneksikan ke internet. 3. Masuk ke direktori /usr/local/src # cd /usr/local/src
69
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4. Penulis mengetikkan perintah untuk menginstal perangkat yang diperlukan data node: # wget http://download.softagency.net/MySQL/Downloads/MySQLCluster-7.0/MySQL-Cluster-gpl-storage-7.0.35-
1.rhel5.x86_64.rpm
5. Setelah download selesai, penulis mengetikkan perintah untuk menginstal file tersebut. # rpm -Uhv MySQL-Cluster-gpl-storage-7.0.351.rhel5.x86_64.rpm
c. Daemon Node 1. Penulis membuka terminal CentOS dan login sebagai root. 2. Komputer dikoneksikan ke internet. 3. Masuk ke direktori /usr/local/src # cd /usr/local/src 4. Penulis mengetikkan perintah untuk menginstal perangkat yang diperlukan data node: # wget http://dev.mysql.com/get/Downloads/MySQL-Cluster7.2/MySQL-Cluster-client-gpl-7.2.81.el6.x86_64.rpm/from/http://cdn.mysql.com/
70
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
# wget http://dev.mysql.com/get/Downloads/MySQL-Cluster7.2/MySQL-Cluster-shared-gpl-7.2.81.el6.x86_64.rpm/from/http://cdn.mysql.com/ # wget http://www.mysql.com/get/Downloads/MySQL-Cluster7.2/MySQL-Cluster-server-gpl-7.2.8-
1.el6.x86_64.rpm/from/http://cdn.mysql.com/
5. Setelah download selesai, penulis mengetikkan perintah untuk menginstal file tersebut. # rpm -Uhv MySQL-Cluster-*
Instalasi MySQL Cluster dengan 2 daemon Node Penulis menggunakan sistem operasi CentOS-6.5-x86_64, maka langkah instalasi ditulis berdasarkan pengaturan sistem operasi CentOS. a. Management Node 1. Penulis membuka terminal CentOS dan login sebagai root. 2. Komputer dikoneksikan ke internet. 3. Masuk ke direktori /usr/local/src # cd /usr/local/src 4. Penulis mengetikkan perintah untuk menginstal perangkat yang diperlukan management node:
71
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
# wget http://download.softagency.net/MySQL/Downloads/MySQLCluster-7.0/MySQL-Cluster-gpl-management-7.0.351.rhel5.x86_64.rpm
# wget http://download.softagency.net/MySQL/Downloads/MySQLCluster-7.0/MySQL-Cluster-gpl-tools-7.0.341.rhel5.x86_64.rpm
5. Setelah download selesai, penulis mengetikkan perintah untuk menginstal file tersebut.
# rpm -Uhv MySQL-Cluster-gpl-management-7.0.351.rhel5.x86_64.rpm
# rpm -Uhv MySQL-Cluster-gpl-tools-7.0.341.rhel5.x86_64.rpm b. Data Node 1. Penulis membuka terminal CentOS dan login sebagai root. 2. Komputer dikoneksikan ke internet. 3. Masuk ke direktori /usr/local/src # cd /usr/local/src
72
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4. Penulis mengetikkan perintah untuk menginstal perangkat yang diperlukan data node: # wget http://download.softagency.net/MySQL/Downloads/MySQLCluster-7.0/MySQL-Cluster-gpl-storage-7.0.35-
1.rhel5.x86_64.rpm
5. Setelah download selesai, penulis mengetikkan perintah untuk menginstal file tersebut. # rpm -Uhv MySQL-Cluster-gpl-storage-7.0.351.rhel5.x86_64.rpm
c. Daemon Node Satu 1. Penulis membuka terminal CentOS dan login sebagai root. 2. Komputer dikoneksikan ke internet. 3. Masuk ke direktori /usr/local/src # cd /usr/local/src 4. Penulis mengetikkan perintah untuk menginstal perangkat yang diperlukan data node: # wget http://dev.mysql.com/get/Downloads/MySQL-Cluster7.2/MySQL-Cluster-client-gpl-7.2.81.el6.x86_64.rpm/from/http://cdn.mysql.com/
73
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
# wget http://dev.mysql.com/get/Downloads/MySQL-Cluster7.2/MySQL-Cluster-shared-gpl-7.2.81.el6.x86_64.rpm/from/http://cdn.mysql.com/ # wget http://www.mysql.com/get/Downloads/MySQL-Cluster7.2/MySQL-Cluster-server-gpl-7.2.8-
1.el6.x86_64.rpm/from/http://cdn.mysql.com/
5. Setelah download selesai, penulis mengetikkan perintah untuk menginstal file tersebut. # rpm -Uhv MySQL-Cluster-* d. Daemon Node Dua 1. Penulis membuka terminal CentOS dan login sebagai root. 2. Komputer dikoneksikan ke internet. 3. Masuk ke direktori /usr/local/src # cd /usr/local/src 4. Penulis mengetikkan perintah untuk menginstal perangkat yang diperlukan data node: # wget http://dev.mysql.com/get/Downloads/MySQL-Cluster7.2/MySQL-Cluster-client-gpl-7.2.81.el6.x86_64.rpm/from/http://cdn.mysql.com/
74
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
# wget http://dev.mysql.com/get/Downloads/MySQL-Cluster7.2/MySQL-Cluster-shared-gpl-7.2.81.el6.x86_64.rpm/from/http://cdn.mysql.com/ # wget http://www.mysql.com/get/Downloads/MySQL-Cluster7.2/MySQL-Cluster-server-gpl-7.2.8-
1.el6.x86_64.rpm/from/http://cdn.mysql.com/
5. Setelah download selesai, penulis mengetikkan perintah untuk menginstal file tersebut. # rpm -Uhv MySQL-Cluster-*
Pembangunan MySQL Konvensional a. MySQL Server 1. Penulis membuka terminal CentOS dan login sebagai root 2. Kemudian penulis menjalankan mysql yang terdapat di computer server mysql # service mysqld start 3. Penulis akan melakukan konfigurasi sederhana untuk mysql server agar dapat diakses oleh computer klien a. Penulis mengetik “mysql” di terminal yang sudah login sebagai root
75
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4.1 Tampilan MySQL pada CentOS b. Kemudian penulis mengetikan perintah supaya mysql server dapat diakses oleh klien lain melalui computer yang berbeda GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD 'mysql' WITH GRANT OPTION;
Perintah ini bertujuan agar pengguna mysql mendapatkan
hak
istimewa
(privileges)
untuk
mengakses semua database yang ada di mysql server dengan menggunakan password “mysql”. 4. Penulis mematikan firewall agar mysql dapat diakses melalui computer lain # service iptables stop 5. Penulis menkonfigurasi ip MySQL Server 192.168.22.2 255.255.255.0
76
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
b. Komputer klien 1. Penulis menkonfigurasi ip Komputer klien 192.168.22.6 255.255.255.0 2. Penulis membuka command prompt pada computer klien dan masuk ke directory C:\Program Files\MySQL\ MySQL Server 5.6\bin 3. Penulis mengetikkan perintah sebagai berikut untuk menjalankan mysqlslap dengan query select: mysqlslap
--host=192.168.22.2
--password=mysql
--create-
schema=sakila --query="select * from customer;" --concurrency=25 4. Penulis mengetikkan perintah sebagai berikut untuk menjalankan mysqlslap dengan query insert: mysqlslap
--host=192.168.22.2
--password=mysql
--create-
schema=sakila --query="insert into customer (store_id, first_name, last_name, email, address_id, active) values ('1', 'a', 'b', 'A@b', '1','1');" 5. Penulis mengetikkan perintah sebagai berikut untuk menjalankan mysqlslap dengan query update: mysqlslap --host=192.168.22.2 --password=mysql --createschema=sakila --query="update customer set store_id=2, first_name='c', last_name='d' where first_name!='c' limit 1;” -concurrency=25
77
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
6. Penulis mengetikkan perintah sebagai berikut untuk menjalankan mysqlslap dengan query delete: mysqlslap
--host=192.168.22.2
--password=mysql
--create-
schema=sakila --query="delete from customer where first_name='a' limit 1;” --concurrency=25
Pembangunan MySQL Cluster dengan 1 daemon node 1. Penulis men-disable SELINUX pada semua server terlebih dahulu. Dengan cara masuk ke direktori /etc/sysconfig # cd /etc/sysconfig/ 2. Kemudian mengedit selinux, mengganti SELINUX = disabled
Gambar 4.2 Tampilan SELINUX pada CentOS 3. Kemudian penulis mematikan semua firewall pada server 78
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
# service iptables stop # chkconfig iptables off a. Management Node 1. Penulis membuka terminal CentOS dan login sebagai root. 2. Kemudian penulis membuat direktori mysql cluster # mkdir -p /var/lib/mysql-cluster 3. Melakukan konfigurasi file config.ini # nano /var/lib/mysql-cluster/config.ini 4. Tambahkan tulisan seperti di bawah ini:
Gambar 4.3 Tampilan config.ini 5. Setting ip computer Management 192.168.22.2 255.255.255.0 b. Data Node 1. Penulis membuka terminal CentOS dan login sebagai root. 2. Kemudian penulis mengedit file /etc/my.cnf seperti berikut:
79
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4.4 Tampilan my.cnf 3. Setting ip computer Data Node 192.168.22.3 255.255.255.0 c. Daemon Node 1. Penulis membuka terminal CentOS dan login sebagai root. 2. Kemudian penulis mengedit file /etc/my.cnf seperti berikut:
Gambar 4.5 Tampilan my.cnf 3. Setting ip computer Daemon Node 192.168.22.4 255.255.255.0 d. Cara menyalakan MySQL Cluster Urutan
cara
menyalakan
MySQL
Cluster
Management Node -> Data Node -> Daemon Node 1. Pada terminal computer Management Node, penulis mengetikkan perintah sebagai berikut: 80
adalah
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
# ndb_mgmd -f /var/lib/mysql-cluster/config.ini 2. Pada terminal computer Data Node, penulis mengetikkan perintah sebagai berikut: # ndbd 3. Pada terminal computer Daemon Node, penulis mengetikkan perintah sebagai berikut: # service mysql start
e. Komputer Klien 1. Penulis menkonfigurasi ip Komputer klien 192.168.22.6 255.255.255.0 2. Penulis membuka command prompt pada computer klien dan masuk ke directory C:\Program Files\MySQL\ MySQL Server 5.6\bin 3. Penulis mengetikkan perintah sebagai berikut untuk menjalankan mysqlslap dengan query select: mysqlslap
--host=192.168.22.4
--password=mysql
--create-
schema=sakila --query="select * from customer;" --concurrency=25
4. Penulis mengetikkan perintah sebagai berikut untuk menjalankan mysqlslap dengan query insert:
81
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
mysqlslap
--host=192.168.22.4
--password=mysql
--create-
schema=sakila --query="insert into customer (store_id, first_name, last_name, email, address_id, active) values ('1', 'a', 'b', 'A@b', '1','1');" --concurrency=25 5. Penulis mengetikkan perintah sebagai berikut untuk menjalankan mysqlslap dengan query update: mysqlslap
--host=192.168.22.4
schema=sakila
--query="update
--password=mysql customer
set
--createstore_id=2,
first_name='c', last_name='d' where first_name!='c' limit 1;” -concurrency=25
6. Penulis mengetikkan perintah sebagai berikut untuk menjalankan mysqlslap dengan query delete: mysqlslap
--host=192.168.22.4
--password=mysql
--create-
schema=sakila --query="delete from customer where first_name='a' limit 1;” --concurrency=25
Pembangunan MySQL Cluster dengan 2 daemon node 1. Penulis men-disable SELINUX pada semua server terlebih dahulu. Dengan cara masuk ke direktori /etc/sysconfig # cd /etc/sysconfig/ 2. Kemudian mengedit selinux, mengganti SELINUX = disabled
82
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4.6 Tampilan SELINUX pada CentOS 3. Kemudian penulis mematikan semua firewall pada server # service iptables stop # chkconfig iptables off a. Management Node 1. Penulis membuka terminal CentOS dan login sebagai root. 2. Kemudian penulis membuat direktori mysql cluster # mkdir -p /var/lib/mysql-cluster 3. Melakukan konfigurasi file config.ini # nano /var/lib/mysql-cluster/config.ini 4. Tambahkan tulisan seperti di bawah ini:
83
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4.7 Tampilan config.ini 5. Setting ip computer Management 192.168.22.2 255.255.255.0 b. Data Node 1. Penulis membuka terminal CentOS dan login sebagai root. 2. Kemudian penulis mengedit file /etc/my.cnf seperti berikut:
Gambar 4.8 Tampilan my.cnf 3. Setting ip computer Data Node 192.168.22.3 255.255.255.0 c. Daemon Node Satu 1. Penulis membuka terminal CentOS dan login sebagai root. 2. Kemudian penulis mengedit file /etc/my.cnf seperti berikut:
84
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4.9 Tampilan my.cnf 3. Setting ip computer Daemon Node 192.168.22.4 255.255.255.0 d. Daemon Node Dua 1. Penulis membuka terminal CentOS dan login sebagai root. 2. Kemudian penulis mengedit file /etc/my.cnf seperti berikut:
Gambar 4.10 Tampilan my.cnf 4. Setting ip computer Daemon Node 192.168.22.5 255.255.255.0 e. Cara menyalakan MySQL Cluster Urutan
cara
menyalakan
MySQL
Cluster
Management Node -> Data Node -> Daemon Node
85
adalah
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
1. Pada terminal computer Management Node, penulis mengetikkan perintah sebagai berikut: # ndb_mgmd -f /var/lib/mysql-cluster/config.ini 2. Pada terminal computer Data Node, penulis mengetikkan perintah sebagai berikut: # ndbd 3. Pada terminal computer Daemon Node, penulis mengetikkan perintah sebagai berikut: # service mysql start
f. Komputer Klien Satu 1. Penulis menkonfigurasi ip Komputer klien 192.168.22.6 255.255.255.0 2. Penulis membuka command prompt pada computer klien dan masuk ke directory C:\Program Files\MySQL\ MySQL Server 5.6\bin 3. Penulis mengetikkan perintah sebagai berikut untuk menjalankan mysqlslap dengan query select: mysqlslap
--host=192.168.22.4
--password=mysql
--create-
schema=sakila --query="select * from customer;" --concurrency=25
86
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4. Penulis mengetikkan perintah sebagai berikut untuk menjalankan mysqlslap dengan query insert: mysqlslap
--host=192.168.22.4
--password=mysql
--create-
schema=sakila --query="insert into customer (store_id, first_name, last_name, email, address_id, active) values ('1', 'a', 'b', 'A@b', '1','1');"
--concurrency=25 5. Penulis mengetikkan perintah sebagai berikut untuk menjalankan mysqlslap dengan query update: mysqlslap
--host=192.168.22.4
schema=sakila
--query="update
--password=mysql customer
set
--createstore_id=2,
first_name='c', last_name='d' where first_name!='c' limit 1;” -concurrency=25
6. Penulis mengetikkan perintah sebagai berikut untuk menjalankan mysqlslap dengan query delete: mysqlslap
--host=192.168.22.4
--password=mysql
--create-
schema=sakila --query="delete from customer where first_name='a' limit 1;” --concurrency=25 g. Komputer Klien Dua 1. Penulis menkonfigurasi ip Komputer klien 192.168.22.7 255.255.255.0
87
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2. Penulis membuka command prompt pada computer klien dan masuk ke directory C:\Program Files\MySQL\ MySQL Server 5.6\bin 3. Penulis mengetikkan perintah sebagai berikut untuk menjalankan mysqlslap dengan query select:
mysqlslap
--host=192.168.22.5
--password=mysql
--create-
schema=sakila --query="select * from customer;" --concurrency=25
4. Penulis mengetikkan perintah sebagai berikut untuk menjalankan mysqlslap dengan query insert: mysqlslap
--host=192.168.22.5
--password=mysql
--create-
schema=sakila --query="insert into customer (store_id, first_name,
last_name, email, address_id, active) values ('1', 'a', 'b', 'A@b', '1','1');" --concurrency=25 5. Penulis mengetikkan perintah sebagai berikut untuk menjalankan mysqlslap dengan query update: mysqlslap
--host=192.168.22.5
schema=sakila
--query="update
--password=mysql customer
set
--createstore_id=2,
first_name='c', last_name='d' where first_name!='c' limit 1;” --
concurrency=25
6. Penulis
mengetikkan
perintah
sebagai
menjalankan mysqlslap dengan query delete:
88
berikut
untuk
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
mysqlslap
--host=192.168.22.5
--password=mysql
--create-
schema=sakila --query="delete from customer where first_name='a' limit 1;” --concurrency=25
Hasil eksekusi query select
Skenario
Skenario 1
Skenario 2
Skenario 3
Skenario 5
Select * from Customer; Klien 25 50 75 100 125 150 25 50 75 100 125 150 25 50 75 100 125 150 175 200 225 250 275 50 100 150 200 250 300 350 400 450 500
89
Rata-rata 8.515 17.961 27.677 39.2626 49.6794 63.1968 8.8962 18.5352 29.4768 41.2108 53.9322 65.3696 15.80 29.82 45.5424 56.7326 70.4846 82.865 97.6594 110.287 125.453 138.186 154.143 25.470 53.499 73.332 106.093 137.423 159.520 198.755 215.461 232.553 267.526
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Hasil eksekusi query insert insert into customer (store_id, first_name, last_name, email, address_id, active) values ('1', 'a', 'b', 'A@b', '1','1'); Skenario Klien Rata-rata 25 0.5058 50 0.7772 75 1.6702 100 2.5762 125 3.5876 150 3.4444 175 4.6054 200 5.0792 225 5.7112 Skenario 1 250 6.8576 275 6.4138 300 7.5196 325 7.877 350 7.88467 375 8.0715 400 8.34167 425 8.524 450 9.7345 475 17.018 25 0.1716 50 0.178 75 0.1902 100 0.24 125 0.2432 150 2.7904 175 3.2898 200 4.2282 225 4.2994 250 5.021 Skenario 2 275 5.4022 300 5.40767 325 7.39 350 6.1825 375 7.3605 400 6.182 425 7.37433 450 6.214 475 6.6825 500 8.377
90
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
25 50 75 100 125 150 175 200 225 250 275 50 100 150 200 250 300 350 400 450 500 550 600
Skenario 3
Skenario 5
91
0.0624 0.1682 0.3968 0.4122 0.5582 0.5746 0.8556 3.4906 7.204 6.223 9.805 0.1748 0.1263 0.2827 0.3261 0.6151 2.6744 2.7401 3.8188 3.8642 7.5793 7.74038 7.59283
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Hasil eksekusi query update update customer set store_id=2, first_name='c', last_name='d' where first_name!='c' limit 1; Skenario
Klien
Rata-rata
25
0.3084
50
1.0116
75
1.7264
100
2.589
125
3.4002
150
3.8784
175
4.0906
200
6.0854
25
0.1874
50
0.1776
75
0.1966
100
0.4124
125
0.4464
150
0.6308
175
1.411
200
4.006
225
5.4208
250
5.021
275
6.39325
300
6.2375
325
6.2295
25
0.3246
50
0.821
75
1.8454
100
2.1732
125
4.5126
150
3.3534
175
5.083
200
4.8396
Skenario 1
Skenario 2
Skenario 3
92
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
225
5.57
250
6.5354
275
7.869
300
7.369
50
0.9601
100
1.9425
150
3.0352
200
3.8984
250
4.7039
300
5.8048
350
7.0366
400
8.072
450
8.8914
500
9.511
550
10.5751
600
11.7877
Skenario 5
93
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Hasil eksekusi query delete delete from customer where first_name='a' limit 1; Skenario
Skenario 1
Skenario 2
Skenario 3
94
Klien
Rata-rata
25
0.543
50
1.2086
75
1.9394
100
2.6382
125
3.4636
150
3.5752
175
4.5558
200
5.807
25
0.175
50
0.384
75
0.178
100
0.1902
125
0.4184
150
2.4514
175
1.4518
200
1.874
225
6.1762
250
5.2552
275
5.035
300
6.229
325
7.276
25
0.856
50
1.0804
75
1.1836
100
0.9834
125
1.4926
150
1.5336
175
3.5534
200
4.718
225
7.0786
250
7.27033
275
6.96833
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Skenario 5
95
50
0.701
100
0.4571
150
1.1539
200
1.7159
250
2.6948
300
2.8963
350
3.1164
400
4.1168
450
5.858
500
6.893
550
6.90825
600
3.77567