Alibaba, PostgreSQL-ə əsaslanan paylanmış DBMS olan PolarDB üçün kodu açdı.

Çinin ən böyük İT şirkətlərindən biri olan Alibaba PostgreSQL əsasında paylanmış DBMS PolarDB-nin mənbə kodunu açıb. PolarDB müxtəlif klaster qovşaqlarında paylanmış bütün qlobal verilənlər bazası kontekstində bütövlük və ACID əməliyyatları üçün dəstək ilə paylanmış məlumatların saxlanması alətləri ilə PostgreSQL imkanlarını genişləndirir. PolarDB həmçinin bir və ya bir neçə qovşaq uğursuz olduqdan sonra məlumatı bərpa etmək üçün paylanmış SQL sorğularının işlənməsini, nasazlığa dözümlülüyünü və lazımsız məlumatların saxlanmasını dəstəkləyir. Yaddaşınızı genişləndirmək lazımdırsa, sadəcə olaraq klasterə yeni qovşaqlar əlavə edə bilərsiniz. Kod Apache 2.0 lisenziyası altında açıqdır.

PolarDB iki komponentdən ibarətdir - genişləndirmələr və PostgreSQL üçün yamaqlar dəsti. Yamalar PostgreSQL nüvəsinin imkanlarını genişləndirir və genişləndirmələrə PostgreSQL-dən ayrıca həyata keçirilən komponentlər, məsələn, paylanmış əməliyyatların idarə edilməsi mexanizmi, qlobal xidmətlər, paylanmış SQL sorğu prosessoru, əlavə metadata, klasterin idarə edilməsi üçün alətlər, klaster yerləşdirilməsi və miqrasiyanın sadələşdirilməsi daxildir. ona mövcud sistemlərin.

Yamalar PostgreSQL nüvəsinə müxtəlif izolyasiya səviyyələri üçün multiversiyadan (MVCC, Multiversion concurrency control) istifadə edərək verilənlərə paralel girişə nəzarət mexanizminin paylanmış versiyasını əlavə edir. PolarDB funksionallığının əksəriyyəti genişləndirmələrə daxildir, bu da PostgreSQL-dən asılılığı azaldır və PolarDB əsasında həllərin yenilənməsini və tətbiqini asanlaşdırır (PostgreSQL-in yeni versiyalarına keçidi asanlaşdırır və PostgreSQL ilə tam uyğunluğu saxlayır). Klasteri idarə etmək üçün PostgreSQL-XC və PostgreSQL-XL-dən oxşar yardım proqramı əsasında pgxc_ctl alət dəsti istifadə olunur.

Klasterdə üç əsas komponent var: verilənlər bazası qovşaqları (DN), klaster meneceri (CM) və əməliyyatların idarə edilməsi xidməti (TM). Bundan əlavə, bir proxy yük balanslaşdırıcısı istifadə edilə bilər. Hər bir komponent ayrı bir prosesdir və fərqli serverdə işlədilə bilər. Verilənlər bazası qovşaqları müştərilərin SQL sorğularına xidmət edir və eyni zamanda digər verilənlər bazası qovşaqlarının iştirakı ilə paylanmış sorğuların icrasının koordinatorları kimi çıxış edir. Klaster meneceri hər bir verilənlər bazası qovşağının vəziyyətinə nəzarət edir, klaster konfiqurasiyasını saxlayır və qovşaqların idarə edilməsi, ehtiyat nüsxəsinin çıxarılması, yükün balanslaşdırılması, yenilənməsi, işə salınması və dayandırılması üçün alətlər təqdim edir. Tranzaksiyaların idarə edilməsi xidməti bütün klaster üzrə ümumi bütövlüyün qorunmasına cavabdehdir.

Alibaba, PostgreSQL-ə əsaslanan paylanmış DBMS olan PolarDB üçün kodu açdı.

PolarDB Shared-heç bir paylanmış hesablama arxitekturasına əsaslanır, buna görə məlumatlar müxtəlif qovşaqlarda saxlandıqda, bütün qovşaqlar üçün ümumi yaddaşdan istifadə etmədən paylanır və hər bir qovşaq onunla əlaqəli məlumatların hissəsinə cavabdehdir və əlaqəli sorğuları yerinə yetirir. məlumatlara. Hər bir cədvəl əsas açar əsasında hashing istifadə edərək hissələrə bölünür (parçalanır). Sorğu müxtəlif qovşaqlarda yerləşən məlumatları əhatə edərsə, atomikliyi, ardıcıllığı, izolyasiyanı və etibarlılığı (ACID) təmin etmək üçün paylanmış əməliyyatın icra mexanizmi və əməliyyat koordinatoru işə salınır.

Arızaya dözümlülüyünü təmin etmək üçün hər bir seqment ən azı üç qovşaqda təkrarlanır. Resurslara qənaət etmək üçün tam verilənlərə yalnız iki replika daxildir və biri geri yazma jurnalını (WAL) saxlamaqla məhdudlaşır. Tam replikaları olan iki qovşaqdan biri lider seçilir və sorğuların işlənməsində iştirak edir. İkinci qovşaq sözügedən məlumat seqmenti üçün ehtiyat rolunu oynayır, üçüncüsü isə aparıcı qovşağın seçilməsində iştirak edir və tam replikaları olan iki qovşağın uğursuzluğu halında məlumatı bərpa etmək üçün istifadə edilə bilər. Klaster qovşaqları arasında məlumatların təkrarlanması, potensial etibarsız qovşaqları olan şəbəkədə konsensusun ardıcıl tərifini təmin edən Paxos alqoritmindən istifadə etməklə təşkil edilir.

Qeyd olunur ki, PolarDB DBMS-nin tam funksionallığının üç buraxılışda aşkarlanması planlaşdırılır: Birinci versiyada replikasiya, yüksək əlçatanlıq və klasterin idarə edilməsi üçün alətlər dərc olunacaq. İkinci buraxılışda cross-node ACID və paylanmış SQL icrasını dəstəkləyən paylanmış əməliyyatların icrası sistemi təqdim olunacaq. Üçüncü buraxılışda PostgreSQL üçün plagin və qovşaqlar arasında çevik məlumat paylanması üçün alətlər, o cümlədən optimal performansa nail olmaq üçün seqmentlərin adaptiv yerləşdirilməsi və yeni qovşaqlar əlavə etməklə klasteri genişləndirmək imkanı daxil olacaq.

Mənbə: opennet.ru

Добавить комментарий