A Yandex megnyitotta az SQL-t támogató YDB elosztott DBMS kódját

A Yandex közzétette az elosztott YDB DBMS forrásszövegét, amely támogatja az SQL dialektust és az ACID tranzakciókat. A DBMS-t a nulláról hozták létre, és kezdetben a hibatűrés, a meghibásodások esetén történő automatikus helyreállítás és a méretezhetőség biztosítása volt. Megjegyzendő, hogy a Yandex működő YDB-fürtöket indított el, köztük több mint 10 ezer csomópontot, amelyek több száz petabájtnyi adatot tárolnak és több millió elosztott tranzakciót szolgálnak ki másodpercenként. Az YDB-t olyan Yandex projektekben használják, mint a Market, Cloud, Smart Home, Alice, Metrika és Auto.ru. A kód C/C++ nyelven íródott, és az Apache 2.0 licenc alatt terjeszthető. Az ismerkedéshez és a gyors indításhoz használhat egy kész Docker tárolót.

A projekt jellemzői:

  • A relációs adatmodell használata táblázatokkal. Az YQL (YDB Query Language) az adatséma lekérdezésére és meghatározására szolgál, amely az SQL dialektusa, amely nagy elosztott adatbázisokkal való együttműködésre lett adaptálva. Tárolási séma létrehozásakor a táblák faszerű csoportosítása támogatott, amelyek egy fájlrendszer könyvtáraihoz hasonlítanak. A JSON formátumú adatokkal való munkavégzéshez API-t biztosítunk.
    A Yandex megnyitotta az SQL-t támogató YDB elosztott DBMS kódját
  • Támogatás az adatokhoz való hozzáféréshez olyan vizsgálati lekérdezések használatával, amelyek az adatbázissal kapcsolatos analitikus ad-hoc lekérdezések végrehajtására szolgálnak, és csak olvasható módban futnak, és grpc adatfolyamot adnak vissza.
  • A DBMS-sel való interakció és a kérések küldése a parancssori felületen, a beépített 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.
  • Lehetőség olyan hibatűrő konfigurációk létrehozására, amelyek továbbra is működnek, ha az egyes lemezek, csomópontok, állványok vagy akár adatközpontok meghibásodnak. Az YDB támogatja a telepítést és a szinkron replikációt három rendelkezésre állási zónában, miközben fenntartja a fürt állapotát az egyik zóna meghibásodása esetén.
  • 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 a tetszőleges oszlopokhoz való hozzáférés hatékonyságának javítása érdekében.
  • Vízszintes skálázhatóság. Ahogy a terhelés és a tárolt adatok mérete nő, a fürt egyszerűen bővíthető új csomópontok csatlakoztatásával. A számítási és tárolási szintek el vannak választva, lehetővé téve a számítási és tárolási szint külön-külön. 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 telepítésére, amelyek több adatközpontot lefednek 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-szabályozá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.
  • Adatok tárolása közvetlenül a blokkeszközökön a natív PDisk komponens és a VDisk réteg használatával. A VDisk mellett fut a DSProxy, amely elemzi a lemezek elérhetőségét és teljesítményét, hogy kizárja azokat, ha problémákat észlel.
  • Rugalmas architektúra, amely lehetővé teszi az YDB, különféle szolgáltatások, akár virtuális blokkeszközök és állandó várólisták (persistent queue) létrehozását. Alkalmazási alkalmasság különböző típusú munkaterhelésekhez, OLTP és OLAP (analitikai lekérdezések).
  • Támogatja a többfelhasználós (multitenant) és a szerver nélküli konfigurációkat. 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ában, figyelembe véve az erőforrás-felhasználást a kérések számának és az adatméretnek a szintjén, vagy bizonyos számítási erőforrások és tárhely bérelésével / lefoglalásával.
  • Lehetőség a rekordok élettartamának beállítására az elavult adatok automatikus törléséhez.

Forrás: opennet.ru

Hozzászólás