Yandex ka hapur kodin për një DBMS të shpërndarë YDB që mbështet SQL

Yandex ka publikuar kodin burimor të DBMS të shpërndarë YDB, i cili zbaton mbështetje për dialektin SQL dhe transaksionet ACID. DBMS u krijua nga e para dhe fillimisht u zhvillua me synimin për të siguruar tolerancën e gabimeve, rikuperimin automatik nga dështimet dhe shkallëzueshmërinë. Vihet re se Yandex ka lançuar grupe pune YDB, duke përfshirë më shumë se 10 mijë nyje, duke ruajtur qindra petabajt të dhëna dhe duke shërbyer miliona transaksione të shpërndara në sekondë. YDB përdoret në projekte të tilla Yandex si Market, Cloud, Smart Home, Alice, Metrica dhe Auto.ru. Kodi është shkruar në C/C++ dhe shpërndahet nën licencën Apache 2.0. Për njohje dhe nisje të shpejtë, mund të përdorni një enë të gatshme Docker.

Karakteristikat e projektit:

  • Përdorimi i një modeli të të dhënave relacionale me tabela. Për pyetjet dhe përcaktimin e skemës së të dhënave, përdoret gjuha YQL (YDB Query Language), e cila është një dialekt i SQL i përshtatur për të punuar me baza të dhënash të mëdha të shpërndara. Kur krijoni një skemë ruajtjeje, mbështetet një grupim i tabelave në formë peme, që të kujton drejtoritë në një sistem skedarësh. Një API ofrohet për të punuar me të dhënat në formatin JSON.
    Yandex ka hapur kodin për një DBMS të shpërndarë YDB që mbështet SQL
  • Mbështetje për aksesin e të dhënave duke përdorur pyetje skanimi të krijuara për të kryer pyetje analitike ad-hoc në bazën e të dhënave, të ekzekutuara në modalitetin vetëm për lexim dhe duke kthyer një rrjedhë grpc.
  • Ndërveprimi me DBMS dhe dërgimi i kërkesave kryhet duke përdorur ndërfaqen e linjës së komandës, ndërfaqen e integruar të uebit ose YDB SDK, e cila ofron biblioteka për C++, C# (.NET), Go, Java, Node.js, PHP dhe Python.
  • Aftësia për të krijuar konfigurime tolerante ndaj gabimeve që vazhdojnë të funksionojnë kur disqet individuale, nyjet, raftet dhe madje edhe qendrat e të dhënave dështojnë. YDB mbështet vendosjen dhe riprodhimin sinkron në tre zona të disponueshmërisë, duke ruajtur funksionalitetin e grupit në rast të dështimit të njërës prej zonave.
  • Rikuperoni automatikisht nga dështimet me vonesë minimale për aplikacionet dhe ruani automatikisht tepricën e specifikuar të të dhënave.
  • Krijimi automatik i indekseve bazuar në çelësin primar dhe aftësinë për të përcaktuar indekset dytësore për të përmirësuar efikasitetin e aksesit në kolonat arbitrare.
  • Shkallueshmëria horizontale. Ndërsa ngarkesa dhe madhësia e të dhënave të ruajtura rritet, grupi mund të zgjerohet thjesht duke lidhur nyje të reja. Nivelet e llogaritjes dhe të ruajtjes janë të ndara, duke ju lejuar të zgjeroni fuqinë tuaj kompjuterike dhe madhësinë e ruajtjes veçmas. Vetë DBMS monitoron shpërndarjen uniforme të të dhënave dhe ngarkesës, duke marrë parasysh burimet e disponueshme të harduerit. Është e mundur të vendosen konfigurime të shpërndara gjeografikisht që mbulojnë disa qendra të dhënash në pjesë të ndryshme të botës.
  • Mbështet modelin e qëndrueshmërisë së fortë dhe transaksionet ACID kur përpunohen pyetje që përfshijnë shumë nyje dhe tabela. Për të përmirësuar performancën, mund të çaktivizoni në mënyrë selektive kontrollin e konsistencës.
  • Replikimi automatik i të dhënave, ndarje automatike (ndarje, ndarje) kur rritet madhësia ose ngarkesa dhe ngarkesa automatike dhe balancimi i të dhënave midis nyjeve.
  • Ruajtja e të dhënave direkt në pajisjet e bllokut duke përdorur komponentin vendas PDisk dhe shtresën VDisk. DSProxy funksionon në krye të VDisk, i cili analizon disponueshmërinë dhe karakteristikat e performancës së disqeve në mënyrë që t'i eliminojë ato nëse zbulohen probleme.
  • Arkitekturë fleksibël që ju lejon të krijoni shërbime të ndryshme në krye të YDB, duke përfshirë pajisjet e bllokut virtual dhe radhët e vazhdueshme. Përshtatshmëria për lloje të ndryshme ngarkesash pune, OLTP dhe OLAP (pyetje analitike).
  • Mbështetje për konfigurimet me shumë qira dhe pa server. Mundësia e vërtetimit të klientit. Përdoruesit mund të krijojnë grupet e tyre virtuale dhe bazat e të dhënave në një infrastrukturë të përbashkët të përbashkët, duke marrë parasysh konsumin e burimeve në nivelin e numrit të kërkesave dhe madhësisë së të dhënave, ose duke marrë me qira/rezervuar burime të caktuara kompjuterike dhe hapësirë ​​ruajtëse.
  • Aftësia për të konfiguruar jetëgjatësinë e të dhënave për të hequr automatikisht të dhënat e vjetruara.

Burimi: opennet.ru

Shto një koment