Alibaba PostgreSQLге негизделген бөлүштүрүлгөн DBMS PolarDB үчүн кодду ачты.

Alibaba, ири кытайлык IT компаниялардын бири, PostgreSQL негизинде таратылган DBMS PolarDB баштапкы кодун ачты. PolarDB ар кандай кластердик түйүндөр боюнча бөлүштүрүлгөн бүткүл дүйнөлүк маалымат базасынын контекстинде бүтүндүк жана ACID транзакцияларын колдоо менен бөлүштүрүлгөн маалыматтарды сактоо куралдары менен PostgreSQL мүмкүнчүлүктөрүн кеңейтет. 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ге негизделген бөлүштүрүлгөн DBMS PolarDB үчүн кодду ачты.

PolarDB Shared-nothing бөлүштүрүлгөн эсептөө архитектурасына негизделген, ага ылайык маалыматтар бардык түйүндөр үчүн жалпы сактагычты колдонбостон, ар кандай түйүндөрдө сакталганда бөлүштүрүлөт жана ар бир түйүн аны менен байланышкан маалыматтардын бөлүгү үчүн жооп берет жана тиешелүү суроо-талаптарды аткарат. маалыматтарга. Ар бир таблица негизги ачкычтын негизинде хэширлөө аркылуу бөлүктөргө бөлүнөт (бөлүштүрүү). Эгерде суроо-талап ар кандай түйүндөрдө жайгашкан маалыматтарды камтыса, атомдукту, ырааттуулукту, изоляцияны жана ишенимдүүлүктү (ACID) камсыз кылуу үчүн транзакцияны аткаруунун бөлүштүрүлгөн механизми жана транзакциянын координатору иштетилет.

Мүчүлүштүккө толеранттуулукту камсыз кылуу үчүн ар бир сегмент кеминде үч түйүнгө көчүрүлөт. Ресурстарды үнөмдөө үчүн, толук маалымат эки гана көчүрмөнү камтыйт, ал эми бири кайра жазуу журналын (WAL) сактоо менен чектелет. Толук репликалары бар эки түйүндүн бири лидер болуп шайланат жана суроо-талаптарды иштетүүгө катышат. Экинчи түйүн каралып жаткан маалымат сегменти үчүн запастык милдетти аткарат, ал эми үчүнчүсү алдыңкы түйүндү тандоого катышат жана толук репликалары бар эки түйүн иштебей калган учурда маалыматты калыбына келтирүү үчүн колдонулушу мүмкүн. Кластер түйүндөрүнүн ортосундагы маалыматтардын репликациясы Paxos алгоритмин колдонуу менен уюштурулган, ал потенциалдуу ишенимсиз түйүндөр менен тармакта консенсустун ырааттуу аныкталышын камсыз кылат.

Белгиленгендей, PolarDB DBMSтин толук функционалдуулугу үч релизден ашыкча ачылышы пландаштырылууда: Биринчи версияда репликациялоо, жогорку жеткиликтүүлүк жана кластердик башкаруу куралдары басылып чыгат. Экинчи релиз кайчылаш түйүн ACIDди жана бөлүштүрүлгөн SQL аткарууну колдогон бөлүштүрүлгөн транзакцияны аткаруу тутумун камтыйт. Үчүнчү релиз PostgreSQL үчүн плагинди жана түйүндөр боюнча ийкемдүү маалыматтарды бөлүштүрүү куралдарын камтыйт, анын ичинде оптималдуу иштөөгө жетүү үчүн сегменттерди адаптациялоочу жайгаштыруу жана жаңы түйүндөрдү кошуу менен кластерди кеңейтүү мүмкүнчүлүгү.

Source: opennet.ru

Комментарий кошуу