Yandex julkaisi DBMS:nsä lähdekoodin «YDB»

Äskettäin ilmoitettiin, että Yandex julkaisi tietokannan hallintajärjestelmänsä "YDB":n lähdekoodin , joka tukee SQL-murretta ja ACID-transaktioita.

Tietokannan hallintajärjestelmä rakennettiin alusta alkaen ja sitä kehitettiin alun perin tavoitteena varmistaa vikasietoisuus , automaattinen toipuminen virheistä ja skaalautuvuus. On syytä huomata, että Yandex toi markkinoille toimivia YDB-klustereita, jotka sisältävät yli 10 000 solmua, tallentavat satoja petatavuja dataa ja käsittelevät miljoonia hajautettuja tapahtumia sekunnissa.

YDB:n tärkeimmät uutuudet

Yksi YDB:n keskeisistä ominaisuuksista on sen relaatiotietomallin käyttö taulukoiden kanssa. YQL:ää ( YDB Query Language) käytetään datakaavan kyselyyn ja määrittelyyn; se on SQL:n murre, joka on mukautettu työskentelemään suurten, hajautettujen tietokantojen kanssa . Tallennuskaavaa luotaessa tuetaan puumaista taulukoiden ryhmittelyä, joka on samanlainen kuin tiedostojärjestelmän hakemistot. JSON-muodossa olevan datan käsittelyyn on API.

Huomionarvoista on myös sen kyky luoda vikasietoisia kokoonpanoja , jotka jatkavat toimintaansa levyjen, solmujen, räkkien ja jopa yksittäisten datakeskusten vikaantuessa. YDB tukee synkronista käyttöönottoa ja replikointia kolmella saatavuusvyöhykkeellä ja ylläpitää klusterin toimintakuntoa vyöhykkeen vikaantumisen sattuessa.

Yhteensopiva skannauskyselyiden kautta tapahtuvan datan käytön kanssa, suunniteltu suorittamaan ad-hoc-analyyttisiä kyselyitä tietokannassa, suoritettava vain luku -tilassa ja palauttamaan grpc-työnkulun.

Lisäksi se erottuu edukseen sillä, että se tallentaa tietoja suoraan lohkolaitteille käyttämällä natiivia PDisk-komponenttia ja VDisk-kerrosta. VDiskin lisäksi toimii DSProxy, joka analysoi levyn saatavuutta ja suorituskykyä ja sulkee pois mahdolliset ongelmat.

Muita merkittäviä ominaisuuksia ovat:

  • Joustava arkkitehtuuri, jonka avulla voit rakentaa erilaisia ​​palveluita YDB:n päälle aina virtuaalilohkolaitteisiin ja pysyviin jonoihin asti. Soveltuvuus erilaisiin työkuormiin: OLTP ja OLAP (analyyttiset kyselyt).
  • Tuki useille käyttäjille (monivuokraajalle) ja palvelimettomille kokoonpanoille.
  • Kyky todentaa asiakkaat. Käyttäjät voivat luoda omia virtuaalisia klustereita ja tietokantoja yhteiselle jaetulle infrastruktuurille ottaen huomioon resurssien kulutuksen pyyntöjen lukumäärän ja datakoon suhteen tai vuokraamalla/varaamalla tiettyjä laskentaresursseja ja tallennustilaa.
  • Mahdollisuus säätää tietueiden käyttöikää vanhentuneiden tietojen automaattista poistamista varten.
  • Vuorovaikutus DBMS:n kanssa ja pyyntöjen lähettäminen tapahtuu käyttämällä komentorivikäyttöliittymää, integroitua verkkokäyttöliittymää tai YDB SDK:ta, joka tarjoaa kirjastot C++:lle, C#:lle (.NET), Golle, Javalle, Node.js:lle, PHP:lle ja Pythonille.
  • Toivu vioista automaattisesti minimaalisella viiveellä sovelluksille ja ylläpidä automaattisesti määritettyä redundanssia tallennettaessa tietoja.
  • Automaattinen indeksien luominen ensisijaiseen avaimeen ja mahdollisuus määritellä toissijaisia ​​indeksejä mielivaltaisen sarakkeen käytön tehokkuuden parantamiseksi.
  • Vaakasuuntainen skaalautuvuus. Tallennetun tiedon kuormituksen ja koon kasvaessa klusteria voidaan laajentaa yksinkertaisesti yhdistämällä uusia solmuja. Laskenta- ja tallennustasot ovat erillisiä, joten voit skaalata laskentaa ja tallennusta erikseen. DBMS itse valvoo tiedon tasaista jakautumista ja kuormitusta ottaen huomioon käytettävissä olevat laitteistoresurssit. On mahdollista toteuttaa maantieteellisesti hajautettuja konfiguraatioita, jotka kattavat useita datakeskuksia eri puolilla maailmaa.
  • Tuki vahvalle johdonmukaisuusmallille ja ACID-tapahtumille käsiteltäessä kyselyitä, jotka kattavat useita solmuja ja taulukoita. Suorituskyvyn parantamiseksi voit poistaa johdonmukaisuuden tarkistuksen valikoivasti käytöstä.
  • Automaattinen tietojen replikointi, automaattinen osiointi (osiointi, sirpalointi), kun koko tai kuormitus kasvaa, sekä automaattinen kuormituksen ja tiedon tasapainotus solmujen välillä.

Lopuksi on syytä huomata, että YDB:tä käytetään Yandex-projekteissa, koodi on kirjoitettu C/C++:lla ja jaettu Apache 2.0 -lisenssillä. Löydät lähdekoodin sekä lisätietoja siitä seuraavasta linkistä.


Lisää ensisijaiseksi lähteeksi Googlessa