Yandex izlaida savas DBVS "YDB" pirmkodu

Nesen tika paziņots, ka Yandex ir izlaidis savas datubāzes pārvaldības sistēmas (DBMS) pirmkodu "YDB" , kas ievieš atbalstu SQL dialektam un ACID transakcijām.

DBVS tika veidota no pašiem pamatiem un sākotnēji izstrādāta ar mērķi nodrošināt kļūdu toleranci , automātisku atkopšanu pēc kļūmēm un mērogojamību. Jāatzīmē, ka Yandex palaida funkcionējošus YDB klasterus, tostarp vairāk nekā 10 000 mezglu, kas uzglabā simtiem petabaitu datu un apstrādā miljoniem izkliedētu transakciju sekundē.

Galvenie YDB jauninājumi

Viena no YDB galvenajām iezīmēm ir relāciju datu modeļa izmantošana ar tabulām. YQL ( YDB vaicājumu valoda) tiek izmantota datu shēmas vaicāšanai un definēšanai; tā ir SQL dialekts, kas pielāgots darbam ar lielām, izkliedētām datubāzēm . Veidojot krātuves shēmu, tiek atbalstīta koka veida tabulu grupēšana, līdzīgi kā direktoriji failu sistēmā. Ir nodrošināta API darbam ar datiem JSON formātā.

Ievērības cienīga ir arī tā spēja izveidot pret kļūmēm izturīgas konfigurācijas , kas turpina darboties, ja diski, mezgli, plaukti un pat atsevišķi datu centri neizdodas. YDB atbalsta sinhronu izvietošanu un replikāciju trīs pieejamības zonās, vienlaikus saglabājot klastera veselību zonas kļūmes gadījumā.

Saderība ar piekļuvi datiem, izmantojot skenēšanas vaicājumus, kas paredzēti ad-hoc analītisku vaicājumu veikšanai datubāzē, tiek izpildīti tikai lasīšanas režīmā un atgriež grpc plūsmu.

Turklāt tas izceļas arī ar datu glabāšanu tieši bloku ierīcēs, izmantojot vietējo PDisk komponentu un VDisk slāni. Papildus VDisk darbojas arī DSProxy, kas analizē disku pieejamību un veiktspēju, lai tos izslēgtu, ja tiek konstatētas problēmas.

Citas ievērojamas funkcijas ir šādas:

  • Elastīga arhitektūra, kas ļauj papildus YDB izveidot dažādus pakalpojumus, līdz pat virtuālo bloku ierīcēm un pastāvīgām rindām. Piemērotība dažāda veida darba slodzei: OLTP un OLAP (analītiskie vaicājumi).
  • Atbalsts vairāku lietotāju (vairāku nomnieku) un bez serveru konfigurācijām.
  • Iespēja autentificēt klientus. Lietotāji var izveidot paši savus virtuālos klasterus un datu bāzes kopējā koplietotā infrastruktūrā, ņemot vērā resursu patēriņu pieprasījumu skaita un datu apjoma ziņā vai īrējot/rezervējot noteiktus skaitļošanas resursus un krātuves vietu.
  • Iespēja pielāgot ierakstu lietderīgās lietošanas laiku novecojušo datu automātiskai dzēšanai.
  • Mijiedarbība ar DBVS un pieprasījumu iesniegšana tiek veikta, izmantojot komandrindas saskarni, integrēto tīmekļa saskarni vai YDB SDK, kas nodrošina C++, C# (.NET), Go, Java, Node.js, PHP un Python bibliotēkas.
  • Automātiski atkopjieties no kļūmēm ar minimālu lietojumprogrammu aizkavi un automātiski saglabājiet norādīto dublēšanu datu glabāšanas laikā.
  • Automātiska indeksu izveide uz primārās atslēgas un iespēja definēt sekundāros indeksus, lai uzlabotu patvaļīgas kolonnas piekļuves efektivitāti.
  • Horizontālā mērogojamība. Pieaugot saglabāto datu slodzei un lielumam, kopu var paplašināt, vienkārši pievienojot jaunus mezglus. Aprēķinu un krātuves līmeņi ir atsevišķi, ļaujot atsevišķi mērogot aprēķinu un uzglabāšanu. DBVS pati uzrauga vienmērīgu datu un slodzes sadalījumu, ņemot vērā pieejamos aparatūras resursus. Ir iespējams ieviest ģeogrāfiski sadalītas konfigurācijas, kas aptver vairākus datu centrus dažādās pasaules daļās.
  • Atbalsts spēcīgam konsekvences modelim un ACID transakcijām, apstrādājot vaicājumus, kas aptver vairākus mezglus un tabulas. Lai uzlabotu veiktspēju, varat selektīvi atspējot konsekvences pārbaudi.
  • Automātiska datu replikācija, automātiska sadalīšana (sadalīšana, sadalīšana), kad palielinās izmērs vai slodze, un automātiska slodzes un datu balansēšana starp mezgliem.

Visbeidzot, ir vērts atzīmēt, ka Yandex projektos tiek izmantots YDB, kods ir rakstīts C/C++ valodā un tiek izplatīts saskaņā ar Apache 2.0 licenci. Jūs varat atrast pirmkodu, kā arī sīkāku informāciju par to, izmantojot šo saiti.


Pievienot kā vēlamo avotu pakalpojumā Google