Veb xidmətləri üçün yaddaşdaxili arxitektura: texnologiya əsasları və prinsipləri

Yaddaşda, proqramın RAM-da saxlandığı zaman məlumatların saxlanması üçün anlayışlar toplusudur və disk ehtiyat nüsxə üçün istifadə olunur. Klassik yanaşmalarda verilənlər diskdə, yaddaş isə keşdə saxlanılır. Məsələn, verilənlərin emalı üçün arxa planı olan veb tətbiqi onu yaddaşa tələb edir: onu qəbul edir, çevirir və çoxlu məlumatlar şəbəkə üzərindən ötürülür. In-Memory-də hesablamalar verilənlərə - onların işləndiyi və şəbəkənin daha az yükləndiyi yaddaşa göndərilir.

Arxitekturası sayəsində In-Memory verilənlərə çıxışı bir neçə dəfə, bəzən hətta daha sürətli sürətləndirir. Məsələn, bank analitikləri analitik ərizədə ötən il ərzində verilən kreditlər üzrə hesabatı dinamikasında günbəgün görmək istəyirlər. Bu proses klassik DBMS-də bir neçə dəqiqə çəkəcək, lakin In-Memory ilə o, demək olar ki, dərhal görünəcək. Bunun səbəbi, yanaşma daha çox məlumatı önbelleğe almağa imkan verir və RAM-da “əldə” saxlanılır. Proqramın mövcudluğu şəbəkə və disk sürəti ilə məhdudlaşan sabit diskdən məlumat tələb etməyə ehtiyac yoxdur.

In-Memory ilə başqa hansı imkanlar mövcuddur və bu hansı yanaşmadır? Vladimir Pligin - GridGain-də mühəndis. Bu nəzərdən keçirmə materialı In-Memory ilə işləməmiş və sınamaq istəyən və ya proqram təminatının inkişafı və memarlıq dizaynında müasir tendensiyalarla maraqlanan veb tətbiqi backend tərtibatçıları üçün faydalı olacaqdır.

Qeyd. Məqalə Vladimirin #GetIT Conf-da məruzəsinin stenoqramına əsaslanır. Özünütəcridin tətbiqindən əvvəl biz Moskva və Sankt-Peterburqda tərtibatçılar üçün mütəmadi olaraq görüşlər və konfranslar keçirirdik: biz tendensiyaları, cari inkişaf problemlərini, problemləri və onların həlli yollarını müzakirə etdik. İndi konfrans keçirmək mümkün deyil, amma keçmişdən faydalı materialları bölüşmək vaxtıdır.

In-Memory-dan kim və necə istifadə edir

In-Memory ən çox istifadəçinin sürətli qarşılıqlı əlaqəsi və ya böyük həcmdə məlumatların işlənməsi tələb olunduğu yerlərdə istifadə olunur.

  • Banklar məsələn, müştərilər proqramlardan istifadə edərkən gecikmələri azaltmaq və ya kredit verməzdən əvvəl müştərini təhlil etmək üçün In-Memory istifadə edin.
  • Fintech məlumatların emalı və təhlilini autsorsing edən banklar üçün xidmət və proqramların işini yaxşılaşdırmaq üçün In-Memory-dan istifadə edir. 
  • Sığorta şirkətləri: riskləri hesablamaq, məsələn, bir neçə il ərzində müştəri məlumatlarını təhlil etmək.
  • Logistika şirkətləri. Onlar çoxlu məlumatları emal edir, məsələn, minlərlə parametrlə yük və sərnişin daşınması üçün optimal marşrutları hesablayır və daşınmaların vəziyyətini izləyir.
  • Pərakəndə. Yaddaşdaxili həllər müştərilərə daha sürətli xidmət göstərməyə və böyük həcmli məlumatların emalına kömək edir: göndərmələr, fakturalar, əməliyyatlar, anbarlarda minlərlə malın olması və analitik hesabatların hazırlanması.
  • В IOT In-Memory ənənəvi verilənlər bazalarını əvəz edir.
  • Əczaçılıq şirkətlər, məsələn, dərman kompozisiyalarının birləşmələrini çeşidləmək üçün In-Memory-dan istifadə edirlər. 

Müştərilərimizin Yaddaşdaxili həllərdən necə istifadə etməsi və onları özünüz necə həyata keçirə biləcəyiniz barədə sizə bir neçə nümunə danışacağam.

Əsas yaddaş kimi Yaddaşdaxili

