Yandex on avannut koodin hajautettua DBMS YDB:tä varten, joka tukee SQL:ää

Yandex on julkaissut hajautetun DBMS YDB:n lähdekoodin, joka toteuttaa tuen SQL-dialektille ja ACID-tapahtumille. DBMS luotiin tyhjästä, ja se kehitettiin alun perin varmistamaan vikasietoisuus, automaattinen palautuminen vioista ja skaalautuvuus. On huomattava, että Yandex on käynnistänyt toimivat YDB-klusterit, mukaan lukien yli 10 tuhatta solmua, jotka tallentavat satoja petatavuja tietoa ja palvelevat miljoonia hajautettuja tapahtumia sekunnissa. YDB:tä käytetään sellaisissa Yandex-projekteissa kuin Market, Cloud, Smart Home, Alice, Metrica ja Auto.ru. Koodi on kirjoitettu C/C++-kielellä ja jaettu Apache 2.0 -lisenssillä. Tutustumiseen ja nopeaan käynnistämiseen voit käyttää valmiita Docker-konttia.

Projektin ominaisuudet:

  • Relaatiotietomallin käyttäminen taulukoiden kanssa. Kyselyihin ja tietoskeeman määrittämiseen käytetään YQL-kieltä (YDB Query Language), joka on SQL:n murre, joka on sovitettu työskentelemään suurten hajautettujen tietokantojen kanssa. Tallennusskeemaa luotaessa tuetaan puumaista taulukkojen ryhmittelyä, joka muistuttaa tiedostojärjestelmän hakemistoja. Saatavilla on API JSON-muodossa olevien tietojen käsittelyä varten.
    Yandex on avannut koodin hajautettua DBMS YDB:tä varten, joka tukee SQL:ää
  • Tuki tietojen käyttämiselle skannauskyselyillä, jotka on suunniteltu suorittamaan analyyttisiä ad-hoc-kyselyitä tietokannassa, jotka suoritetaan vain luku -tilassa ja palauttavat grpc-virran.
  • Vuorovaikutus DBMS:n kanssa ja pyyntöjen lähettäminen suoritetaan käyttämällä komentorivikäyttöliittymää, sisäänrakennettua verkkokäyttöliittymää tai YDB SDK:ta, joka tarjoaa kirjastot C++:lle, C#:lle (.NET), Golle, Javalle, Node.js:lle, PHP:lle ja Pythonille.
  • Mahdollisuus luoda vikasietoisia kokoonpanoja, jotka jatkavat toimintaansa, kun yksittäiset levyt, solmut, telineet ja jopa datakeskukset epäonnistuvat. YDB tukee käyttöönottoa ja synkronista replikointia kolmella käytettävyysvyöhykkeellä ja ylläpitää klusterin toimivuutta, jos jokin vyöhykkeistä epäonnistuu.
  • Toivu automaattisesti vioista mahdollisimman pienellä viiveellä sovelluksille ja ylläpidä automaattisesti määritettyä tietojen redundanssia.
  • Indeksien automaattinen luominen ensisijaisen avaimen perusteella ja mahdollisuus määritellä toissijaisia ​​indeksejä mielivaltaisten sarakkeiden käytön tehokkuuden parantamiseksi.
  • Vaakasuuntainen skaalautuvuus. Kun tallennettujen tietojen kuormitus ja koko kasvaa, klusteria voidaan laajentaa yksinkertaisesti yhdistämällä uusia solmuja. Laskenta- ja tallennustasot on erotettu toisistaan, joten voit laajentaa laskentatehoasi ja tallennustilaasi erikseen. DBMS itse valvoo tiedon ja kuorman tasaista jakautumista ottaen huomioon käytettävissä olevat laitteistoresurssit. On mahdollista ottaa käyttöön maantieteellisesti hajautettuja konfiguraatioita, jotka kattavat useita datakeskuksia eri puolilla maailmaa.
  • Tukee vahvaa johdonmukaisuusmallia ja ACID-tapahtumia käsiteltäessä kyselyitä, jotka kattavat useita solmuja ja taulukoita. Voit parantaa suorituskykyä poistamalla 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ä.
  • Tietojen tallentaminen suoraan lohkolaitteisiin käyttämällä alkuperäistä PDisk-komponenttia ja VDisk-kerrosta. DSProxy toimii VDiskin päällä, joka analysoi levyjen saatavuuden ja suorituskykyominaisuudet poistaakseen ne, jos ongelmia havaitaan.
  • Joustava arkkitehtuuri, jonka avulla voit luoda erilaisia ​​palveluita YDB:n päälle, mukaan lukien virtuaaliset lohkolaitteet ja pysyvät jonot. Soveltuvuus erilaisiin työkuormiin, OLTP ja OLAP (analyyttiset kyselyt).
  • Tuki monivuokralaisille ja palvelimettomille kokoonpanoille. Mahdollisuus asiakkaan tunnistamiseen. Käyttäjät voivat luoda virtuaaliklusterinsa ja tietokantansa yhteisessä jaetussa infrastruktuurissa ottamalla huomioon resurssien kulutuksen pyyntöjen määrän ja datakoon tasolla tai vuokraamalla/varaamalla tiettyjä laskentaresursseja ja tallennustilaa.
  • Mahdollisuus määrittää tietueiden käyttöikä poistamaan automaattisesti vanhentuneet tiedot.

Lähde: opennet.ru

Lisää kommentti