Alibaba telah membuka kode untuk PolarDB, DBMS terdistribusi berdasarkan PostgreSQL.

Alibaba, salah satu perusahaan IT terbesar di Tiongkok, telah membuka kode sumber DBMS PolarDB yang didistribusikan, berdasarkan PostgreSQL. PolarDB memperluas kemampuan PostgreSQL dengan alat untuk penyimpanan data terdistribusi dengan integritas dan dukungan untuk transaksi ACID dalam konteks seluruh database global yang didistribusikan ke berbagai node cluster. PolarDB juga mendukung pemrosesan kueri SQL terdistribusi, toleransi kesalahan, dan penyimpanan data redundan untuk memulihkan informasi setelah satu atau lebih node gagal. Jika Anda perlu memperluas penyimpanan, Anda cukup menambahkan node baru ke cluster. Kode ini terbuka di bawah lisensi Apache 2.0.

PolarDB terdiri dari dua komponen - ekstensi dan satu set patch untuk PostgreSQL. Patch memperluas kemampuan inti PostgreSQL, dan ekstensi mencakup komponen yang diterapkan secara terpisah dari PostgreSQL, seperti mekanisme manajemen transaksi terdistribusi, layanan global, prosesor kueri SQL terdistribusi, metadata tambahan, alat untuk mengelola cluster, menerapkan cluster, dan menyederhanakan migrasi sistem yang ada ke sana.

Tambalan tersebut menambahkan ke inti PostgreSQL versi terdistribusi dari mekanisme untuk mengontrol akses paralel ke data menggunakan multiversi (MVCC, kontrol konkurensi Multiversi) untuk tingkat isolasi yang berbeda. Sebagian besar fungsi PolarDB disertakan dalam ekstensi, yang mengurangi ketergantungan pada PostgreSQL dan menyederhanakan pembaruan dan implementasi solusi berdasarkan PolarDB (ini menyederhanakan transisi ke versi baru PostgreSQL dan mempertahankan kompatibilitas penuh dengan PostgreSQL). Untuk mengelola cluster, toolkit pgxc_ctl digunakan, berdasarkan utilitas serupa dari PostgreSQL-XC dan PostgreSQL-XL.

Ada tiga komponen dasar dalam sebuah cluster: node database (DN), manajer cluster (CM) dan layanan manajemen transaksi (TM). Selain itu, penyeimbang beban proxy dapat digunakan. Setiap komponen adalah proses terpisah dan dapat dijalankan di server berbeda. Node database melayani kueri SQL dari klien dan pada saat yang sama bertindak sebagai koordinator eksekusi kueri terdistribusi dengan partisipasi node database lainnya. Manajer cluster memantau keadaan setiap node database, menyimpan konfigurasi cluster, dan menyediakan alat untuk mengelola, membuat cadangan, penyeimbangan beban, memperbarui, memulai, dan menghentikan node. Layanan manajemen transaksi bertanggung jawab untuk menjaga integritas keseluruhan di seluruh cluster.

Alibaba telah membuka kode untuk PolarDB, DBMS terdistribusi berdasarkan PostgreSQL.

PolarDB didasarkan pada arsitektur komputasi terdistribusi Shared-nothing, yang menurutnya data didistribusikan ketika disimpan di node yang berbeda, tanpa menggunakan penyimpanan umum untuk semua node, dan setiap node bertanggung jawab atas bagian data yang terkait dengannya dan melakukan kueri terkait ke data. Setiap tabel dipecah menjadi beberapa bagian (sharding) menggunakan hashing berdasarkan kunci utama. Jika permintaan mencakup data yang terletak di node berbeda, mesin eksekusi transaksi terdistribusi dan koordinator transaksi diaktifkan untuk memastikan atomisitas, konsistensi, isolasi, dan keandalan (ACID).

Untuk memastikan toleransi kesalahan, setiap segmen direplikasi ke setidaknya tiga node. Untuk menghemat sumber daya, data lengkap hanya mencakup dua replika, dan satu replika dibatasi untuk menyimpan log tulis kembali (WAL). Salah satu dari dua node dengan replika penuh dipilih sebagai pemimpin dan berpartisipasi dalam pemrosesan permintaan. Node kedua bertindak sebagai cadangan untuk segmen data yang bersangkutan, dan node ketiga mengambil bagian dalam pemilihan node terdepan dan dapat digunakan untuk memulihkan informasi jika terjadi kegagalan dua node dengan replika penuh. Replikasi data antar node cluster diatur menggunakan algoritma Paxos, yang memastikan definisi konsensus yang konsisten dalam jaringan dengan node yang berpotensi tidak dapat diandalkan.

Perlu dicatat bahwa fungsionalitas penuh DBMS PolarDB direncanakan akan terungkap dalam tiga rilis: Pada versi pertama, alat untuk replikasi, ketersediaan tinggi, dan manajemen klaster akan dipublikasikan. Rilis kedua akan menampilkan sistem eksekusi transaksi terdistribusi yang mendukung ACID lintas node dan eksekusi SQL terdistribusi. Rilis ketiga akan mencakup plugin untuk PostgreSQL dan alat untuk distribusi data yang fleksibel di seluruh node, termasuk penempatan segmen yang adaptif untuk mencapai kinerja optimal dan kemampuan untuk memperluas cluster dengan menambahkan node baru.

Sumber: opennet.ru

Tambah komentar