Müştərilərimizdən biri ABŞ-dan tibbi elmi avadanlıqların böyük təchizatçısıdır. Onlar əsas məlumat yaddaşı kimi Yaddaşdaxili həlldən istifadə edirlər. Bütün məlumatlar diskdə saxlanılır və aktiv istifadə olunan məlumatların alt çoxluğu RAM-da saxlanılır. Saxlama giriş üsulları standartdır - GDBC (Ümumi Database Connector) və SQL sorğu dili.

Veb xidmətləri üçün yaddaşdaxili arxitektura: texnologiya əsasları və prinsipləri

Birlikdə buna Yaddaşdaxili Verilənlər Bazası (IMDB) və ya Yaddaş Mərkəzli Saxlama deyilir. Bu sinif həllərin bir çox adı var, bunlar tək deyil. 

IMDB Xüsusiyyətləri:

  • In-Memory-da saxlanılan və SQL vasitəsilə əldə edilən məlumatlar digər yanaşmalarda olduğu kimidir. Onlar sinxronlaşdırılıb, yalnız təqdimat yolu, onlara müraciət üsulu fərqlidir. Transactionality data arasında işləyir.

  • IMDB əlaqəli verilənlər bazalarından daha sürətlidir, çünki məlumatı RAM-dan götürmək diskdən daha sürətlidir. 
  • Daxili optimallaşdırma alqoritmlərində daha az təlimat var.
  • IMDB-lər tətbiqlərdə məlumatları, hadisələri və əməliyyatları idarə etmək üçün uyğundur.

IMDB-lər ACID-i qismən dəstəkləyir: Atomluq, Ardıcıllıq və İzolyasiya. Ancaq "davamlılığı" dəstəkləmirlər - enerji söndürüldükdə bütün məlumatlar itirilir. Problemi həll etmək üçün snapshotlardan istifadə edə bilərsiniz - verilənlər bazasının sabit diskdəki ehtiyat nüsxəsinə bənzər verilənlər bazasının "şəkli" və ya yenidən başladıqdan sonra məlumatları bərpa etmək üçün əməliyyatları (loqları) qeyd edin.

Səhvlərə dözümlü proqramlar yaratmaq

Xətaya dözümlü veb tətbiqinin klassik arxitekturasını təsəvvür edək. Bu belə işləyir: bütün sorğular serverlər arasında veb balanslaşdırıcı tərəfindən paylanır. Bu sistem sabitdir, çünki serverlər bir-birini təkrarlayır və hadisələr zamanı ehtiyat nüsxəsini çıxarır.

Veb xidmətləri üçün yaddaşdaxili arxitektura: texnologiya əsasları və prinsipləri

Balanslaşdırıcı bütün sorğuları bir seansdan ciddi şəkildə bir serverə yönləndirir. Bu, çubuq seansı mexanizmidir: hər bir sessiya yerli olaraq saxlandığı və işləndiyi bir server ilə əlaqələndirilir. 

Serverlərdən biri sıradan çıxdıqda nə baş verir?

Veb xidmətləri üçün yaddaşdaxili arxitektura: texnologiya əsasları və prinsipləri

Arxitektura təkrarlandığı üçün xidmətə təsir edilməyəcək. Lakin biz ölü server seanslarının bir hissəsini itirəcəyik. Və eyni zamanda, bu seanslara bağlı olan istifadəçilər. Məsələn, müştəri sifariş verir və birdən onu ofisdən çölə atır. Yenidən daxil olduqda və hər şeyin yenidən edilməsi lazım olduğunu görəndə bədbəxt olacaq.

Çox sayda istifadəçini dəstəkləmək və onların rahat işləməsi üçün sürəti azaltmamaq üçün veb tətbiqi tələb olunur. Ancaq rədd edilərsə, hər bir sonrakı sorğu ilə sessiya mağazası ilə əlaqə saxlamaq üçün lazım olan vaxt artacaq. Bu, digər istifadəçilər üçün orta gecikməni artırır. Amma onlar alışdıqlarından artıq gözləmək istəmirlər.

Bu problem ABŞ-dan olan böyük PASS provayderimiz olan digər müştərimiz kimi həll edilə bilər. Veb seanslarını qruplaşdırmaq üçün Yaddaşdaxili proqramdan istifadə edir. Bunun üçün o, onları lokal deyil, mərkəzləşdirilmiş şəkildə - Yaddaşdaxili klasterdə saxlayır. Bu halda seanslar çox daha sürətli olur, çünki onlar artıq RAM-dadır.

