Yandex otvoril kód pre distribuovaný DBMS YDB, ktorý podporuje SQL

Yandex zverejnil zdrojový kód distribuovaného DBMS YDB, ktorý implementuje podporu pre SQL dialekt a ACID transakcie. DBMS bol vytvorený od nuly a bol pôvodne vyvinutý s ohľadom na zabezpečenie odolnosti voči chybám, automatickú obnovu po zlyhaniach a škálovateľnosť. Je potrebné poznamenať, že Yandex spustil fungujúce klastre YDB vrátane viac ako 10 2.0 uzlov, ktoré ukladajú stovky petabajtov údajov a obsluhujú milióny distribuovaných transakcií za sekundu. YDB sa používa v projektoch Yandex ako Market, Cloud, Smart Home, Alice, Metrica a Auto.ru. Kód je napísaný v C/C++ a distribuovaný pod licenciou Apache XNUMX. Na zoznámenie a rýchle spustenie môžete použiť hotový kontajner Docker.

Vlastnosti projektu:

  • Použitie relačného dátového modelu s tabuľkami. Pre dotazy a definovanie dátovej schémy sa používa jazyk YQL (YDB Query Language), čo je dialekt SQL prispôsobený na prácu s veľkými distribuovanými databázami. Pri vytváraní schémy úložiska je podporované stromové zoskupenie tabuliek, ktoré pripomína adresáre v súborovom systéme. Na prácu s údajmi vo formáte JSON je k dispozícii rozhranie API.
    Yandex otvoril kód pre distribuovaný DBMS YDB, ktorý podporuje SQL
  • Podpora prístupu k údajom pomocou skenovacích dotazov navrhnutých na vykonávanie analytických ad-hoc dotazov v databáze, vykonávaných v režime len na čítanie a vracajúcich grpc stream.
  • Interakcia s DBMS a odosielanie požiadaviek sa vykonáva pomocou rozhrania príkazového riadka, vstavaného webového rozhrania alebo YDB SDK, ktoré poskytuje knižnice pre C++, C# (.NET), Go, Java, Node.js, PHP a Python.
  • Schopnosť vytvárať konfigurácie odolné voči chybám, ktoré budú naďalej fungovať, keď zlyhajú jednotlivé disky, uzly, stojany a dokonca aj dátové centrá. YDB podporuje nasadenie a synchrónnu replikáciu v troch zónach dostupnosti, pričom zachováva funkčnosť klastra v prípade zlyhania jednej zo zón.
  • Automaticky sa zotavujte po zlyhaniach s minimálnou latenciou aplikácií a automaticky udržiavajte špecifikovanú redundanciu údajov.
  • Automatické vytváranie indexov na základe primárneho kľúča a schopnosť definovať sekundárne indexy na zlepšenie efektívnosti prístupu k ľubovoľným stĺpcom.
  • Horizontálna škálovateľnosť. S rastúcou záťažou a veľkosťou uložených dát je možné klaster rozširovať jednoduchým pripojením nových uzlov. Výpočtové a úložné vrstvy sú oddelené, čo vám umožňuje samostatne rozširovať výpočtový výkon a veľkosť úložiska. Samotný DBMS monitoruje rovnomerné rozloženie dát a záťaže s prihliadnutím na dostupné hardvérové ​​zdroje. Je možné nasadiť geograficky distribuované konfigurácie pokrývajúce niekoľko dátových centier v rôznych častiach sveta.
  • Podporuje model silnej konzistencie a transakcie ACID pri spracovaní dotazov, ktoré zahŕňajú viacero uzlov a tabuliek. Ak chcete zlepšiť výkon, môžete selektívne vypnúť kontrolu konzistencie.
  • Automatická replikácia údajov, automatické rozdelenie na oddiely (rozdelenie, sharding) pri zvýšení veľkosti alebo zaťaženia a automatické zaťaženie a vyvažovanie údajov medzi uzlami.
  • Ukladanie dát priamo na blokové zariadenia pomocou natívneho komponentu PDisk a vrstvy VDisk. DSProxy beží nad VDisk, ktorý analyzuje dostupnosť a výkonové charakteristiky diskov, aby ich v prípade zistenia problémov eliminoval.
  • Flexibilná architektúra, ktorá vám umožňuje vytvárať rôzne služby nad YDB, vrátane virtuálnych blokových zariadení a trvalých frontov. Vhodnosť pre rôzne typy pracovných zaťažení, OLTP a OLAP (analytické dotazy).
  • Podpora konfigurácií s viacerými nájomcami a bez serverov. Možnosť autentifikácie klienta. Používatelia môžu vytvárať svoje virtuálne klastre a databázy v spoločnej zdieľanej infraštruktúre s prihliadnutím na spotrebu zdrojov na úrovni počtu požiadaviek a veľkosti dát alebo prenájmom/rezerváciou určitých výpočtových zdrojov a úložného priestoru.
  • Schopnosť nakonfigurovať životnosť záznamov na automatické odstránenie zastaraných údajov.

Zdroj: opennet.ru

Pridať komentár