Mengenal My SQL Cluster
pada kesempatan kali ini saya akan membagikan tentang pengenalan MySQL Cluster
A. Pengertian
MySQL Cluster adalah teknologi yang menyediakan shared-nothing
clustering dan auto-sharding untuk MySQL sistem manajemen database. Hal
ini dirancang untuk menyediakan kemampuan tinggi dan throughput yang
tinggi dengan latency rendah, sementara memungkinkan untuk dekat
skalabilitas linear. MySQL Cluster diimplementasikan melalui NDB atau
NDBCLUSTER storage enggine untuk MySQL ( "NDB" singkatan Network Data
Base).
B. 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
1. Replikasi
Secara internal MySQL Cluster menggunakan replikasi sinkron melalui dua
fase komit mekanisme untuk menjamin data yang ditulis ke beberapa node
saat akan ditulis. (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 node 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.
2. Auto-sharding
MySQL Cluster diimplementasikan sebagai database multi-master sepenuhnya
didistribusikan memastikan update yang dibuat oleh aplikasi atau SQL
node 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.
3. Penyimpanan Hybrid
MySQL Cluster memungkinkan dataset lebih besar dari kapasitas mesin tunggal untuk disimpan dan diakses di beberapa mesin.
MySQL Cluster memelihara semua diindeks kolom di memori terdistribusi.
Non-diindeks kolom juga dapat dipertahankan dalam memori didistribusikan
atau dapat dipertahankan pada disk yang dengan di memori cache halaman.
Menyimpan kolom non-diindeks pada disk memungkinkan MySQL Cluster untuk
menyimpan dataset lebih besar dari memori agregat mesin berkerumun.
MySQL Cluster menulis Redo log ke disk untuk semua perubahan data serta
cek menunjuk data ke disk secara teratur. Hal ini memungkinkan cluster
untuk secara konsisten pulih dari disk setelah pemadaman cluster yang
penuh. Sebagai log Redo ditulis asynchronously sehubungan dengan
transaksi berkomitmen, beberapa sejumlah kecil transaksi dapat hilang
jika cluster penuh gagal, namun hal ini dapat diatasi dengan menggunakan
replikasi geografis atau multi-situs klaster dibahas di atas. Arus
standar asynchronous tulis delay 2 detik, dan dikonfigurasi. titik
normal skenario kegagalan tidak mengakibatkan kehilangan data karena
replikasi data sinkron dalam cluster.
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.
4. 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.
5. 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.
C. 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). [5]
- 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).
D. Dukungan
MySQL Cluster dilisensikan di bawah GPLv 2 lisensi. dukungan komersial
tersedia sebagai bagian dari MySQL Cluster CGE, yang juga termasuk
addons sumber non-terbuka seperti MySQL Cluster Manager, MySQL
Enterprise Monitor, selain MySQL Enterprise Security dan Audit MySQL
Enterprise.
Itulah tadi sekilas tentang MySQL Cluster, semoga bermanfaat.
Referensi
https://en.wikipedia.org/wiki/MySQL_Cluster
0 comments:
Post a Comment