MariaDB Xpand adalah produk baru dari MariaDB. Itu sebelumnya dikenal sebagai ClustrixDB yang diakuisisi pada September 2018 oleh MariaDB Corporation.
ClustrixDB tidak lagi tersedia sebagai entitas terpisah, tetapi sekarang disertakan sebagai bagian dari MariaDB Enterprise Server. Sekarang disebut Xpand, ia memperluas MariaDB Enterprise Server dengan data terdistribusi dan pemrosesan transaksi, mengubahnya menjadi database SQL terdistribusi yang mampu menskalakan jutaan transaksi per detik dengan arsitektur shared-nothing. Namun, Xpand bukanlah segalanya atau tidak sama sekali, karena DBA dapat memilih untuk menggunakan tabel yang direplikasi dan didistribusikan. Xpand bagus untuk kueri kompleks dan pemrosesan analitik karena dapat melakukan kueri paralel di seluruh node yang tersedia dalam cluster.
Pada dasarnya, Xpand adalah arsitektur shared-nothing dan dirancang sebagai database SQL scale-out, dibangun dari bawah ke atas yang awalnya dapat berjalan pada perangkat keras komoditas dengan redistribusi data otomatis (sehingga Anda tidak perlu melakukan sharding ). Ini memiliki toleransi kesalahan bawaan, semua dapat diakses oleh antarmuka SQL sederhana dan dukungan untuk fitur MySQL penting bisnis (replikasi, pemicu, rutinitas tersimpan, dll). Lisensinya hanya tersedia sebagai hak milik, jadi jika Anda ingin memanfaatkan produk ini, Anda harus menghubungi penjualan MariaDB terlebih dahulu untuk mendapatkan lisensi yang valid.
Kapan Menggunakan MariaDB Xpand
Xpand dirancang untuk menangani volume data yang besar dan memungkinkan Anda menskalakan database dengan lebih efisien. Ini berarti penskalaan cluster Anda dilakukan dengan mudah dan otomatis oleh Xpand sendiri. Sejak rilis MariaDB Platform X5, Xpand sudah menjadi bagian dari platform yang disediakan untuk pelanggan sebagai bagian dari solusi SQL terdistribusi. Mesin pintar Xpand memungkinkan pelanggan untuk menskala di luar sweet spot mesin penyimpanan InnoDB dari beban kerja baca/tulis campuran berkinerja tinggi pada satu node dengan opsi untuk menambahkan skala melalui replikasi dan menggunakan solusi terdistribusi yang toleran terhadap kesalahan yang sangat tersedia untuk besar- skala beban kerja.
Dengan Xpand, Anda memiliki fleksibilitas untuk menskalakan berdasarkan per tabel. Mulailah dengan menggunakan Xpand hanya untuk satu tabel dan perluas penggunaannya seiring kebutuhan Anda tumbuh melampaui apa yang dapat ditangani oleh satu node. Tingkatkan penggunaan SQL terdistribusi seiring kebutuhan perusahaan Anda berkembang melampaui replikasi atau pengelompokan. Saat volume data atau kueri meningkat hingga menurunkan performa, Anda dapat menggunakan Xpand untuk mendistribusikan tabel atau seluruh database untuk peningkatan throughput dan konkurensi. Xpand memiliki ketersediaan dan elastisitas bawaan yang tinggi, sehingga node dapat ditambahkan atau dihapus secara transparan sesuai kebutuhan untuk penskalaan.
Sama seperti MariaDB ColumnStore, mesin pintar berbentuk kolom, PENGGABUNGAN mesin silang dimungkinkan (dan didorong) antara tabel yang direplikasi dan didistribusikan. Tidak seperti implementasi SQL Terdistribusi lainnya yang mendistribusikan seluruh database dan oleh karena itu, memiliki overhead yang signifikan pada tabel yang lebih kecil, MariaDB memungkinkan penggunaan gabungan InnoDB untuk kumpulan data kecil yang direplikasi dan kumpulan data terdistribusi besar-besaran melalui Xpand.
Sayangnya, tidak ada dokumentasi formal mengenai status perubahan dari ClustrixDB ke MariaDB Xpand, jadi Anda mungkin masih ingin mengandalkan https://docs.clustrix.com/ untuk dokumentasi tentang cara kerja ClustrixDB. Diketahui juga bahwa GTID tidak didukung oleh ClustrixDB, meskipun hal ini mungkin telah berubah sejak rilis MariaDB 10.5.
Bagaimana Cara Kerja MariaDB Xpand?
Deployment menggunakan MariaDB Xpand mengharuskan Anda memiliki MariaDB Enterprise Servers dengan plugin Xpand terinstal, kemudian Xpand Nodes berjalan bersama. Ini sama seperti bagaimana Anda mengatur pengaturan replikasi MaxScale dan MariaDB Server untuk Ketersediaan Tinggi dan Anda dapat menempatkan MaxScale di atas untuk mengelola koneksi dan secara transparan melakukan failover antara instance Enterprise Server frontend dengan kumpulan data kecil yang direplikasi di InnoDB.. Juga disarankan agar untuk pengalaman kinerja terbaik dengan Xpand, server dan node front-end harus dijalankan pada server fisik yang terpisah. Lihat arsitektur topologi MariaDB Xpand di bawah ini dari MariaDB tentang cara kerjanya:
https://mariadb.com/resources/blog/mariadb-adds-xpand-for-distributed-sql /Untuk menjelaskan lebih lanjut di atas, Xpand membagi sejumlah irisan untuk setiap tabel yang dibangun menggunakan Xpand. Setiap irisan disimpan pada simpul utama dan kemudian direplikasi ke satu atau lebih simpul lain untuk memastikan toleransi kesalahan. Setiap node Xpand dapat melakukan pembacaan dan penulisan. Dan setiap node memiliki peta distribusi data.
Untuk operasi membaca, bagian utama dari kueri didorong ke Xpand di mana kueri dievaluasi dan bagian kueri yang relevan kemudian dikirim ke node Xpand yang sesuai. MariaDB Enterprise Server mengumpulkan data yang dikembalikan dari node Xpand untuk menghasilkan kumpulan hasil.
Untuk operasi tulis, MariaDB Xpand menggunakan komponen yang disebut "rebalancer" untuk mendistribusikan data secara otomatis dan transparan ke seluruh node Xpand yang tersedia.
MariaDB Xpand sebagai SQL Terdistribusi
Setiap node Xpand dapat melakukan pembacaan dan penulisan. Saat kueri diterima oleh MariaDB Enterprise Server, kueri dievaluasi oleh pengoptimal kueri dan sebagian kueri dikirim ke node Xpand yang relevan. Hasilnya dikumpulkan dan satu set hasil dikembalikan ke klien.
MariaDB Xpand memanfaatkan arsitektur shared-nothing; satu node menangani setiap permintaan, dan memori serta penyimpanan tidak dibagikan.
MariaDB Xpand HA dan Toleransi Kesalahan
MariaDB Xpand secara desain toleran terhadap kesalahan. Xpand memelihara dua replika semua data menggunakan proses penyeimbang ulang yang berjalan di latar belakang. Xpand dapat mengalami kegagalan satu node atau zona tanpa kehilangan data.
Saat node gagal, data diseimbangkan kembali dari node yang tersisa, secara otomatis memulihkan perlindungan data tanpa intervensi. Dalam kegagalan zona, penyeimbang ulang melakukan operasi yang sama antara node dan zona yang tersisa.
Saat node yang gagal diganti, rebalancer mendistribusikan ulang data, memulihkan MariaDB Xpand ke jumlah node yang diinginkan.
Penskalaan Horizontal dengan MariaDB Xpand
MariaDB Xpand fleksibel berdasarkan desain. Jika beban pada MariaDB Enterprise Server meningkat, Anda dapat menambahkan Server tambahan ke penerapan Anda, load balancing antara mereka menggunakan MariaDB MaxScale. Setiap Server dapat terhubung ke node Xpand untuk mengakses data yang disimpan di tabel Xpand.
Jika beban pada MariaDB Xpand meningkat, Anda dapat mengurangi skala dengan menambahkan node baru. Saat Anda menambahkan node Xpand ke penerapan, proses penyeimbangan ulang mendistribusikan data dari node yang ada. Setelah selesai, node Xpand sekarang dapat menangani operasi baca dan tulis dari MariaDB Enterprise Server.
Jika beban pada MariaDB Xpand berkurang, Anda dapat menurunkan skala dengan menghapus node. Saat Anda menghapus node Xpand dari penerapan, proses penyeimbangan kembali mendistribusikan data ke node yang tersisa, memastikan toleransi kesalahan.
Apa yang Membuat MariaDB Xpand dapat diskalakan?
Tidak ada hambatan dan tidak ada titik kegagalan. Semua prosesor terdaftar untuk mendukung pemrosesan kueri. Kueri diparalelkan dan didistribusikan di seluruh cluster ke data yang relevan. Node baru secara otomatis dikenali dan dimasukkan ke dalam cluster. Beban kerja dan data secara otomatis diseimbangkan di semua node dalam cluster. Kalkulus relasional SQL seluruh cluster dan properti ACID menghilangkan kompleksitas multi-node dari pengembangan dan pengelolaan aplikasi multi-tingkat. Kompleksitas yang biasanya diperlukan untuk menskalakan model db yang ada untuk menangani volume data yang besar dihilangkan. Dan seiring bertambahnya basis data Anda, tambahkan saja node.
Ada beberapa hal yang memengaruhi skalabilitas dan performa:
- Arsitektur shared-nothing, yang menghilangkan potensi kemacetan. Bandingkan ini dengan arsitektur shared-disk / shared-cache yang menghambat, tidak menskalakan, dan sulit untuk dikelola.
- Paralelisasi kueri, yang didistribusikan ke node dengan data yang relevan. Hasil dibuat sedekat mungkin dengan data, lalu dirutekan kembali ke node yang meminta untuk dikonsolidasikan dan dikembalikan ke klien.
Ini sangat berbeda dengan sistem lain, yang secara rutin memindahkan data dalam jumlah besar ke node yang memproses kueri, lalu menghilangkan semua data yang tidak sesuai dengan kueri (biasanya banyak data) . Dengan hanya memindahkan data yang memenuhi syarat di seluruh jaringan ke node yang meminta, Xpand secara signifikan mengurangi kemacetan lalu lintas jaringan. Selain itu, lebih banyak prosesor berpartisipasi dalam proses pemilihan data, Dengan memilih data pada beberapa node secara paralel, sistem menghasilkan hasil lebih cepat daripada jika semua data dipilih oleh satu node, yang pertama harus mengumpulkan semua data yang diperlukan dari yang lain. node dalam sistem.
Karena setiap node berfokus pada partisi tertentu dan mengirimkan item kerja ke node lain daripada meminta data mentah dari node lain, cache setiap node berisi lebih banyak data node tersebut, dan lebih sedikit data redundan dari node lain. Ini berarti tingkat cache hit akan jauh lebih tinggi, secara signifikan mengurangi kebutuhan akan akses disk yang lambat.
Men-deploy MariaDB Xpand
Ada dua penerapan MariaDB Xpand terpisah untuk mulai menggunakan MariaDB Xpand. Penerapan Xpand terdiri dari instance MariaDB Enterprise Server, yang disebut server front-end, setelah plugin Xpand diinstal, kemudian Xpand Nodes berjalan bersama dengan server front-end ini. Untuk kinerja terbaik, Server Perusahaan dan node Xpand dapat diinstal pada server fisik yang terpisah.
- Anda perlu menyiapkan MariaDB Xpand Node. Node Xpand dikonfigurasi dalam penerapan untuk menyediakan back-end penyimpanan untuk MariaDB Enterprise Server dengan plugin mesin penyimpanan Xpand. Server menyimpan data untuk tabel Xpand pada node Xpand daripada sistem file lokal. Menginstal Xpand Node memerlukan lisensi, yang merupakan objek JSON, dan Anda hanya dapat memperolehnya dengan menghubungi MariaDB Sales. Proses instalasi tidak secepat hanya satu perintah atau klik jadi kami sarankan Anda pergi ke panduan instalasi mereka untuk Xpand Node.
- Menerapkan Server front-end. Seperti yang saya perhatikan di sini atas perubahan yang mereka buat, sepertinya cara yang paling direkomendasikan untuk menggunakan Xpand adalah menggunakan MariaDB Enterprise Server 10.5. Xpand
Kompatibilitas Perangkat Keras MariaDB Xpand
Jika Anda ingin tahu tentang kompatibilitas perangkat kerasnya, Platform MariaDB dapat berjalan di berbagai lingkungan. Selama server MariaDB Anda dapat berjalan atau dihosting di lingkungan yang sedang Anda gunakan, selama Anda dapat mengatur Xpand Nodes bersama dengan server MariaDB dan menginstal plugin Xpand, maka ini pasti akan berhasil. Dari dokumentasinya, daftar Lingkungan Fisik dan Cloud tercantum di bawah ini:
- Lokal (lokal)
- Dikumpulkan (colo)
- Awan Pribadi
- Awan Publik
- Hibridisasi
Untuk arsitektur perangkat keras, perlu diperhatikan bahwa mulai MariaDB Enterprise Server 10.4.10-4 (2019-11-18), MariaDB Enterprise Server hanya mendukung platform arsitektur perangkat keras x86_64.
Kesimpulan
MariaDB Xpand menyederhanakan efisiensi dan perluasan dengan cara yang sangat nyaman. Aspek yang paling menarik dari produk ini adalah Anda juga dapat menggunakan fungsi SQL standar MariaDB. Itu dapat disematkan melalui lingkungan MariaDB Anda yang ada, yang dapat memanfaatkan fitur dan skalabilitasnya. Meskipun mungkin menarik, ini memerlukan lisensi khusus dan biaya besar agar Anda dapat memanfaatkan produk ini. Jika ini berfungsi untuk aplikasi perusahaan Anda, maka MariaDB Xpand ini mungkin patut dicoba.