YDB | |
---|---|
Sorts | DBMS |
Utvecklaren | Yandex |
Licens | Apache 2.0 |
Hemsida | YDB-projektets officiella webbplats |
YDB är ett distribuerat, feltolerant hanteringssystem för relationsdatabas (DBMS) med öppen källkod utvecklat av Yandex .
YDB är en teknik som gör att du kan skapa stora tjänster som tål en stor driftsbelastning (upp till miljontals förfrågningar per sekund). Standardfrågespråket är YQL [1] (YDB Query Language), en starkt skriven dialekt av SQL [2] .
Det är en av de DBMS som tillhandahåller ACID- transaktionsgarantier [3] .
De närmaste analogerna bland databassystem, även tillgängliga som programvara med öppen källkod, är YugabyteDB och CockroachDB.
YDB innebär självdistribuering till kluster av fysiska värdar eller virtuella maskiner med hjälp av Kubernetes-verktyg, eller som en hanterad tjänst i Yandex Cloud. För en hanterad implementering väljs det serverlösa beräkningsläget eller det dedikerade läget.
YDB stöder inte UUID som en fristående datatyp [4] .
Det finns ingen inbyggd funktion för att automatiskt öka ett fältvärde när data läggs till i en tabell [4] .
YDB körs på kluster med en "shared nothing"-arkitektur och använder standardhårdvara (commodity hardware). Systemet är byggt på grundval av logiska komponenter - surfplattor. Tabletten implementerar ett protokoll för att lösa konsensusproblemet i ett nätverk av opålitliga datorer. Detta protokoll liknar funktionaliteten till Paxos- och Raft- protokollen .
Användartabeller har en obligatorisk primärnyckel, tabeller delas av primärnyckelintervall. Databiten styrs av en surfplatta, storleken på en skärva kan vara upp till enheter gigabyte. Sådana surfplattor kallas DataShard. En DataShard-surfplatta kan automatiskt delas upp i flera surfplattor när tröskeln för datalagring eller shardladdning överskrids. Så systemet skalas transparent med ökande användarbelastning.
Det finns många olika typer av surfplattor förutom DataShard: SchemeShard-surfplattor för att lagra metadata om användartabeller, Hive för att balansera och köra surfplattor, Koordinator och Mediator för att schemalägga distribuerade transaktioner och många andra.
Pill-data lagras i lagret Distributed Storage, som är ett nyckelvärdelager med ett specialiserat protokoll för att stödja p-pillerprotokollet. Distribuerad lagring tillhandahåller datareplikering, surfplattans data lagras som BLOB [3] .
YDB implementerar distribuerade transaktioner mellan data i en eller flera tabeller. Den distribuerade transaktionsmekanismen är baserad på Calvin-algoritmen [5] . Men till skillnad från Calvin stöder YDB interaktiva och icke-deterministiska transaktioner. För detta används optimistiska lås .
Vid utveckling av YDB-koden används aktörsmodellen . Aktörer är entrådade tillståndsmaskiner som utbyter meddelanden med varandra och finns på olika servrar i klustret. För att utbyta meddelanden över nätverket används det interconnect-bibliotek som utvecklats som en del av projektet. Olika tjänster har utvecklats ovanpå YDB. Till exempel virtuella blockenheter och beständiga köer.
Användarinteraktion med YDB sker via gRPC [3] -protokollet . För YDB finns det ett antal klient -SDK :er som implementerar mekanismer för nodupptäckt (upptäckt), klientbalansering, etc.
2010 började Yandex utveckla sin egen NoSQL DBMS KiWi [1] . Den började användas 2011. KiWi gav dock " yttersta konsekvens " och hade andra nackdelar med NoSQL-modellen [3] .
2012 började den interna utvecklingen av KiKiMR-projektet, och endast för Yandex behov. Utanför företaget hette projektet YDB [1] . 2016 började DBMS användas i Yandex-tjänster.
2018 lanserades molnplattformen Yandex Cloud , där datalagring var baserad på YDB [6] . Samtidigt meddelade företaget [7] att det i framtiden kommer att göra YDB tillgängligt i Yandex Cloud som en hanterad tjänst. Senare började sådan åtkomst verkligen tillhandahållas tillsammans med andra hanterade tjänster - för PostgreSQL, MongoDB och andra. Denna molnversion kallades Yandex Database (senare Managed service för YDB).
I april 2022 publicerades YDB DBMS på GitHub som fri programvara under Apache 2.0 -licensen [1] .
Databashanteringssystem (DBMS) | |
---|---|
Klient-server | |
Motorer | |
Fil server |
Yandex | ||||||||
---|---|---|---|---|---|---|---|---|
människor |
| |||||||
Söktjänster |
| |||||||
Foodtech |
| |||||||
Personliga tjänster | ||||||||
Aggregatorer | ||||||||
Webbmasters och företag |
| |||||||
Fintech |
| |||||||
Program |
| |||||||
Teknologi |
| |||||||
Enheter |
| |||||||
Smart hus |
| |||||||
Motortransport |
| |||||||
Budrobotar | ||||||||
Utbildning | ||||||||
Slutna projekt | ||||||||
Yandex 360- tjänster | ||||||||
Övrig | ||||||||
|