Yandex on avanud SQL-i toetava hajutatud DBMS-i YDB koodi

Yandex on avaldanud hajutatud DBMS-i YDB lähtekoodi, mis toetab SQL-i dialekti ja ACID-tehinguid. DBMS loodi nullist ja algselt töötati välja tõrketaluvuse, tõrgetest automaatse taastumise ja mastaapsuse tagamiseks. Märgitakse, et Yandex on käivitanud töötavad YDB klastrid, sealhulgas üle 10 tuhande sõlme, mis salvestavad sadu petabaite andmeid ja teenindavad miljoneid hajutatud tehinguid sekundis. YDB-d kasutatakse sellistes Yandexi projektides nagu Market, Cloud, Smart Home, Alice, Metrica ja Auto.ru. Kood on kirjutatud C/C++ keeles ja seda levitatakse Apache 2.0 litsentsi all. Tutvumiseks ja kiireks käivitamiseks saate kasutada valmis Dockeri konteinerit.

Projekti omadused:

  • Relatsioonilise andmemudeli kasutamine tabelitega. Päringute tegemiseks ja andmeskeemi määratlemiseks kasutatakse YQL-i keelt (YDB Query Language), mis on SQL-i dialekt, mis on kohandatud tööks suurte hajutatud andmebaasidega. Salvestusskeemi loomisel toetatakse puulaadset tabelite rühmitamist, mis meenutab failisüsteemi katalooge. JSON-vormingus andmetega töötamiseks on saadaval API.
    Yandex on avanud SQL-i toetava hajutatud DBMS-i YDB koodi
  • Andmejuurdepääsu tugi skannimispäringute abil, mis on loodud andmebaasi analüütiliste ad-hoc päringute tegemiseks, täidetakse kirjutuskaitstud režiimis ja tagastavad grpc-voo.
  • DBMS-iga suhtlemine ja päringute saatmine toimub käsurea liidese, sisseehitatud veebiliidese või YDB SDK abil, mis pakub teeke C++, C# (.NET), Go, Java, Node.js, PHP ja Python jaoks.
  • Võimalus luua tõrketaluvusega konfiguratsioone, mis jätkavad töötamist, kui üksikud kettad, sõlmed, riiulid ja isegi andmekeskused ebaõnnestuvad. YDB toetab juurutamist ja sünkroonset replikatsiooni kolmes kättesaadavustsoonis, säilitades klastri funktsionaalsuse ühe tsooni rikke korral.
  • Taastage tõrgetest automaatselt minimaalse latentsusega rakenduste jaoks ja säilitage automaatselt määratud andmete liiasus.
  • Indekside automaatne loomine primaarvõtme alusel ja sekundaarsete indeksite määratlemise võimalus suvalistele veergudele juurdepääsu tõhustamiseks.
  • Horisontaalne skaleeritavus. Salvestatud andmete koormuse ja suuruse kasvades saab klastrit laiendada, ühendades lihtsalt uued sõlmed. Arvutus- ja salvestustasandid on eraldatud, võimaldades teil oma arvutusvõimsust ja salvestusmahtu eraldi laiendada. DBMS ise jälgib andmete ja koormuse ühtlast jaotust, võttes arvesse olemasolevaid riistvararessursse. Võimalik on juurutada geograafiliselt hajutatud konfiguratsioone, mis hõlmavad mitut andmekeskust erinevates maailma paikades.
  • Toetab tugevat järjepidevuse mudelit ja ACID-tehinguid, kui töödeldakse päringuid, mis hõlmavad mitut sõlme ja tabelit. Toimivuse parandamiseks saate järjepidevuse kontrolli valikuliselt keelata.
  • Automaatne andmete replikatsioon, automaatne jaotus (partitsioneerimine, killustamine) suuruse või koormuse suurenemisel ning automaatne koormuse ja andmete tasakaalustamine sõlmede vahel.
  • Andmete salvestamine otse plokkseadmetesse, kasutades algset PDiski komponenti ja VDiskikihti. DSProxy töötab VDiski peal, mis analüüsib ketaste saadavust ja jõudlusnäitajaid, et need probleemide tuvastamisel kõrvaldada.
  • Paindlik arhitektuur, mis võimaldab luua YDB peale erinevaid teenuseid, sealhulgas virtuaalseid plokkseadmeid ja püsivaid järjekordi. Sobivus erinevat tüüpi töökoormustele, OLTP ja OLAP (analüütilised päringud).
  • Mitme rentniku ja serverita konfiguratsioonide tugi. Kliendi autentimise võimalus. Kasutajad saavad luua oma virtuaalseid klastreid ja andmebaase ühises jagatud infrastruktuuris, võttes arvesse ressursikulu päringute arvu ja andmemahu tasemel või rentides/reserveerides teatud arvutusressursse ja salvestusruumi.
  • Võimalus konfigureerida kirjete eluiga, et vananenud andmed automaatselt eemaldada.

Allikas: opennet.ru

Lisa kommentaar