PayPal JunoDB DBMS kodunu açdı

PayPal, açar-dəyər formatında məlumatları manipulyasiya edən səhvlərə dözümlü DBMS JunoDB-nin mənbə kodunu açdı. Sistem əvvəlcə yüksək təhlükəsizlik, üfüqi miqyaslılıq, nasazlığa dözümlülük və proqnozlaşdırıla bilən gecikmələri nəzərə alaraq yüz minlərlə eyni vaxtda əlaqəni idarə etmək qabiliyyəti ilə dizayn edilmişdir. PayPal-da, demək olar ki, bütün xidmətlər, istifadəçi girişlərindən tutmuş maliyyə əməliyyatlarının işlənməsinə qədər JunoDB-yə bağlıdır. Layihə kodu Go-da (Java müştəri kitabxanası) yazılmışdır və Apache 2.0 lisenziyası altında paylanmışdır. Gələcək inkişaf cəmiyyətdən düzəlişlər, təkmilləşdirmələr və dəyişiklikləri qəbul edəcək.

JunoDB-nin arxitekturası müştəri proqramlarından gələn sorğuları qəbul edən və sorğu yerinə yetirildikdə eyni vaxtda bir qrup saxlama serverlərinə daxil olan proxy serverlər arasında paylayan yük balanslaşdırıcısının istifadəsinə əsaslanır. Hər bir proksi server bir anda bütün saxlama serverləri ilə əlaqə qurur və paylanmış saxlama sistemi və s. konfiqurasiyasında saxlanılan bölmə indeksi əsasında sorğuları saxlama serverləri qrupuna yönləndirir.

PayPal JunoDB DBMS kodunu açdı

Məlumat bölmələrə bölünür və hashing istifadə edərək saxlama qovşaqları ilə əlaqələndirilir ki, bu da klasterdəki qovşaqların böyüməsi və ya azalması ilə məlumatların hərəkətini azaldır. Arızaya dözümlülüyünü təmin etmək üçün hər bir məlumat parçası bir neçə saxlama qovşağında təkrarlanır ki, bu da ayrı-ayrı serverlər uğursuz olduqda məlumatı saxlamağa imkan verir. Müxtəlif məlumat mərkəzlərində qovşaq qruplarının yerləşdiyi coğrafi olaraq paylanmış anbarların yaradılması dəstəklənir.

PayPal JunoDB DBMS kodunu açdı

Məlumat saxlama qovşaqlarında onlar RAM-da və ya RocksDB kitabxanasına əsaslanan yerli yaddaşda yerləşirlər. Daimi saxlandıqda, məlumatlar şifrələnmiş formada saxlanılır (şifrələmə açarı müştəri tərəfindən müəyyən edilə bilər və ya proxy səviyyəsində təyin edilə bilər).

PayPal JunoDB DBMS kodunu açdı

Proqramlardan verilənlər bazasına daxil olmaq üçün Java, Go və C++ dillərində tətbiqlər üçün API təmin edən müştəri kitabxanası verilir. Müştəri hissəsi mümkün qədər sadələşdirilir və mümkün olduqda mürəkkəb məntiq və parametrlər DBMS tərəfinə köçürülür. Müştəri ilə balanslaşdırıcı və ya proxy arasında qarşılıqlı əlaqə şifrələnmiş rabitə kanalı vasitəsilə həyata keçirilir. Sorğuları idarə etmək və göndərmək üçün siz müştəri API-nin bütün imkanlarını təkrarlayan komanda xətti interfeysindən istifadə edə bilərsiniz.

Sistem n1-highmem-32 mühitlərindən (32 Intel Xeon 2.30GHz CPU, 214G RAM və 450G SSD əsaslı yaddaş) yaradılmış üç saxlama qovşağından və bir proksidən ibarət klaster kimi proqnozlaşdırıla bilən aşağı gecikmələrlə sorğuları emal etmək üçün nəzərdə tutulmuşdur. , 2.5% hallarda 95 ms-dən çox olmayan sabit gecikmələri və 16% -də 99 min eyni vaxtda TLS bağlantısını və saniyədə 200 min sorğu axınını (15 eyni vaxtda əlaqə və 3000 min sorğu axını ilə) emal edərkən sabit gecikmələri təmin edə bildi. saniyədə gecikmələr 80% hallarda 6 ms-dən və 95% -də 15 ms-dən çox olmamışdır. PayPal-da JunoDB əsaslı xidmətlər gündə təxminən 99 milyard sorğuya xidmət edir.

PayPal JunoDB DBMS kodunu açdı


Mənbə: opennet.ru

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