YDB

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 25. kesäkuuta 2022 tarkistetusta versiosta . tarkastukset vaativat 2 muokkausta .
YDB
Tyyppi DBMS
Kehittäjä Yandex
Lisenssi Apache 2.0
Verkkosivusto YDB-projektin virallinen verkkosivusto

YDB on avoimen lähdekoodin  , hajautettu, vikasietoinen relaatiotietokannan hallintajärjestelmä (DBMS), jonka on kehittänyt Yandex .

Toiminnallisuus

YDB on tekniikka, jonka avulla voit luoda suuria palveluita , jotka kestävät suuren käyttökuorman (jopa miljoonien pyyntöjen tasoon sekunnissa). Oletuskyselykieli on YQL [1] (YDB Query Language), vahvasti kirjoitettu SQL: n murre [2] .

Se on yksi DBMS-järjestelmistä, jotka tarjoavat ACID - tapahtumatakuita [3] .

Tietokantajärjestelmien lähimmät analogit, jotka ovat saatavilla myös avoimen lähdekoodin ohjelmistoina, ovat YugabyteDB ja CockroachDB.

YDB tarkoittaa itsekäyttöönottoa fyysisten isäntien tai virtuaalikoneiden klustereihin Kubernetes-työkalujen avulla tai Yandex Cloudin hallinnoituna palveluna. Hallitussa toteutuksessa valitaan palvelimeton laskentatila tai Dedicated-tila.

Toteutusominaisuudet

YDB ei tue UUID:tä erillisenä tietotyyppinä [4] .

Ei ole sisäänrakennettua toimintoa kentän arvon automaattiseen lisäämiseen lisättäessä tietoja taulukkoon [4] .

Arkkitehtuuri

YDB toimii klustereissa, joissa on "jaettu ei mitään" -arkkitehtuuri ja käyttää vakiolaitteistoa (hyödykelaitteisto). Järjestelmä on rakennettu loogisten komponenttien - tablettien - pohjalta. Tabletissa on protokolla konsensusongelman ratkaisemiseksi epäluotettavien tietokoneiden verkossa. Tämä protokolla on toiminnaltaan samanlainen kuin Paxos ja Raft - protokollat ​​.

Käyttäjätaulukoissa on pakollinen ensisijainen avain, taulukot jaetaan ensisijaisen avainalueen mukaan. Tietosirua ohjataan tabletilla, sirpaleen koko voi olla jopa gigatavua. Tällaisia ​​tabletteja kutsutaan DataShardiksi. DataShard-tabletti voi jakaa automaattisesti useiksi tableteiksi, kun tiedon tallennusraja tai sirpaleiden kuormitusraja ylittyy. Joten järjestelmä skaalautuu läpinäkyvästi käyttäjäkuorman kasvaessa.

DataShardin lisäksi on monia erilaisia ​​tabletteja: SchemeShard-tabletit käyttäjätaulukoiden metatietojen tallentamiseen, Hive tablettien tasapainottamiseen ja käyttämiseen, Coordinator ja Mediator hajautetun tapahtuman ajoittamiseen ja monet muut.

Pilleritiedot tallennetaan Distributed Storage -kerrokseen, joka on avainarvovarasto, jossa on erityisprotokolla, joka tukee pilleriprotokollaa. Distributed Storage tarjoaa tietojen replikoinnin, tabletin tiedot tallennetaan BLOB- muodossa [3] .

YDB toteuttaa hajautettuja tapahtumia tietojen välillä yhdessä tai useammassa taulukossa. Hajautettu tapahtumamekanismi perustuu Calvin-algoritmiin [5] . Toisin kuin Calvin, YDB tukee interaktiivisia ja ei-deterministisiä tapahtumia. Tätä varten käytetään optimistisia lukkoja .

YDB-koodia kehitettäessä käytetään toimijamallia . Toimijat ovat yksisäikeisiä tilakoneita, jotka vaihtavat viestejä keskenään ja sijaitsevat klusterin eri palvelimilla. Viestien vaihtamiseen verkon yli käytetään osana projektia kehitettyä yhteenliittämiskirjastoa. YDB:n päälle on kehitetty erilaisia ​​palveluita. Esimerkiksi virtuaaliset lohkolaitteet ja pysyvät jonot.

Käyttäjän vuorovaikutus YDB:n kanssa tapahtuu gRPC [3] -protokollan kautta . YDB:lle on olemassa useita asiakas- SDK :ita, jotka toteuttavat mekanismeja solmun etsintään (haku), asiakkaan tasapainottamiseen jne.

Historia

Vuonna 2010 Yandex aloitti oman NoSQL DBMS KiWin kehittämisen [1] . Sitä alettiin käyttää vuonna 2011. KiWi tarjosi kuitenkin " äärimmäisen johdonmukaisuuden " ja sillä oli muita NoSQL-mallin haittoja [3] .

Vuonna 2012 aloitettiin KiKiMR-projektin sisäinen kehitys ja vain Yandexin tarpeisiin. Yrityksen ulkopuolella hankkeen nimi oli YDB [1] . Vuonna 2016 DBMS:ää alettiin käyttää Yandex-palveluissa.

Vuonna 2018 lanseerattiin Yandex Cloud -pilvialusta , jonka tietojen tallennus perustui YDB:hen [6] . Samaan aikaan yritys ilmoitti [7] , että se tuo tulevaisuudessa YDB:n saataville Yandex Cloudissa hallittavana palveluna. Myöhemmin tällaista pääsyä alettiin todella tarjota yhdessä muiden hallittujen palveluiden kanssa - PostgreSQL:lle, MongoDB:lle ja muille. Tämän pilviversion nimi oli Yandex Database (myöhemmin YDB:n hallittu palvelu).

Huhtikuussa 2022 YDB DBMS julkaistiin GitHubissa ilmaisena ohjelmistona Apache 2.0 -lisenssillä [1] .

Muistiinpanot

  1. 1 2 3 4 Yandex julkaisi YDB:n avoimessa lähdekoodissa . Habr . Haettu: 12.6.2022.
  2. Kuinka kirjoittaa vähemmän koodia MR:lle tai miksi maailma tarvitsee toisen kyselykielen? Yandex-kyselykielen historia . Habr . Haettu: 14.6.2022.
  3. ↑ 1 2 3 4 Palvelimeton vaihtoehto perinteisille tietokannoille  (venäläinen)  ? . osp.ru. _ Käyttöönottopäivä: 23.6.2022.
  4. ↑ 1 2 Nikolai Matrosov. Automaattinen lisäys Yandex-tietokannassa  (eng.) . Keskitaso (14. helmikuuta 2022). Käyttöönottopäivä: 24.4.2022.
  5. ↑ Calvin  : Nopeasti hajautetut tapahtumat osioiduille tietokantajärjestelmille  ? . cs.yale.edu . Haettu: 19.6.2022.
  6. 001. Yandex Cloud: alustan yleiskatsaus - Jan Leshchinsky  (venäläinen)  ? . Youtube . Haettu: 12.6.2022.
  7. noin:pilvi, marraskuu 2018 | Lähetysäänitys  (venäjäksi)  ? . Youtube . Haettu: 12.6.2022.