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 .
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.
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] .
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.
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] .
Systémy pro správu databází (DBMS) | |
---|---|
Klient-server | |
Motory | |
Souborový server |
Yandex | ||||||||
---|---|---|---|---|---|---|---|---|
Lidé |
| |||||||
Vyhledávací služby |
| |||||||
Foodtech |
| |||||||
Osobní služby |
| |||||||
Agregátory |
| |||||||
Webmasteři a společnosti |
| |||||||
Fintech |
| |||||||
Programy |
| |||||||
Technika |
| |||||||
Zařízení |
| |||||||
Chytrý dům |
| |||||||
Motorová doprava | ||||||||
Kurýrní roboti | ||||||||
Vzdělání | ||||||||
Uzavřené projekty | ||||||||
služby Yandex 360 | ||||||||
jiný | ||||||||
|