YDB

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2022. június 25-én felülvizsgált verziótól ; az ellenőrzések 2 szerkesztést igényelnek .
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.

Funkcionalitás

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.

Megvalósítási jellemzők

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] .

Építészet

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.

Történelem

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] .

Jegyzetek

  1. 1 2 3 4 A Yandex közzétette az YDB-t nyílt forráskódban . Habr . Letöltve: 2022. június 12.
  2. Hogyan írjunk kevesebb kódot az MR-hez, vagy Miért van szüksége a világnak egy másik lekérdezési nyelvre? A Yandex lekérdezési nyelv története . Habr . Letöltve: 2022. június 14.
  3. ↑ 1 2 3 4 Szerver nélküli alternatíva a hagyományos adatbázisokhoz  (orosz)  ? . osp.ru. _ Hozzáférés időpontja: 2022. június 23.
  4. ↑ 1 2 Nyikolaj Matrosov. Automatikus növelés a Yandex adatbázisban  (eng.) . Közepes (2022. február 14.). Hozzáférés időpontja: 2022. április 24.
  5. ↑ Calvin  : Gyorsan elosztott tranzakciók particionált adatbázis-rendszerekhez  ? . cs.yale.edu . Letöltve: 2022. június 19.
  6. 001. Yandex Cloud: a platform áttekintése - Jan Leshchinsky  (orosz)  ? . Youtube . Letöltve: 2022. június 12.
  7. erről:felhő, 2018. november | Adásfelvétel  (orosz)  ? . Youtube . Letöltve: 2022. június 12.