Kohët e fundit u njoftua se Yandex publikoi kodin burimor për DBMS-në e saj, "YDB" , i cili zbaton mbështetje për dialektin SQL dhe transaksionet ACID.
DBMS u ndërtua nga themelet dhe fillimisht u zhvillua me qëllim sigurimin e tolerancës ndaj gabimeve , rikuperimit automatik nga dështimet dhe shkallëzueshmërisë. Vlen të përmendet se Yandex lançoi grupe operative YDB, duke përfshirë më shumë se 10 nyje, duke ruajtur qindra petabajt të dhënash dhe duke trajtuar miliona transaksione të shpërndara në sekondë.
Risitë kryesore të YDB
Një nga karakteristikat kryesore të YDB është përdorimi i një modeli të dhënash relacionale me tabela. YQL ( YDB Query Language) përdoret për të pyetur dhe përcaktuar skemën e të dhënave; është një dialekt i SQL i përshtatur për të punuar me baza të dhënash të mëdha dhe të shpërndara . Kur krijohet një skemë ruajtjeje, mbështetet një grupim tabelash në formë peme, i ngjashëm me drejtoritë në një sistem skedarësh. Ofrohet një API për të punuar me të dhëna në formatin JSON.
Gjithashtu, vlen të përmendet aftësia e tij për të krijuar konfigurime tolerante ndaj gabimeve që vazhdojnë të funksionojnë kur disqet, nyjet, raftet dhe madje edhe qendrat individuale të të dhënave dështojnë. YDB mbështet vendosjen dhe replikimin sinkron në tre zona të disponueshmërisë, duke ruajtur shëndetin e klasterit në rast të një dështimi të zonës.
Pajtueshmëria me aksesin në të dhëna nëpërmjet pyetjeve të skanimit, e projektuar për të kryer pyetje analitike ad-hoc në bazën e të dhënave, e ekzekutuar në modalitetin vetëm për lexim dhe duke kthyer një rrjedhë grpc.
Për më tepër, ai dallohet edhe për ruajtjen e të dhënave direkt në pajisjet bllok duke përdorur komponentin nativ PDisk dhe shtresën VDisk. Përveç VDisk, ekzekutohet edhe DSProxy, i cili analizon disponueshmërinë dhe performancën e diskut për t'i përjashtuar ato nëse zbulohen probleme.
Karakteristika të tjera të dukshme përfshijnë:
- Një arkitekturë fleksibël që ju lejon të ndërtoni shërbime të ndryshme në krye të YDB, deri te pajisjet e bllokut virtual dhe radhët e vazhdueshme. Përshtatshmëria për lloje të ndryshme të ngarkesës së punës: OLTP dhe OLAP (pyetje analitike).
- Mbështetje për konfigurime me shumë përdorues (me shumë qiramarrës) dhe pa server.
- Aftësia për të vërtetuar klientët. Përdoruesit mund të krijojnë grupimet 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 për sa i përket 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.
- Mundësia e rregullimit të jetëgjatësisë së të dhënave për fshirjen automatike të të dhënave të vjetruara.
- Ndërveprimi me DBMS dhe dërgimi i kërkesave bëhet 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.
- Rikuperoni automatikisht nga dështimet me vonesë minimale në aplikacione dhe ruani automatikisht tepricën e specifikuar kur ruani të dhënat.
- Krijimi automatik i indekseve në çelësin primar dhe aftësia për të përcaktuar indekset dytësore për të përmirësuar efikasitetin e aksesit arbitrar të kolonës.
- 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ë shkallëzoni llogaritjen dhe ruajtjen veç e veç. Vetë DBMS monitoron shpërndarjen e barabartë të të dhënave dhe ngarkesës, duke marrë parasysh burimet e disponueshme të harduerit. Është e mundur të zbatohen konfigurime të shpërndara gjeografikisht që mbulojnë qendra të shumta të të dhënave në pjesë të ndryshme të botës.
- Mbështetje për një model konsistence të fortë dhe transaksione ACID kur përpunohen pyetje që përfshijnë nyje dhe tabela të shumta. 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 ndërmjet nyjeve.
Së fundmi, vlen të përmendet se YDB përdoret në projektet Yandex, kodi është shkruar në C/C++ dhe shpërndahet sipas licencës Apache 2.0. Mund ta gjeni kodin burimor, si dhe më shumë detaje rreth tij, në lidhjen e mëposhtme.