MemSQL adalah sistem manajemen basis data SQL terdistribusi dan in-memory. MemSQL juga termasuk sistem manajemen basis data relasional (RDBMS). MemSQL mengkompilasi Structured Query Language (SQL) ke dalam kode mesin melalui proses pembuatan kode yang disebut “code generation“.
Core Technology
MemSQL menggabungkan lock free data sructure dan kompilasi just-in-time (JIT) untuk memproses beban kerja yang sangat fluktuatif. Lebih khusus lagi, MemSQL mengimplementasikan tabel lock-free hash dan lock free skiplist di memori untuk akses acak dengan cepat ke data. Permintaan SQL yang dikirim ke server MemSQL dikonversi menjadi kode byte dan dikompilasi melalui LLVM menjadi kode mesin. Query kemudian dilucuti dari parameternya dan template query disimpan sebagai objek bersama yang kemudian dicocokkan dengan query yang masuk ke sistem. Menjalankan rencana permintaan pra-dikompilasi menghilangkan interpretasi sepanjang hot code paths, menyediakan jalur kode yang sangat efisien yang meminimalkan jumlah instruksi unit pemrosesan pusat (CPU) yang diperlukan untuk memproses pernyataan SQL.
MemSQL kompatibel dengan MySQL. Ini berarti aplikasi dapat terhubung ke MemSQL melalui klien dan driver MySQL, serta konektor Open Database Connectivity (ODBC) dan Java Database Connectivity (JDBC). Selain sintaks dan fungsionalitas MySQL, MemSQL juga dapat menyimpan kolom dalam format JSON, dan mendukung tipe data dan operasi geospasial .
Format Baris dan Kolom
MemSQL dapat menyimpan tabel database baik sebagai rowstores atau columnstores. Format yang digunakan ditentukan oleh pengguna pada waktu DDL (yaitu ketika tabel dibuat). Data untuk semua tabel rowstore disimpan sepenuhnya dalam memori, dengan snapshots dan log transaksi tetap ada di disk. Data untuk semua tabel toko kolom disimpan di disk, menggunakan struktur seperti baris toko untuk menangani sisipan yang masuk ke toko kolom.
Tabel baris dan tabel kolom berbeda lebih dari sekadar media penyimpanan yang digunakan. Rowstores, seperti namanya, menyimpan informasi dalam format baris, yang merupakan format data tradisional yang digunakan oleh sistem RDBMS. Rowstore dioptimalkan untuk singleton atau menyisipkan kecil, memperbarui atau menghapus query dan yang paling terkait dengan kasus penggunaan OLTP (transaksional). Columnstore dioptimalkan untuk query pemilihan kompleks, biasanya terkait dengan kasus penggunaan OLAP (analitik). Sebagai contoh, kumpulan data klinis besar untuk analisis data paling baik disimpan dalam format kolom, karena query yang dijalankan terhadapnya biasanya akan berupa permintaan ad-hoc di mana agregat dihitung atas sejumlah besar item data yang serupa.
Arsitektur Terdistribusi
Database MemSQL adalah database terdistribusi yang diimplementasikan dengan agregator dan leaf leaf. Binari MemSQL yang digunakan untuk agregator dan node daun hampir sama, dengan satu-satunya perbedaan adalah pengguna mengidentifikasi node sebagai agregator atau daun. Agregator bertanggung jawab untuk menerima permintaan SQL, memecahnya di node daun, dan mengumpulkan hasil kembali ke klien. Node daun menyimpan data MemSQL dan memproses query dari agregator. Semua komunikasi antara agregator dan node daun dilakukan melalui jaringan melalui sintaks SQL. MemSQL menggunakan partisi hash untuk mendistribusikan data secara seragam di sejumlah node daun.
Durability
Durability MemSQL sedikit berbeda untuk rowstore di memori dan kolom-on di disk. Daya tahan untuk rowstore dalam-memori diimplementasikan dengan write-ahead log and snapshots, mirip dengan checkpoints. Dengan pengaturan default, setelah transaksi diakui dalam memori, database akan secara asinkron menulis transaksi ke disk secepat yang dimungkinkan oleh disk.
Kolom on-disk sebenarnya digawangi oleh struktur seperti rowstore di dalam memori (skiplist). Struktur ini memiliki jaminan ketahanan yang sama dengan baris awal MemSQL. Selain itu, columnstore tahan lama karena datanya disimpan di disk.
Replikasi
Cluster MemSQL dapat dikonfigurasi dalam mode ” High Availability”, di mana setiap partisi data secara otomatis dibuat dengan versi master dan slave pada dua node leaf terpisah. Dalam mode High Availability, agregator mengirim transaksi ke partisi master, yang kemudian mengirim log ke partisi slave. Jika terjadi kegagalan master yang tidak terduga, partisi slave mengambil alih sebagai partisi master dalam operasi online penuh.
MemSQL Ops
MemSQL dikirimkan dengan alat instalasi, manajemen, dan pemantauan yang disebut MemSQL Ops. Saat memasang MemSQL, Ops dapat digunakan untuk mengatur basis data MemSQL yang didistribusikan di seluruh mesin, dan memberikan metrik tentang sistem yang sedang berjalan. Ops MemSQL memiliki antarmuka pengguna web dan antarmuka baris perintah.
Integrasi Dengan Apache
Dimulai dengan MemSQL 4.1, diluncurkan pada September 2015, MemSQL memberi pengguna kemampuan untuk menginstall Apache Spark sebagai bagian dari cluster MemSQL, dan menggunakan Spark sebagai alat ETL untuk mengimpor data ke MemSQL. Apache Spark diinstall dan diatur secara interaktif menggunakan MemSQL Ops. Pengguna Ops kemudian dapat menentukan ekstrak, transformasi, dan memuat fase pipeline data mereka untuk mengimpor data ke MemSQL. Manajemen dan pemantauan pipeline data yang berjalan dapat dilakukan dalam UI Ops.
Kebutuhan akan digital IT sangat dibutuhkan dalam kegiatan sehari hari ,Bead IT Consultant merupakan pilihan tepat sebagai partner anda,kunjungi website kami dengan klik link ini www.beadgrup.com