YDB | |
---|---|
Típusú | DBMS |
Fejlesztő | Yandex |
Engedély | Apache 2.0 |
Weboldal | az YDB projekt hivatalos weboldala |
Az YDB egy nyílt forráskódú , elosztott, hibatűrő relációs adatbázis-kezelő rendszer (DBMS), amelyet a Yandex fejlesztett ki.
Az YDB egy olyan technológia, amely lehetővé teszi nagy szolgáltatások létrehozását , amelyek ellenállnak a nagy működési terhelésnek (akár több millió kérés per másodpercig). Az alapértelmezett lekérdezési nyelv az YQL [1] (YDB Query Language), az SQL erősen tipizált dialektusa [2] .
Ez az egyik olyan DBMS, amely ACID tranzakciós garanciákat nyújt [3] .
A nyílt forráskódú szoftverként is elérhető adatbázisrendszerek közül a legközelebbi analógok a YugabyteDB és a CockroachDB.
Az YDB magában foglalja a fizikai gazdagépek vagy virtuális gépek fürtjeihez való öntelepítést Kubernetes-eszközök használatával, vagy felügyelt szolgáltatásként a Yandex Cloudban. Felügyelt megvalósításhoz a kiszolgáló nélküli számítási mód vagy a Dedikált mód van kiválasztva.
Az YDB nem támogatja az UUID-t önálló adattípusként [4] .
Nincs beépített funkció a mező értékének automatikus növelésére, amikor adatokat adunk egy táblázathoz [4] .
Az YDB "megosztott semmi" architektúrájú fürtökön fut, és szabványos hardvert (áru hardvert) használ. A rendszer logikai komponensekre - tabletekre - épül fel. A táblagép egy protokollt valósít meg a konszenzusos probléma megoldására megbízhatatlan számítógépek hálózatában. Ez a protokoll működésében hasonló a Paxos és Raft protokollokhoz .
A felhasználói tábláknak kötelező elsődleges kulcsuk van, a táblákat az elsődleges kulcs tartományok osztják szét. Az adatszilánkot táblagép vezérli, egy szilánk mérete akár gigabájt egység is lehet. Az ilyen táblákat DataShardnak hívják. A DataShard táblagép automatikusan több táblagépre tud osztani, ha az adattárolási küszöböt vagy a szilánkok betöltésének küszöbértékét túllépik. Így a rendszer átláthatóan skálázódik a növekvő felhasználói terhelés mellett.
A DataShardon kívül számos különböző típusú tábla létezik: SchemeShard táblagépek a felhasználói táblák metaadatainak tárolására, Hive a táblagépek kiegyensúlyozására és futtatására, Koordinátor és Közvetítő az elosztott tranzakciók ütemezésére, és még sok más.
A tablettaadatok az Elosztott tárolási rétegben tárolódnak, amely egy kulcs-érték tároló, amely speciális protokollal támogatja a tabletta protokollt. A Distributed Storage adatreplikációt biztosít, a táblaadatok BLOB -ként tárolódnak [3] .
Az YDB elosztott tranzakciókat valósít meg egy vagy több tábla adatai között. Az elosztott tranzakciós mechanizmus a Calvin algoritmuson alapul [5] . A Calvinnal ellentétben azonban az YDB támogatja az interaktív és nem determinisztikus tranzakciókat. Ehhez optimista zárakat használnak .
Az YDB kód fejlesztése során a szereplő modellt használjuk . A szereplők egyszálú állapotú gépek, amelyek üzeneteket cserélnek egymással, és a fürt különböző szerverein tartózkodnak. A hálózaton keresztüli üzenetváltáshoz a projekt részeként kifejlesztett interconnect könyvtárat használják. Különféle szolgáltatásokat fejlesztettek ki az YDB-n felül. Például virtuális blokkeszközök és állandó várólisták.
A felhasználói interakció az YDB-vel a gRPC [3] protokollon keresztül történik . Az YDB esetében számos ügyfél- SDK létezik, amelyek a csomópont-felderítési (felfedezési), az ügyfélkiegyensúlyozási stb. mechanizmusokat valósítják meg.
2010-ben a Yandex elkezdte saját NoSQL DBMS KiWi fejlesztését [1] . 2011-ben kezdték használni. A KiWi azonban „ végső konzisztenciát ” biztosított, és a NoSQL-modell egyéb hátrányai is voltak [3] .
2012-ben megkezdődött a KiKiMR projekt belső fejlesztése, és csak a Yandex igényeire. A cégen kívül a projektet YDB-nek hívták [1] . 2016-ban a DBMS-t elkezdték használni a Yandex szolgáltatásokban.
2018- ban elindult a Yandex Cloud felhőplatform , amelyben az adattárolás YDB-n alapult [6] . Ezzel egyidejűleg a cég bejelentette [7] , hogy a jövőben menedzselt szolgáltatásként elérhetővé teszi az YDB-t a Yandex Cloudban. Később az ilyen hozzáférést valóban elkezdték más felügyelt szolgáltatásokkal együtt biztosítani - a PostgreSQL, a MongoDB és mások számára. Ennek a felhőverziónak a neve Yandex Database (később Managed service for YDB).
2022 áprilisában az YDB DBMS ingyenes szoftverként jelent meg a GitHubon az Apache 2.0 licenc alatt [1] .
Adatbázis-kezelő rendszerek (DBMS) | |
---|---|
Kliens-szerver | |
Motorok | |
Fájlszerver |
Yandex | ||||||||
---|---|---|---|---|---|---|---|---|
Emberek |
| |||||||
Keresési szolgáltatások |
| |||||||
Foodtech | ||||||||
Személyes szolgáltatások | ||||||||
Aggregátorok |
| |||||||
Webmesterek és cégek |
| |||||||
Fintech |
| |||||||
Programok |
| |||||||
Technológia |
| |||||||
Eszközök |
| |||||||
Okos Ház |
| |||||||
Gépjármű szállítás | ||||||||
Futárrobotok | ||||||||
Oktatás | ||||||||
Lezárt projektek |
| |||||||
Yandex 360 szolgáltatások |
| |||||||
Egyéb | ||||||||
|