Veb xidmətləri üçün yaddaşdaxili arxitektura: texnologiya əsasları və prinsipləri

Server qəzaya uğradıqda, balanslaşdırıcı klassik arxitekturada olduğu kimi qəzaya uğramış serverdən sorğuları digər serverlərə göndərir. Ancaq əhəmiyyətli bir fərq var: sessiyalar Yaddaşdaxili klasterdə saxlanılır və serverlərin düşmüş serverin seanslarına çıxışı var.

Bu arxitektura bütün sistemin nasazlığa dözümlülüyünü artırır. Üstəlik, stick sessiya mexanizmindən tamamilə imtina etmək mümkündür.

Hibrid Transaksiya Analitik Emalı (HTAP)

Tipik olaraq, əməliyyat və analitik sistemlər ayrı saxlanılır. Onlar ayrıldıqda, əsas baza yük altında olur. Analitik emal üçün verilənlər analitik emalın tranzaksiya proseslərinə müdaxilə etməməsi üçün replikaya kopyalanır. Ancaq kopyalama gecikmə ilə baş verir - gecikmə olmadan təkrarlamaq mümkün deyil. Bunu sinxron şəkildə etsək, bu, həm də əsas bazanı yavaşlatacaq və heç bir uduş əldə etməyəcəyik.

HTAP-da hər şey fərqli şəkildə işləyir - eyni məlumat anbarı tətbiqlərdən tranzaksiya yükü üçün və tamamlanması uzun vaxt apara bilən analitik sorğular üçün istifadə olunur. Məlumatlar RAM-da olduqda, analitik sorğular daha sürətli yerinə yetirilir və verilənlər bazası olan server daha az yüklənir (orta hesabla).

Veb xidmətləri üçün yaddaşdaxili arxitektura: texnologiya əsasları və prinsipləri

Hibrid yanaşma əməliyyatın işlənməsi və analitika arasındakı divarı yıxır. Eyni yaddaşda analitik aparırıqsa, o zaman RAM-dan alınan məlumatlar üzrə analitik sorğular işə salınır. Onlar daha dəqiq, daha izahlı və adekvatdır.

Yaddaşdaxili həllərin inteqrasiyası

(nisbətən) sadə bir yol - hər şeyi sıfırdan inkişaf etdirin. Biz məlumatları diskdə saxlayırıq və isti məlumatları yaddaşda saxlayırıq. Bu, serverin yenidən başlaması və ya kəsilməsi zamanı sağ qalmağa kömək edir.

Məlumatların diskdə saxlanması zamanı burada iki əsas ssenari işləyir. Birincisi, biz qəzalardan və ya klasterin və ya hissələrin müntəzəm yenidən yüklənməsindən sağ çıxmaq istəyirik - biz onu sadə verilənlər bazası kimi istifadə etmək istəyirik. İkinci ssenaridə, çox məlumat olduqda, onların bir hissəsi yaddaşdadır.

Hər şeyi sıfırdan qurmaq mümkün deyilsə, In-Memory-u artıq bir yaddaşa inteqrasiya etmək mümkündür. mövcud memarlıq. Ancaq bütün In-Memory həlləri bunun üçün uyğun deyil. Üç məcburi şərt var. Yaddaşdaxili həll aşağıdakıları dəstəkləməlidir:

  • onun altında yerləşəcək verilənlər bazasına qoşulmağın standart yolu (məsələn, MySQL);
  • yaddaşla qarşılıqlı əlaqənin məntiqini yenidən yazmamaq və dəyişməmək üçün standart sorğu dili;
  • tranzaksiya - qarşılıqlı əlaqənin semantikasını qorumaq.

Hər üç şərt yerinə yetirilərsə, inteqrasiya mümkündür. Biz proqram və verilənlər bazası arasında Yaddaşdaxili Məlumat Şəbəkəsini yerləşdiririk. İndi yazma sorğuları əsas verilənlər bazasına, oxumaq sorğuları isə verilənlər keşdə deyilsə, əsas verilənlər bazasına həvalə olunacaq.

Veb xidmətləri üçün yaddaşdaxili arxitektura: texnologiya əsasları və prinsipləri

Əgər məlumatlara sürətli çıxış və onun emalı sizin üçün vacibdirsə, məsələn, biznes analitikası üçün, siz In-Memory tətbiqi haqqında düşünə bilərsiniz. Və həyata keçirmək üçün yeni bir arxitektura dizayn edərkən hər iki üsuldan istifadə edə bilərsiniz.

Mənbə: www.habr.com

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