Alibaba PostgreSQL негізіндегі таратылған ДҚБЖ PolarDB кодын ашты.

Қытайдың ең ірі IT-компанияларының бірі Alibaba PostgreSQL негізінде таратылған PolarDB ДҚБЖ бастапқы кодын ашты. PolarDB PostgreSQL мүмкіндіктерін тұтастықпен таратылған деректерді сақтауға арналған құралдармен және әртүрлі кластер түйіндері бойынша таратылған бүкіл ғаламдық дерекқор контекстінде ACID транзакцияларын қолдаумен кеңейтеді. PolarDB сонымен қатар бір немесе бірнеше түйін сәтсіз болғаннан кейін ақпаратты қалпына келтіру үшін таратылған SQL сұрауын өңдеуді, ақауларға төзімділікті және артық деректерді сақтауды қолдайды. Жадты кеңейту қажет болса, кластерге жаңа түйіндерді қосуға болады. Код Apache 2.0 лицензиясы бойынша ашық.

PolarDB екі компоненттен тұрады - кеңейтімдер және PostgreSQL үшін патчтар жиынтығы. Патчтар PostgreSQL өзегінің мүмкіндіктерін кеңейтеді, ал кеңейтімдер PostgreSQL-тен бөлек іске асырылған құрамдастарды қамтиды, мысалы, таратылған транзакцияны басқару механизмі, жаһандық қызметтер, таратылған SQL сұрау процессоры, қосымша метадеректер, кластерді басқаруға арналған құралдар, кластерді орналастыру және оңайлату оған бар жүйелердің көшуі.

Патчтар PostgreSQL өзегіне әртүрлі оқшаулау деңгейлері үшін мультиверсия (MVCC, Multiversion concurrency control) көмегімен деректерге параллельді қол жеткізуді басқару механизмінің бөлінген нұсқасын қосады. PolarDB функционалдық мүмкіндіктерінің көп бөлігі кеңейтімдермен қамтылған, бұл PostgreSQL-ге тәуелділікті азайтады және PolarDB негізіндегі шешімдерді жаңарту мен енгізуді жеңілдетеді (ол PostgreSQL-тің жаңа нұсқаларына өтуді жеңілдетеді және PostgreSQL-пен толық үйлесімділікті сақтайды). Кластерді басқару үшін PostgreSQL-XC және PostgreSQL-XL ұқсас утилитасына негізделген pgxc_ctl құралдар жинағы пайдаланылады.

Кластерде үш негізгі құрамдас бар: дерекқор түйіндері (DN), кластер менеджері (CM) және транзакцияны басқару қызметі (TM). Сонымен қатар, прокси жүктеме балансын пайдалануға болады. Әрбір құрамдас бөлек процесс және оны басқа серверде іске қосуға болады. Деректер базасының түйіндері клиенттердің SQL сұрауларына қызмет етеді және бір уақытта басқа дерекқор түйіндерінің қатысуымен таратылған сұрауларды орындау координаторлары ретінде әрекет етеді. Кластер менеджері әрбір дерекқор түйінінің күйін бақылайды, кластер конфигурациясын сақтайды және түйіндерді басқару, сақтық көшірме жасау, жүктемені теңестіру, жаңарту, іске қосу және тоқтату үшін құралдарды қамтамасыз етеді. Транзакцияны басқару қызметі бүкіл кластер бойынша жалпы тұтастықты сақтауға жауапты.

Alibaba PostgreSQL негізіндегі таратылған ДҚБЖ PolarDB кодын ашты.

PolarDB «Ортақ ештеңе жоқ» таратылған есептеу архитектурасына негізделген, оған сәйкес деректер әртүрлі түйіндерде сақталған кезде, барлық түйіндер үшін ортақ жадты пайдаланбай таратылады және әрбір түйін онымен байланысты деректер бөлігіне жауап береді және қатысты сұрауларды орындайды. деректерге. Әрбір кесте бастапқы кілт негізінде хэштеу арқылы бөліктерге бөлінеді (бөлшектеу). Егер сұрау әртүрлі түйіндерде орналасқан деректерді қамтитын болса, атомдықты, жүйелілікті, оқшаулауды және сенімділікті (ACID) қамтамасыз ету үшін бөлінген транзакцияны орындау механизмі және транзакция үйлестірушісі іске қосылады.

Ақауларға төзімділікті қамтамасыз ету үшін әрбір сегмент кемінде үш түйінге қайталанады. Ресурстарды сақтау үшін толық деректер тек екі репликаны қамтиды және біреуі кері жазу журналын (WAL) сақтаумен шектеледі. Толық көшірмелері бар екі түйіннің бірі көшбасшы болып сайланады және сұрауларды өңдеуге қатысады. Екінші түйін қарастырылып отырған деректер сегменті үшін қосалқы рөл атқарады, ал үшіншісі жетекші түйінді таңдауға қатысады және толық көшірмелері бар екі түйін сәтсіз болған жағдайда ақпаратты қалпына келтіру үшін пайдаланылуы мүмкін. Кластер түйіндері арасындағы деректерді репликациялау ықтимал сенімсіз түйіндері бар желіде консенсустың дәйекті анықтамасын қамтамасыз ететін Paxos алгоритмі арқылы ұйымдастырылады.

PolarDB ДҚБЖ толық функционалдығын үш шығарылымда ашу жоспарланатыны атап өтілді: Бірінші нұсқада репликация, жоғары қолжетімділік және кластерді басқару құралдары жарияланады. Екінші шығарылымда түйіндер арасындағы ACID және бөлінген SQL орындалуын қолдайтын таратылған транзакцияны орындау жүйесі болады. Үшінші шығарылымда PostgreSQL плагині және түйіндер бойынша деректерді икемді таратуға арналған құралдар, соның ішінде оңтайлы өнімділікке қол жеткізу үшін сегменттерді бейімдеу және жаңа түйіндерді қосу арқылы кластерді кеңейту мүмкіндігі бар.

Ақпарат көзі: opennet.ru

пікір қалдыру