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.

Klaster üç əsas komponentdən ibarətdir: verilənlər bazası qovşaqları (DN), klaster meneceri (CM) və əməliyyat idarəetmə xidməti (TM). Proksi yük balanslaşdırıcısından da istifadə etmək olar. Hər bir komponent ayrı bir prosesdir və fərqli bir serverdə işlədilə bilər. serverVerilənlər bazası qovşaqları müştərilərdən gələn SQL sorğularını emal edir və eyni zamanda digər verilənlər bazası qovşaqlarını əhatə edən paylanmış sorğu icrası üçün koordinator kimi çıxış edir. Klaster meneceri hər bir verilənlər bazası qovşağının vəziyyətini izləyir, klaster konfiqurasiyasını saxlayır və qovşaqları idarə etmək, ehtiyat nüsxəsini çıxarmaq, yük balanslaşdırmaq, yeniləmək, işə salmaq və dayandırmaq üçün alətlər təmin edir. Əməliyyat idarəetmə xidməti klaster üzrə ümumi bütövlüyün qorunmasından məsuldur.

 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

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