Yandex atvēra izplatītās DBVS YDB kodu, kas atbalsta SQL

Yandex ir publicējis izplatītās YDB DBVS avota tekstus, kas ievieš atbalstu SQL dialektam un ACID transakcijām. DBVS tika izveidota no nulles un sākotnēji tika izstrādāta, lai nodrošinātu kļūdu toleranci, automātisku atkopšanu kļūmju gadījumā un mērogojamību. Tiek atzīmēts, ka Yandex uzsāka darba YDB klasterus, tostarp vairāk nekā 10 tūkstošus mezglu, kas glabā simtiem petabaitu datu un apkalpo miljoniem izplatītu darījumu sekundē. YDB tiek izmantots tādos Yandex projektos kā Market, Cloud, Smart Home, Alice, Metrika un Auto.ru. Kods ir rakstīts C/C++ valodā un tiek izplatīts saskaņā ar Apache 2.0 licenci. Iepazīšanai un ātrai palaišanai varat izmantot gatavu Docker konteineru.

Projekta funkcijas:

  • Relāciju datu modeļa izmantošana ar tabulām. YQL (YDB Query Language) izmanto, lai vaicātu un definētu datu shēmu, kas ir SQL dialekts, kas pielāgots darbam ar lielām izplatītām datu bāzēm. Veidojot krātuves shēmu, tiek atbalstīta koka veida tabulu grupēšana, kas atgādina failu sistēmas direktorijus. Ir nodrošināta API darbam ar datiem JSON formātā.
    Yandex atvēra izplatītās DBVS YDB kodu, kas atbalsta SQL
  • Atbalsts piekļuvei datiem, izmantojot skenēšanas vaicājumus, kas izstrādāti, lai veiktu analītiskus speciālus vaicājumus datu bāzē, kas tiek izpildīti tikai lasīšanas režīmā un atgriež grpc straumi.
  • Mijiedarbība ar DBVS un pieprasījumu nosūtīšana tiek veikta, izmantojot komandrindas saskarni, iebūvēto tīmekļa saskarni vai YDB SDK, kas nodrošina bibliotēkas priekš C ++, C # (.NET), Go, Java, Node.js, PHP un Python.
  • Iespēja izveidot defektu izturīgas konfigurācijas, kas turpina darboties, ja atsevišķi diski, mezgli, statīvi un pat datu centri neizdodas. YDB atbalsta izvietošanu un sinhrono replikāciju trīs pieejamības zonās, vienlaikus saglabājot klastera veselību vienas no zonām atteices gadījumā.
  • Automātiski atkopjieties no kļūmēm ar minimālu lietojumprogrammu aizkavi un automātiski saglabājiet norādīto dublēšanu, saglabājot datus.
  • Automātiska indeksu izveide uz primārās atslēgas un iespēja definēt sekundāros indeksus, lai uzlabotu piekļuves efektivitāti patvaļīgām kolonnām.
  • 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 atdalīti, ļaujot aprēķināt un krātuves mērogot atsevišķi. DBVS pati uzrauga vienmērīgu datu un slodzes sadalījumu, ņemot vērā pieejamos aparatūras resursus. Ir iespējams izvietot ģ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 kontroli.
  • 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.
  • Datu glabāšana tieši blokierīcēs, izmantojot vietējo PDisk komponentu un VDisk slāni. Papildus VDisk darbojas DSProxy, kas analizē disku pieejamību un veiktspēju, lai tos izslēgtu, ja tiek atklātas problēmas.
  • Elastīga arhitektūra, kas ļauj izveidot papildus YDB, dažādus pakalpojumus, līdz pat virtuālo bloku ierīcēm un pastāvīgām rindām (persistent queue). Lietojumprogrammu piemērotība dažāda veida darba slodzei, OLTP un OLAP (analītiskie vaicājumi).
  • Atbalsts vairāku lietotāju (daudzlietotāju) un bezserveru 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 lieluma līmenī, vai arī īrējot/rezervējot noteiktus skaitļošanas resursus un krātuves vietu.
  • Iespēja pielāgot ierakstu kalpošanas laiku automātiskai novecojušo datu dzēšanai.

Avots: opennet.ru

Pievieno komentāru