Yandex zverejnil zdrojový kód svojho DBMS «YDB»

Nedávno bolo oznámené, že spoločnosť Yandex vydala zdrojový kód pre svoju databázovú bázu „YDB“ , ktorá implementuje podporu pre dialekt SQL a transakcie ACID.

Systém riadenia databáz bol vybudovaný od základov a pôvodne vyvinutý s cieľom zabezpečiť odolnosť voči chybám , automatickú obnovu po zlyhaní a škálovateľnosť. Za zmienku stojí, že Yandex spustil funkčné klastre YDB, ktoré obsahovali viac ako 10 000 uzlov, ukladali stovky petabajtov dát a spracovávali milióny distribuovaných transakcií za sekundu.

Hlavné novinky YDB

Jednou z kľúčových vlastností YDB je použitie relačného dátového modelu s tabuľkami. YQL ( YDB Query Language) sa používa na dotazovanie a definovanie dátovej schémy; je to dialekt SQL prispôsobený na prácu s rozsiahlymi distribuovanými databázami . Pri vytváraní schémy úložiska je podporované stromové zoskupovanie tabuliek, podobné adresárom v súborovom systéme. Na prácu s údajmi vo formáte JSON je k dispozícii API.

Za zmienku stojí aj jeho schopnosť vytvárať konfigurácie odolné voči chybám , ktoré naďalej fungujú aj v prípade zlyhania diskov, uzlov, stojanov a dokonca aj jednotlivých dátových centier. YDB podporuje synchrónne nasadenie a replikáciu v troch zónach dostupnosti a zároveň zachováva stav klastra v prípade zlyhania zóny.

Kompatibilita s prístupom k údajom prostredníctvom skenovacích dotazov, určených na vykonávanie ad-hoc analytických dotazov v databáze, vykonávaných v režime iba na čítanie a vracajúcom tok grpc.

Okrem toho vyniká aj priamym ukladaním dát na blokové zariadenia pomocou natívnej komponenty PDisk a vrstvy VDisk. Okrem VDisk beží aj DSProxy, ktorý analyzuje dostupnosť a výkon diskov a vylučuje ich v prípade zistenia problémov.

Medzi ďalšie významné vlastnosti patria:

  • Flexibilná architektúra, ktorá vám umožňuje vybudovať rôzne služby na vrchole YDB, až po virtuálne blokové zariadenia a trvalé fronty. Vhodnosť pre rôzne typy pracovného zaťaženia: OLTP a OLAP (analytické dotazy).
  • Podpora konfigurácií pre viacerých používateľov (viac nájomníkov) a bez serverov.
  • Schopnosť autentifikovať klientov. Používatelia môžu vytvárať svoje vlastné virtuálne klastre a databázy na spoločnej zdieľanej infraštruktúre, berúc do úvahy spotrebu zdrojov z hľadiska 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.
  • Možnosť nastavenia doby životnosti záznamov pre automatické mazanie neaktuálnych údajov.
  • Interakcia s DBMS a odosielanie požiadaviek sa vykonáva pomocou rozhrania príkazového riadka, integrovaného webového rozhrania alebo súpravy YDB SDK, ktorá poskytuje knižnice pre C++, C# (.NET), Go, Java, Node.js, PHP a Python.
  • Automaticky sa obnovujte po zlyhaniach s minimálnym oneskorením aplikácií a automaticky udržiavajte špecifikovanú redundanciu pri ukladaní údajov.
  • Automatické vytváranie indexov na primárnom kľúči 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úcim zaťažením a veľkosťou uložených údajov je možné klaster rozšíriť jednoduchým pripojením nových uzlov. Výpočtové a úložné vrstvy sú oddelené, čo vám umožňuje škálovať výpočtové a úložné priestory oddelene. Samotný DBMS monitoruje rovnomerné rozloženie dát a záťaže s prihliadnutím na dostupné hardvérové ​​zdroje. Je možné implementovať geograficky distribuované konfigurácie, ktoré pokrývajú viacero dátových centier v rôznych častiach sveta.
  • Podpora modelu silnej konzistencie a ACID transakcií 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.

Na záver stojí za zmienku, že YDB sa používa v projektoch Yandexu, kód je napísaný v jazyku C/C++ a je distribuovaný pod licenciou Apache 2.0. Zdrojový kód, ako aj ďalšie podrobnosti o ňom, nájdete na nasledujúcom odkaze.


Pridať ako preferovaný zdroj v Google