YDB

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 25. června 2022; kontroly vyžadují 2 úpravy .
YDB
Typ DBMS
Vývojář Yandex
Licence Apache 2.0
webová stránka oficiální stránky projektu YDB

YDB je open source  distribuovaný systém správy relačních databází (DBMS) odolný proti chybám vyvinutý společností Yandex .

Funkčnost

YDB je technologie, která umožňuje vytvářet rozsáhlé služby , které vydrží velké provozní zatížení (až na úrovni milionů požadavků za sekundu). Výchozí dotazovací jazyk je YQL [1] (YDB Query Language), silně typizovaný dialekt SQL [2] .

Je to jeden z DBMS, který poskytuje záruky ACID transakcí [3] .

Nejbližšími analogy mezi databázovými systémy, dostupnými také jako open source software, jsou YugabyteDB a CockroachDB.

YDB zahrnuje vlastní nasazení do clusterů fyzických hostitelů nebo virtuálních strojů pomocí nástrojů Kubernetes nebo jako spravovanou službu v cloudu Yandex. Pro řízenou implementaci je vybrán režim bezserverového počítače nebo vyhrazený režim.

Funkce implementace

YDB nepodporuje UUID jako samostatný datový typ [4] .

Neexistuje žádná vestavěná funkce pro automatické zvýšení hodnoty pole při přidávání dat do tabulky [4] .

Architektura

YDB běží na clusterech s architekturou „sdíleného nic“ a využívá standardní hardware (komoditní hardware). Systém je postaven na základě logických komponent – ​​tabletů. Tablet implementuje protokol pro řešení problému konsensu v síti nespolehlivých počítačů. Tento protokol je svou funkčností podobný protokolům Paxos a Raft .

Uživatelské tabulky mají povinný primární klíč, tabulky jsou rozděleny podle rozsahů primárních klíčů. Datový shard je ovládán tabletem, velikost shardu může být až jednotek gigabajtů. Takové tablety se nazývají DataShard. Tablet DataShard se může automaticky rozdělit na více tabletů, když je překročen práh úložiště dat nebo práh zatížení datového úložiště. Systém se tedy transparentně škáluje s rostoucí zátěží uživatelů.

Kromě DataShard existuje mnoho různých typů tabletů: tablety SchemeShard pro ukládání metadat o uživatelských tabulkách, Hive pro vyvažování a provoz tabletů, Koordinátor a Mediátor pro plánování distribuovaných transakcí a mnoho dalších.

Data pilulek jsou uložena ve vrstvě distribuovaného úložiště, což je úložiště klíč-hodnota se specializovaným protokolem na podporu protokolu pilulek. Distributed Storage zajišťuje replikaci dat, data tabletu jsou uložena jako BLOB [3] .

YDB implementuje distribuované transakce mezi daty v jedné nebo více tabulkách. Mechanismus distribuovaných transakcí je založen na Calvinově algoritmu [5] . Na rozdíl od Calvina však YDB podporuje interaktivní a nedeterministické transakce. K tomu se používají optimistické zámky .

Při vývoji kódu YDB se používá model aktéra . Aktéři jsou stavové stroje s jedním vláknem, které si mezi sebou vyměňují zprávy a jsou umístěny na různých serverech v clusteru. Pro výměnu zpráv po síti se používá propojovací knihovna vyvinutá v rámci projektu. Nad YDB byly vyvinuty různé služby. Například virtuální bloková zařízení a trvalé fronty.

Uživatelská interakce s YDB probíhá prostřednictvím protokolu gRPC [3] . Pro YDB existuje řada klientských SDK , které implementují mechanismy pro zjišťování uzlů (objevování), vyvažování klientů atd.

Historie

V roce 2010 Yandex začal vyvíjet vlastní NoSQL DBMS KiWi [1] . Začal se používat v roce 2011. Nicméně, KiWi poskytovalo “ ultimátní konzistenci ” a mělo jiné nevýhody NoSQL modelu [3] .

V roce 2012 začal interní vývoj projektu KiKiMR, a to pouze pro potřeby Yandexu. Mimo společnost se projekt jmenoval YDB [1] . V roce 2016 se DBMS začal používat ve službách Yandex.

V roce 2018 byla spuštěna cloudová platforma Yandex Cloud , ve které bylo úložiště dat založeno na YDB [6] . Společnost zároveň oznámila [7] , že v budoucnu zpřístupní YDB v Yandex Cloud jako řízenou službu. Později se takový přístup skutečně začal poskytovat spolu s dalšími spravovanými službami – pro PostgreSQL, MongoDB a další. Tato cloudová verze se jmenovala Yandex Database (později spravovaná služba pro YDB).

V dubnu 2022 byl YDB DBMS publikován na GitHubu jako svobodný software pod licencí Apache 2.0 [1] .

Poznámky

  1. 1 2 3 4 Yandex zveřejnil YDB v open source . Habr . Staženo: 12. června 2022.
  2. Jak napsat méně kódu pro MR aneb Proč svět potřebuje další dotazovací jazyk? Historie dotazovacího jazyka Yandex . Habr . Staženo: 14. června 2022.
  3. ↑ 1 2 3 4 Bezserverová alternativa k tradičním databázím  (ruština)  ? . osp.ru. _ Datum přístupu: 23. června 2022.
  4. ↑ 1 2 Nikolaj Matrosov. Automatické zvýšení v databázi Yandex  (eng.) . Střední (14. února 2022). Datum přístupu: 24. dubna 2022.
  5. ↑ Calvin  : Rychlé distribuované transakce pro dělené databázové systémy  ? . cs.yale.edu . Staženo: 19. června 2022.
  6. 001. Yandex Cloud: přehled platformy - Jan Leshchinsky  (Rus)  ? . Youtube . Staženo: 12. června 2022.
  7. about:cloud, listopad 2018 | Záznam vysílání  (ruština)  ? . Youtube . Staženo: 12. června 2022.