Yandex har åpnet koden for en distribuert DBMS YDB som støtter SQL

Yandex har publisert kildekoden til det distribuerte DBMS YDB, som implementerer støtte for SQL-dialekten og ACID-transaksjoner. DBMS ble opprettet fra bunnen av og ble opprinnelig utviklet med tanke på å sikre feiltoleranse, automatisk gjenoppretting fra feil og skalerbarhet. Det bemerkes at Yandex har lansert fungerende YDB-klynger, inkludert mer enn 10 tusen noder, som lagrer hundrevis av petabyte med data og serverer millioner av distribuerte transaksjoner per sekund. YDB brukes i slike Yandex-prosjekter som Market, Cloud, Smart Home, Alice, Metrica og Auto.ru. Koden er skrevet i C/C++ og distribuert under Apache 2.0-lisensen. For kjennskap og rask lansering kan du bruke en ferdig Docker-beholder.

Funksjoner ved prosjektet:

  • Bruke en relasjonsdatamodell med tabeller. For spørringer og definering av dataskjemaet brukes YQL-språket (YDB Query Language), som er en dialekt av SQL tilpasset for arbeid med store distribuerte databaser. Når du oppretter et lagringsskjema, støttes en trelignende gruppering av tabeller, som minner om kataloger i et filsystem. En API er tilgjengelig for arbeid med data i JSON-format.
    Yandex har åpnet koden for en distribuert DBMS YDB som støtter SQL
  • Støtte for datatilgang ved å bruke skannespørringer designet for å utføre analytiske ad-hoc-spørringer på databasen, utført i skrivebeskyttet modus og returnere en grpc-strøm.
  • Interaksjon med DBMS og sending av forespørsler utføres ved hjelp av kommandolinjegrensesnittet, innebygd webgrensesnitt eller YDB SDK, som gir biblioteker for C++, C# (.NET), Go, Java, Node.js, PHP og Python.
  • Muligheten til å lage feiltolerante konfigurasjoner som fortsetter å fungere når individuelle disker, noder, rack og til og med datasentre svikter. YDB støtter distribusjon og synkron replikering i tre tilgjengelighetssoner, og opprettholder funksjonaliteten til klyngen i tilfelle feil i en av sonene.
  • Gjenopprett automatisk fra feil med minimal ventetid for applikasjoner og oppretthold automatisk spesifisert dataredundans.
  • Automatisk oppretting av indekser basert på primærnøkkelen og muligheten til å definere sekundære indekser for å forbedre effektiviteten av tilgang til vilkårlige kolonner.
  • Horisontal skalerbarhet. Etter hvert som belastningen og størrelsen på lagrede data vokser, kan klyngen utvides ved ganske enkelt å koble til nye noder. Databehandlings- og lagringsnivåene er atskilt, slik at du kan utvide datakraften og lagringsstørrelsen separat. DBMS selv overvåker den ensartede fordelingen av data og belastning, tar hensyn til tilgjengelige maskinvareressurser. Det er mulig å distribuere geografisk distribuerte konfigurasjoner som dekker flere datasentre i forskjellige deler av verden.
  • Støtter den sterke konsistensmodellen og ACID-transaksjoner ved behandling av spørringer som spenner over flere noder og tabeller. For å forbedre ytelsen kan du selektivt deaktivere konsistenskontroll.
  • Automatisk datareplikering, automatisk partisjonering (partisjonering, sharding) når størrelsen eller belastningen øker, og automatisk belastning og databalansering mellom noder.
  • Lagring av data direkte på blokkenheter ved hjelp av native PDisk-komponent og VDisk-lag. DSProxy kjører på toppen av VDisk, som analyserer tilgjengeligheten og ytelsesegenskapene til disker for å eliminere dem hvis problemer oppdages.
  • Fleksibel arkitektur som lar deg lage ulike tjenester på toppen av YDB, inkludert virtuelle blokkenheter og vedvarende køer. Egnethet for ulike typer arbeidsbelastninger, OLTP og OLAP (analytiske spørringer).
  • Støtte for multitenant og serverløse konfigurasjoner. Mulighet for klientautentisering. Brukere kan lage sine virtuelle klynger og databaser i en felles delt infrastruktur, og tar hensyn til ressursforbruk på nivå med antall forespørsler og datastørrelse, eller ved å leie/reservere visse dataressurser og lagringsplass.
  • Evne til å konfigurere levetiden til poster for automatisk å fjerne utdaterte data.

Kilde: opennet.ru

Legg til en kommentar