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 .
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.
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] .
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.
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] .
Tietokannan hallintajärjestelmät (DBMS) | |
---|---|
Asiakas-palvelin | |
Moottorit | |
Tiedosto palvelin |