WHAT IS MYSQL CLUSTER ??
What is Mysql Cluster
A. Pengertian
MySQL Cluster adalah teknologi yang
menyediakan bersama-apa clustering dan auto-sharding untuk MySQL sistem
manajemen database . Hal ini dirancang untuk menyediakan ketersediaan
tinggi dan throughput yang tinggi dengan latency rendah, sementara
memungkinkan untuk dekat skalabilitas linear. [2] MySQL Cluster
diimplementasikan melalui NDB mesin atau NDBCLUSTER penyimpanan untuk
MySQL ( "NDB" singkatan N etwork D ata b ase).
B. Latar Belakang
untuk menghindari kegagalan sistem, dikarenakan data base yang mati.
C. Arsitektur
MySQL Cluster dirancang di
sekitar didistribusikan, multi-master ACID arsitektur compliant tanpa
titik tunggal kegagalan . MySQL Cluster menggunakan automatic sharding
(partisi) untuk skala keluar membaca dan menulis operasi pada perangkat
keras komoditas dan dapat diakses melalui SQL dan Non-SQL (NoSQL). API
- Replikasi Secara internal
MySQL Cluster menggunakan replikasi sinkron melalui dua fase komit
mekanisme untuk menjamin data yang ditulis ke beberapa node pada
melakukan data. (Hal ini berbeda dengan apa yang biasanya disebut
sebagai "MySQL Replikasi", yang asynchronous .) Dua salinan (dikenal
sebagai replika) dari data yang diperlukan untuk menjamin ketersediaan.
MySQL Cluster otomatis membuat “kelompok node” dari jumlah replika dan
node data yang ditentukan oleh pengguna. Pembaruan serentak direplikasi
antara anggota kelompok simpul untuk melindungi terhadap kehilangan data
dan mendukung failover cepat antara node.
Hal ini juga memungkinkan untuk meniru asynchronous antara cluster; ini kadang-kadang disebut sebagai "MySQL Cluster Replikasi" atau "replikasi geografis". Hal ini biasanya digunakan untuk mereplikasi cluster antara pusat data untuk pemulihan bencana atau untuk mengurangi efek dari latency jaringan dengan mencari data secara fisik lebih dekat dengan satu set pengguna. Tidak seperti standar replikasi MySQL, replikasi geografis MySQL Cluster ini menggunakan kontrol konkurensi optimis dan konsep zaman menyediakan mekanisme untuk deteksi konflik dan resolusi, memungkinkan aktif / pengelompokan aktif antara pusat data.
- Horisontal partisi data (auto-sharding) MySQL Cluster diimplementasikan sebagai database multi-master sepenuhnya didistribusikan memastikan update yang dibuat oleh aplikasi atau SQL simpul yang langsung tersedia untuk semua node lain mengakses cluster, dan setiap node data dapat menerima operasi menulis. Data dalam MySQL Cluster (NDB) tabel secara otomatis dipartisi di semua node data dalam sistem. Hal ini dilakukan berdasarkan algoritma hashing berdasarkan primary key pada tabel , dan transparan untuk akhir aplikasi . Klien dapat terhubung ke setiap node dalam cluster dan memiliki pertanyaan secara otomatis mengakses pecahan yang benar dibutuhkan untuk memenuhi permintaan atau melakukan transaksi. MySQL Cluster mampu mendukung query cross-beling dan transaksi. Pengguna dapat menentukan skema partisi sendiri. Hal ini memungkinkan pengembang untuk menambahkan “kesadaran distribusi” untuk aplikasi dengan partisi didasarkan pada sub-kunci yang umum bagi semua baris yang diakses oleh transaksi berjalan yang tinggi. Hal ini memastikan bahwa data yang digunakan untuk menyelesaikan transaksi terlokalisir pada pecahan yang sama, sehingga mengurangi hop jaringan.
Ketika meja Cluster MySQL dipertahankan dalam memori, cluster hanya akan mengakses penyimpanan disk untuk menulis Redo catatan dan pos-pos pemeriksaan. Seperti menulis ini pola akses acak sekuensial dan terbatas yang terlibat, MySQL Cluster dapat mencapai tingkat throughput yang menulis lebih tinggi dengan perangkat keras disk yang terbatas dibandingkan dengan caching RDBMS berbasis disk tradisional. checkpointing ini ke disk data tabel di memori dapat dinonaktifkan (pada basis per-tabel) jika ketekunan berbasis disk tidak diperlukan.
- Shared Nothing MySQL Cluster dirancang untuk tidak memiliki satu titik kegagalan. Asalkan cluster diatur dengan benar, setiap satu node, sistem, atau bagian dari perangkat keras dapat gagal tanpa seluruh gagal cluster. Disk bersama ( SAN ) tidak diperlukan. Interkoneksi antara node dapat standar Ethernet, Gigabit Ethernet, InfiniBand, atau SCI interkoneksi.
- MySQL Cluster Manager Bagian dari komersial MySQL Cluster CGE, MySQL Cluster Manager adalah alat yang dirancang untuk menyederhanakan pembuatan dan administrasi database MySQL Cluster CGE dengan mengotomatisasi tugas-tugas manajemen umum, termasuk on-line scaling, upgrade, backup / restore dan konfigurasi ulang. MySQL Cluster Manager juga memonitor dan secara otomatis pulih MySQL node aplikasi Server dan node manajemen, serta MySQL node Cluster data
D. Implementasi
MySQL Cluster menggunakan tiga jenis node (proses):
- Data simpul (ndbd / proses ndbmtd): node ini menyimpan data. Tabel secara otomatis sharded di node Data yang juga transparan menangani load balancing, replikasi, failover dan penyembuhan diri.
- Manajemen simpul (proses ndb_mgmd): Digunakan untuk konfigurasi dan monitoring dari cluster. Mereka hanya diperlukan untuk memulai atau restart node cluster.Mereka juga dapat dikonfigurasi sebagai arbiter, tapi ini tidak wajib (MySQL Server dapat dikonfigurasi sebagai arbiter sebagai gantinya).
- Aplikasi node atau SQL simpul (proses mysqld): Sebuah server MySQL (mysqld) yang menghubungkan ke semua node data dalam rangka untuk melakukan penyimpanan data dan pengambilan. jenis node ini opsional; adalah mungkin untuk query node data secara langsung melalui API NDB, baik native menggunakan C ++ API atau salah satu API NoSQL tambahan yang dijelaskan di atas.
Umumnya, diharapkan bahwa setiap node akan berjalan pada host fisik yang terpisah, VM atau contoh awan (meskipun sangat umum menemukan co-Manajemen Nodes dengan MySQL Server). Untuk praktek terbaik, dianjurkan tidak menemukan co-node dalam kelompok node yang sama pada host fisik tunggal (seperti yang akan mewakili titik kegagalan).
0 komentar:
Posting Komentar