Yandex otevřel kód distribuovaného DBMS YDB podporující SQL

Yandex zveřejnil zdrojové texty distribuovaného YDB DBMS, který implementuje podporu pro SQL dialekt a ACID transakce. DBMS byl vytvořen od nuly a původně vyvinut s ohledem na zajištění odolnosti proti chybám, automatické obnovy v případě selhání a škálovatelnosti. Je třeba poznamenat, že Yandex spustil fungující clustery YDB, včetně více než 10 tisíc uzlů, které ukládají stovky petabajtů dat a obsluhují miliony distribuovaných transakcí za sekundu. YDB se používá v projektech Yandex, jako je Market, Cloud, Smart Home, Alice, Metrika a Auto.ru. Kód je napsán v C/C++ a distribuován pod licencí Apache 2.0. Pro seznámení a rychlé spuštění můžete využít připravený kontejner Docker.

Vlastnosti projektu:

  • Použití relačního datového modelu s tabulkami. YQL (YDB Query Language) se používá k dotazování a definování datového schématu, což je dialekt SQL přizpůsobený pro práci s velkými distribuovanými databázemi. Při vytváření schématu úložiště je podporováno stromové seskupení tabulek, připomínající adresáře v systému souborů. Pro práci s daty ve formátu JSON je k dispozici API.
    Yandex otevřel kód distribuovaného DBMS YDB podporující SQL
  • Podpora pro přístup k datům pomocí skenovacích dotazů navržených k provádění analytických ad-hoc dotazů proti databázi, spouštěných v režimu pouze pro čtení a vracejících proud grpc.
  • Interakce s DBMS a odesílání požadavků se provádí pomocí rozhraní příkazového řádku, vestavěného webového rozhraní nebo sady YDB SDK, která poskytuje knihovny pro C ++, C # (.NET), Go, Java, Node.js, PHP a Python.
  • Schopnost vytvářet konfigurace odolné proti chybám, které nadále fungují, když jednotlivé disky, uzly, stojany a dokonce i datová centra selžou. YDB podporuje nasazení a synchronní replikaci ve třech zónách dostupnosti při zachování stavu clusteru v případě selhání jedné ze zón.
  • Automaticky se zotavujte po selhání s minimálním zpožděním pro aplikace a automaticky udržujte zadanou redundanci při ukládání dat.
  • Automatické vytváření indexů na primárním klíči a schopnost definovat sekundární indexy pro zlepšení efektivity přístupu k libovolným sloupcům.
  • Horizontální škálovatelnost. S rostoucí zátěží a velikostí uložených dat lze cluster rozšířit jednoduchým připojením nových uzlů. Výpočetní a úložné vrstvy jsou odděleny, což umožňuje samostatné škálování výpočtů a úložiště. Samotný DBMS sleduje rovnoměrné rozložení dat a zátěže s přihlédnutím k dostupným hardwarovým zdrojům. Je možné nasadit geograficky distribuované konfigurace pokrývající několik datových center v různých částech světa.
  • Podpora modelu silné konzistence a ACID transakcí při zpracování dotazů zahrnujících více uzlů a tabulek. Chcete-li zlepšit výkon, můžete selektivně zakázat řízení konzistence.
  • Automatická replikace dat, automatické dělení (rozdělení na oddíly, sharding) při zvýšení velikosti nebo zatížení a automatické načítání a vyvažování dat mezi uzly.
  • Ukládání dat přímo na bloková zařízení pomocí nativní komponenty PDisk a vrstvy VDisk. Nad VDisk běží DSProxy, který analyzuje dostupnost a výkon disků, aby je v případě zjištění problémů vyloučil.
  • Flexibilní architektura, která umožňuje vytvářet nad YDB různé služby, až po virtuální bloková zařízení a trvalé fronty (perzistentní fronty). Vhodnost aplikace pro různé typy zátěže, OLTP a OLAP (analytické dotazy).
  • Podpora konfigurací pro více uživatelů (multitenant) a bez serveru. Schopnost autentizovat klienty. Uživatelé mohou vytvářet vlastní virtuální clustery a databáze ve společné sdílené infrastruktuře s přihlédnutím ke spotřebě zdrojů na úrovni počtu požadavků a velikosti dat nebo pronájmem/rezervací určitých výpočetních zdrojů a úložného prostoru.
  • Možnost upravit životnost záznamů pro automatické mazání zastaralých dat.

Zdroj: opennet.ru

Přidat komentář