Alibaba telah membuka kod untuk PolarDB, DBMS yang diedarkan berdasarkan PostgreSQL.

Alibaba, salah satu syarikat IT China terbesar, telah membuka kod sumber DBMS PolarDB yang diedarkan, berdasarkan PostgreSQL. PolarDB memperluaskan keupayaan PostgreSQL dengan alatan untuk penyimpanan data teragih dengan integriti dan sokongan untuk transaksi ACID dalam konteks keseluruhan pangkalan data global yang diedarkan merentasi nod kluster yang berbeza. PolarDB juga menyokong pemprosesan pertanyaan SQL yang diedarkan, toleransi kesalahan dan storan data berlebihan untuk memulihkan maklumat selepas satu atau lebih nod gagal. Jika anda perlu mengembangkan storan anda, anda hanya boleh menambah nod baharu pada kluster. Kod ini dibuka di bawah lesen Apache 2.0.

PolarDB terdiri daripada dua komponen - sambungan dan satu set patch untuk PostgreSQL. Tampalan mengembangkan keupayaan teras PostgreSQL dan sambungan termasuk komponen yang dilaksanakan secara berasingan daripada PostgreSQL, seperti mekanisme pengurusan transaksi yang diedarkan, perkhidmatan global, pemproses pertanyaan SQL yang diedarkan, metadata tambahan, alat untuk mengurus kluster, menggunakan kluster dan memudahkan penghijrahan sistem sedia ada kepadanya.

Tampalan menambah kepada teras PostgreSQL versi teragih mekanisme untuk mengawal akses selari kepada data menggunakan multiversi (MVCC, kawalan konkurensi berbilang versi) untuk tahap pengasingan yang berbeza. Kebanyakan fungsi PolarDB disertakan dalam sambungan, yang mengurangkan pergantungan pada PostgreSQL dan memudahkan pengemaskinian dan pelaksanaan penyelesaian berdasarkan PolarDB (ia memudahkan peralihan kepada versi baharu PostgreSQL dan mengekalkan keserasian penuh dengan PostgreSQL). Untuk mengurus kluster, kit alat pgxc_ctl digunakan, berdasarkan utiliti serupa daripada PostgreSQL-XC dan PostgreSQL-XL.

Terdapat tiga komponen asas dalam kluster: nod pangkalan data (DN), pengurus kluster (CM) dan perkhidmatan pengurusan transaksi (TM). Selain itu, pengimbang beban proksi boleh digunakan. Setiap komponen adalah proses yang berasingan dan boleh dijalankan pada pelayan yang berbeza. Nod pangkalan data melayani pertanyaan SQL daripada pelanggan dan pada masa yang sama bertindak sebagai penyelaras pelaksanaan pertanyaan teragih dengan penyertaan nod pangkalan data lain. Pengurus kluster memantau keadaan setiap nod pangkalan data, menyimpan konfigurasi kluster dan menyediakan alatan untuk mengurus, membuat sandaran, mengimbangi beban, mengemas kini, memulakan dan menghentikan nod. Perkhidmatan pengurusan transaksi bertanggungjawab untuk mengekalkan integriti keseluruhan di seluruh kluster.

Alibaba telah membuka kod untuk PolarDB, DBMS yang diedarkan berdasarkan PostgreSQL.

PolarDB adalah berdasarkan seni bina pengkomputeran Shared-nothing distributed, mengikut mana data diedarkan apabila disimpan pada nod yang berbeza, tanpa menggunakan storan biasa untuk semua nod, dan setiap nod bertanggungjawab untuk bahagian data yang dikaitkan dengannya dan melaksanakan pertanyaan berkaitan kepada data. Setiap jadual dipecahkan kepada bahagian (sharding) menggunakan pencincangan berdasarkan kunci utama. Jika permintaan itu merangkumi data yang terletak pada nod yang berbeza, mekanisme pelaksanaan transaksi yang diedarkan dan penyelaras transaksi diaktifkan untuk memastikan atomicity, konsistensi, pengasingan dan kebolehpercayaan (ACID).

Untuk memastikan toleransi kesalahan, setiap segmen direplikasi kepada sekurang-kurangnya tiga nod. Untuk menyimpan sumber, data lengkap hanya merangkumi dua replika dan satu adalah terhad untuk menyimpan log tulis balik (WAL). Salah satu daripada dua nod dengan replika penuh dipilih sebagai ketua dan mengambil bahagian dalam memproses permintaan. Nod kedua bertindak sebagai ganti untuk segmen data berkenaan, dan yang ketiga mengambil bahagian dalam pemilihan nod terkemuka dan boleh digunakan untuk memulihkan maklumat sekiranya berlaku kegagalan dua nod dengan replika penuh. Replikasi data antara nod kluster disusun menggunakan algoritma Paxos, yang memastikan definisi konsensus yang konsisten dalam rangkaian dengan nod yang mungkin tidak boleh dipercayai.

Adalah diperhatikan bahawa fungsi penuh DBMS PolarDB dirancang untuk didedahkan dalam tiga keluaran: Dalam versi pertama, alat untuk replikasi, ketersediaan tinggi dan pengurusan kluster akan diterbitkan. Keluaran kedua akan menampilkan sistem pelaksanaan transaksi teragih yang menyokong ACID nod silang dan pelaksanaan SQL teragih. Keluaran ketiga akan menyertakan pemalam untuk PostgreSQL dan alatan untuk pengedaran data yang fleksibel merentas nod, termasuk penempatan adaptif segmen untuk mencapai prestasi optimum dan keupayaan untuk mengembangkan kluster dengan menambah nod baharu.

Sumber: opennet.ru

Tambah komen