„Yandex“ atidarė paskirstytos DBVS YDB, palaikančios SQL, kodą

„Yandex“ paskelbė paskirstytos DBVS YDB šaltinio kodą, kuris įgyvendina SQL dialekto ir ACID operacijų palaikymą. DBVS buvo sukurta nuo nulio ir iš pradžių buvo sukurta siekiant užtikrinti atsparumą gedimams, automatinį atsigavimą po gedimų ir mastelio keitimą. Pažymima, kad „Yandex“ paleido veikiančius YDB grupes, įskaitant daugiau nei 10 tūkstančių mazgų, kuriose saugomi šimtai petabaitų duomenų ir aptarnaujami milijonai paskirstytų operacijų per sekundę. YDB naudojamas tokiuose „Yandex“ projektuose kaip „Market“, „Cloud“, „Smart Home“, „Alice“, „Metrica“ ir „Auto.ru“. Kodas parašytas C/C++ ir platinamas pagal Apache 2.0 licenciją. Norėdami susipažinti ir greitai paleisti, galite naudoti paruoštą „Docker“ konteinerį.

Projekto ypatybės:

  • Reliacinio duomenų modelio naudojimas su lentelėmis. Užklausoms atlikti ir duomenų schemai apibrėžti naudojama YQL kalba (YDB Query Language), kuri yra SQL dialektas, pritaikytas darbui su didelėmis paskirstytomis duomenų bazėmis. Kuriant saugojimo schemą palaikomas į medį panašus lentelių grupavimas, primenantis failų sistemos katalogus. Suteikiama API darbui su duomenimis JSON formatu.
    „Yandex“ atidarė paskirstytos DBVS YDB, palaikančios SQL, kodą
  • Prieigos prie duomenų palaikymas naudojant nuskaitymo užklausas, skirtas atlikti analitines ad hoc užklausas duomenų bazėje, vykdomas tik skaitymo režimu ir grąžinant grpc srautą.
  • Sąveika su DBVS ir užklausų siuntimas vykdomas naudojant komandų eilutės sąsają, integruotą žiniatinklio sąsają arba YDB SDK, kuris teikia bibliotekas C++, C# (.NET), Go, Java, Node.js, PHP ir Python.
  • Galimybė sukurti gedimams atsparias konfigūracijas, kurios ir toliau veiktų, kai sugenda atskiri diskai, mazgai, stelažai ir net duomenų centrai. YDB palaiko diegimą ir sinchroninį replikavimą trijose pasiekiamumo zonose, išlaikant klasterio funkcionalumą sugedus vienai iš zonų.
  • Automatiškai atsikurkite po gedimų su minimalia programų delsa ir automatiškai palaikykite nurodytą duomenų perteklinį skaičių.
  • Automatinis indeksų kūrimas pagal pirminį raktą ir galimybė apibrėžti antrinius indeksus, siekiant pagerinti prieigos prie savavališkų stulpelių efektyvumą.
  • Horizontalus mastelio keitimas. Augant saugomų duomenų apkrovai ir dydžiui, klasterį galima išplėsti tiesiog prijungiant naujus mazgus. Skaičiavimo ir saugojimo pakopos yra atskirtos, todėl galite atskirai padidinti skaičiavimo galią ir saugyklos dydį. Pati DBVS stebi tolygų duomenų ir apkrovos pasiskirstymą, atsižvelgdama į turimus techninės įrangos resursus. Galima įdiegti geografiškai paskirstytas konfigūracijas, apimančias kelis duomenų centrus įvairiose pasaulio vietose.
  • Palaiko tvirto nuoseklumo modelį ir ACID operacijas, kai apdorojamos užklausos, apimančios kelis mazgus ir lenteles. Norėdami pagerinti našumą, galite pasirinktinai išjungti nuoseklumo tikrinimą.
  • Automatinis duomenų replikavimas, automatinis skaidymas (skirstymas, dalijimas), kai padidėja dydis arba apkrova, ir automatinis apkrovos bei duomenų balansavimas tarp mazgų.
  • Duomenų saugojimas tiesiai blokiniuose įrenginiuose naudojant vietinį PDisk komponentą ir VDisk sluoksnį. DSProxy veikia ant VDisk, kuris analizuoja diskų prieinamumą ir našumo charakteristikas, kad pašalintų jas, jei aptiktų problemų.
  • Lanksti architektūra, leidžianti kurti įvairias YDB paslaugas, įskaitant virtualių blokų įrenginius ir nuolatines eiles. Tinkamas įvairių tipų darbo krūviams, OLTP ir OLAP (analitinėms užklausoms).
  • Kelių nuomininkų ir be serverių konfigūracijų palaikymas. Kliento autentifikavimo galimybė. Vartotojai gali kurti savo virtualias grupes ir duomenų bazes bendroje bendroje infrastruktūroje, atsižvelgdami į išteklių suvartojimą užklausų skaičiaus ir duomenų dydžio lygiu arba išsinuomodami/rezervuodami tam tikrus skaičiavimo išteklius ir saugyklos vietą.
  • Galimybė sukonfigūruoti įrašų gyvavimo trukmę, kad būtų automatiškai pašalinti pasenę duomenys.

Šaltinis: opennet.ru

Добавить комментарий