A Yandex kiadta az "YDB" DBMS-ének forráskódját

Nemrégiben bejelentették, hogy a Yandex kiadta az "YDB" nevű adatbázis-kezelő rendszerének forráskódját , amely támogatja az SQL dialektust és az ACID tranzakciókat.

Az adatbázis-kezelő rendszert (DBMS) a nulláról építették fel, és kezdeti fejlesztése során a hibatűrés , a hibák utáni automatikus helyreállítás és a skálázhatóság biztosítására törekedtek. Érdemes megjegyezni, hogy a Yandex működőképes YDB-klasztereket indított, amelyek több mint 10 000 csomópontot tartalmaztak, több száz petabájt adatot tároltak, és másodpercenként több millió elosztott tranzakciót kezeltek.

Az YDB fő újdonságai

Az YDB egyik legfontosabb jellemzője a relációs adatmodell használata táblázatokkal. Az YQL ( YDB Query Language) nyelvet használják az adatséma lekérdezésére és definiálására; ez az SQL egy dialektusa, amelyet nagy, elosztott adatbázisokkal való munkához adaptáltak . Tárolási séma létrehozásakor a táblázatok faszerű csoportosítása támogatott, hasonlóan a fájlrendszer könyvtáraihoz. Egy API áll rendelkezésre a JSON formátumú adatokkal való munkához.

Figyelemre méltó továbbá a hibatűrő konfigurációk létrehozásának képessége , amelyek továbbra is működnek, ha lemezek, csomópontok, rackek vagy akár az egyes adatközpontok meghibásodnak. Az YDB támogatja a szinkron telepítést és replikációt három rendelkezésre állási zónában, miközben megőrzi a klaszter állapotát zónahiba esetén.

Kompatibilitás az adathozzáféréssel szkennelési lekérdezéseken keresztül, amelynek célja az adatbázis ad-hoc analitikai lekérdezéseinek végrehajtása, csak olvasható módban végrehajtva és egy grpc folyamatot visszaadva.

Továbbá kiemelkedik azzal is, hogy a natív PDisk komponens és a VDisk réteg segítségével közvetlenül blokkeszközökön tárolja az adatokat . A VDisk mellett a DSProxy is fut, amely elemzi a lemezek elérhetőségét és teljesítményét, hogy problémák esetén kizárja azokat.

Egyéb figyelemre méltó jellemzők a következők:

  • Rugalmas architektúra, amely lehetővé teszi különféle szolgáltatások építését az YDB tetejére, egészen a virtuális blokkeszközökig és az állandó várólistákig. Alkalmasság különböző típusú munkaterhelésekhez: OLTP és OLAP (analitikai lekérdezések).
  • Többfelhasználós (több bérlős) és kiszolgáló nélküli konfigurációk támogatása.
  • Lehetőség az ügyfelek hitelesítésére. A felhasználók létrehozhatják saját virtuális klasztereiket és adatbázisaikat egy közös megosztott infrastruktúrán, figyelembe véve az erőforrás-felhasználást a kérések számában és az adatméretben, vagy bérelhetnek/lefoglalhatnak bizonyos számítási erőforrásokat és tárhelyet.
  • Lehetőség a rekordok hasznos élettartamának beállítására az elavult adatok automatikus törléséhez.
  • A DBMS-sel való interakció és a kérések benyújtása a parancssori felületen, az integrált webes felületen vagy az YDB SDK segítségével történik, amely könyvtárakat biztosít a C++, C# (.NET), Go, Java, Node.js, PHP és Python számára.
  • Automatikus helyreállítás a hibákból minimális késleltetéssel az alkalmazások számára, és automatikusan fenntartja a megadott redundanciát az adatok tárolása során.
  • Indexek automatikus létrehozása az elsődleges kulcson és másodlagos indexek meghatározásának lehetősége az tetszőleges oszlopelérés hatékonyságának javítása érdekében.
  • Vízszintes skálázhatóság. A tárolt adatok terhelésének és méretének növekedésével a fürt egyszerűen bővíthető új csomópontok csatlakoztatásával. A számítási és tárolási szintek különállóak, lehetővé téve a számítási és tárolási rétegek külön méretezését. A DBMS maga figyeli az adatok és a terhelés egyenletes eloszlását, figyelembe véve a rendelkezésre álló hardver erőforrásokat. Lehetőség van földrajzilag elosztott konfigurációk megvalósítására, amelyek több adatközpontot fednek le a világ különböző részein.
  • Erős konzisztencia-modell és ACID-tranzakciók támogatása több csomópontra és táblára kiterjedő lekérdezések feldolgozásakor. A teljesítmény javítása érdekében szelektíven letilthatja a konzisztencia-ellenőrzést.
  • Automatikus adatreplikáció, automatikus particionálás (particionálás, felosztás) a méret vagy a terhelés növekedése esetén, valamint a csomópontok közötti automatikus terhelés- és adatkiegyenlítés.

Végül érdemes megjegyezni, hogy az YDB-t Yandex projektekben használják, a kód C/C++ nyelven íródott, és az Apache 2.0 licenc alatt kerül terjesztésre. A forráskódot, valamint további részleteket a következő linken találhatja.


Hozzáadás előnyben részesített forrásként a Google-ben