Alibaba PostgreSQL asosidagi tarqatilgan ma'lumotlar bazasi bo'lgan PolarDB uchun kodni ochdi.

Xitoyning eng yirik IT kompaniyalaridan biri bo'lgan Alibaba PostgreSQL asosidagi tarqatilgan ma'lumotlar bazasini boshqarish tizimi bo'lgan ochiq kodli PolarDB ga ega. PolarDB PostgreSQL imkoniyatlarini tarqatilgan ma'lumotlarni saqlash bilan kengaytiradi, ma'lumotlar yaxlitligini ta'minlaydi va bir nechta klaster tugunlari bo'ylab tarqatilgan global ma'lumotlar bazasida ACID tranzaksiyalarini qo'llab-quvvatlaydi. PolarDB shuningdek, bir yoki bir nechta tugunlarning ishdan chiqishi natijasida ma'lumotlarni to'ldirish uchun tarqatilgan SQL so'rovlarini qayta ishlash, xatolarga chidamlilik va ortiqcha ma'lumotlarni saqlashni qo'llab-quvvatlaydi. Agar saqlashni kengaytirish zarur bo'lsa, shunchaki klasterga yangi tugunlarni qo'shing. Kod Apache 2.0 litsenziyasi ostida ochiq kodli.

PolarDB ikkita komponentdan iborat: kengaytmalar va PostgreSQL uchun yamalar to'plami. Yamalar PostgreSQL yadrosining imkoniyatlarini kengaytiradi, kengaytmalar esa PostgreSQLdan alohida amalga oshiriladigan komponentlarni, masalan, taqsimlangan tranzaksiyalarni boshqarish mexanizmi, global xizmatlar, taqsimlangan SQL so'rovlarni qayta ishlash vositasi, qo'shimcha metama'lumotlar, klasterlarni boshqarish vositalari, klasterlarni joylashtirish va mavjud tizimlarning migratsiyasini osonlashtirishni o'z ichiga oladi.

Yamalar PostgreSQL yadrosiga turli izolyatsiya darajalari uchun ko'p versiyali parallellikni boshqarish (MVCC) mexanizmining taqsimlangan versiyasini qo'shadi. PolarDB funksiyalarining katta qismi kengaytmalarga ko'chirildi, bu PostgreSQLga bog'liqlikni kamaytiradi va PolarDB asosidagi yechimlarni yangilash va joylashtirishni soddalashtiradi (PostgreSQLning yangi versiyalariga o'tishni osonlashtiradi va PostgreSQL bilan to'liq moslikni saqlaydi). Klasterlarni boshqarish PostgreSQL-XC va PostgreSQL-XL dan shunga o'xshash yordamchi dasturga asoslangan pgxc_ctl asboblar to'plamidan foydalanadi.

Klaster uchta asosiy komponentdan iborat: ma'lumotlar bazasi tugunlari (DN), klaster menejeri (CM) va tranzaksiyalarni boshqarish xizmati (TM). Proksi yuklamasini muvozanatlashtiruvchi vositadan ham foydalanish mumkin. Har bir komponent alohida jarayon bo'lib, uni boshqasida ishga tushirish mumkin. serverMa'lumotlar bazasi tugunlari mijozlardan SQL so'rovlarini qayta ishlaydi va bir vaqtning o'zida boshqa ma'lumotlar bazasi tugunlarini o'z ichiga olgan taqsimlangan so'rovlarni bajarish uchun koordinator sifatida ishlaydi. Klaster menejeri har bir ma'lumotlar bazasi tugunining holatini kuzatib boradi, klaster konfiguratsiyasini saqlaydi va tugunlarni boshqarish, zaxiralash, yuklarni muvozanatlash, yangilash, ishga tushirish va to'xtatish uchun vositalarni taqdim etadi. Tranzaksiyalarni boshqarish xizmati klaster bo'ylab umumiy yaxlitlikni saqlash uchun javobgardir.

 Alibaba PostgreSQL asosidagi tarqatilgan ma'lumotlar bazasi bo'lgan PolarDB uchun kodni ochdi.

PolarDB umumiy xotiradan foydalanmasdan, ma'lumotlar saqlash uchun turli tugunlar bo'ylab taqsimlangan umumiy hisob-kitob arxitekturasiga asoslangan. Har bir tugun o'ziga berilgan ma'lumotlar qismi uchun javobgardir va ma'lumotlarga bog'liq so'rovlarni bajaradi. Har bir jadval birlamchi kalit xeshlash yordamida taqsimlanadi. Agar so'rov turli tugunlarda joylashgan ma'lumotlarni qamrab olsa, atomlik, izchillik, izolyatsiya va chidamlilikni (ACID) ta'minlash uchun taqsimlangan tranzaksiyani bajarish mexanizmi va tranzaksiya koordinatori ishlatiladi.

Xatolarga chidamlilikni ta'minlash uchun har bir parcha kamida uchta tugunga replikatsiya qilinadi. Resurslarni tejash uchun to'liq ma'lumotlar faqat ikkita replikada saqlanadi va ulardan biri qayta yozish jurnalini (WAL) saqlash bilan cheklanadi. To'liq replikalarga ega ikkita tugundan biri yetakchi sifatida saylanadi va so'rovlarni qayta ishlashda ishtirok etadi. Ikkinchi tugun ko'rib chiqilayotgan ma'lumotlar parchasi uchun zaxira nusxasi bo'lib xizmat qiladi, uchinchisi esa yetakchini tanlashda ishtirok etadi va to'liq replikalarga ega ikkita tugun ishlamay qolgan taqdirda ma'lumotlarni tiklash uchun ishlatilishi mumkin. Klaster tugunlari orasidagi ma'lumotlar replikatsiyasi Paxos algoritmi yordamida tashkil etiladi, bu esa potentsial ishonchsiz tugunlarga ega tarmoqda izchil konsensusni ta'minlaydi.

Ta'kidlanishicha, PolarDB DBMS ning to'liq funksiyalari uchta versiyada chiqarilishi rejalashtirilgan: Birinchi versiya replikatsiya, yuqori mavjudlik va klasterni boshqarish vositalarini o'z ichiga oladi. Ikkinchi versiyada tugunlar bo'ylab ACID va tarqatilgan SQL bajarilishini qo'llab-quvvatlaydigan taqsimlangan tranzaksiyalarni bajarish tizimi joriy etiladi. Uchinchi versiyada PostgreSQL plagini va tugunlar bo'ylab moslashuvchan ma'lumotlarni taqsimlash uchun vositalar, jumladan, optimal ishlash uchun moslashuvchan shard joylashtirish va yangi tugunlarni qo'shish orqali klasterni kengaytirish imkoniyati taqdim etiladi.

Manba: opennet.ru

a Izoh qo'shish