Yandex ga ut kildekoden til DBMS «YDB»

Nylig brøt nyheten det Yandex ga ut kildekoden til DBMS, «YDB», som implementerer støtte for SQL-dialekten og ACID-transaksjoner.

DBMS ble bygget fra grunnen av og ble opprinnelig utviklet med et øye for å sikre feiltoleranse, automatisk failover og skalerbarhet. Det skal bemerkes at Yandex lanserte fungerende YDB-klynger, inkludert mer enn 10 tusen noder, som lagrer hundrevis av petabyte med data og betjener millioner av distribuerte transaksjoner per sekund.

Hovednyhetene til YDB

Av funksjonene som skiller seg ut fra YDB er bruk av relasjonsdatamodellen med YQL-tabeller (YDB Query Language) brukes til å spørre og definere dataskjemaet, som er en dialekt av SQL tilpasset til å fungere med store distribuerte databaser. Når du oppretter et lagringsskjema, støttes en trelignende gruppering av tabeller, som ligner katalogene til et filsystem. En API er tilgjengelig for arbeid med data i JSON-format.

De evne til å lage feiltolerante konfigurasjoner som fortsetter å fungere når disker, noder, rack og til og med individuelle datasentre svikter. YDB støtter synkron distribusjon og replikering på tvers av tre tilgjengelighetssoner, samtidig som statusen til klyngen opprettholdes i tilfelle feil i en av sonene.

Støtte for datatilgang ved å bruke skannespørringer, designet for å utføre ad-hoc analytiske spørringer på databasen, utført i skrivebeskyttet modus og returnere en grpc-strøm.

I tillegg skiller den seg også ut lagring av data direkte på blokkenheter ved hjelp av PDisk-komponenten native og VDisk-laget. I tillegg til VDisk kjører DSProxy, som analyserer tilgjengeligheten og ytelsen til disker for å ekskludere dem hvis problemer oppdages.

Av andre funksjoner som skiller seg ut:

  • En fleksibel arkitektur som lar deg bygge ulike tjenester på toppen av YDB, helt ned til virtuelle blokkenheter og vedvarende køer. Egnethet for ulike typer arbeidsbelastning: OLTP og OLAP (analytiske spørringer).
  • Støtte for flerbruker (multi-tenant) og serverløse konfigurasjoner.
  • Evne til å autentisere klienter. Brukere kan lage sine egne virtuelle klynger og databaser på en felles delt infrastruktur, med tanke på ressursforbruk i form av antall forespørsler og datastørrelse, eller ved å leie/reservere visse dataressurser og lagringsplass.
  • Mulighet for å justere levetiden til postene for automatisk sletting av foreldede data.
  • Interaksjon med DBMS og innsending av forespørsler gjøres ved å bruke kommandolinjegrensesnittet, det integrerte webgrensesnittet eller YDB SDK, som gir biblioteker for C++, C# (.NET), Go, Java, Node.js, PHP og Python.
  • Gjenopprett automatisk fra feil med minimal forsinkelse til applikasjoner og oppretthold automatisk spesifisert redundans ved lagring av data.
  • Automatisk opprettelse av indekser på primærnøkkelen og muligheten til å definere sekundære indekser for å forbedre effektiviteten til vilkårlig kolonnetilgang.
  • Horisontal skalerbarhet. Etter hvert som belastningen og størrelsen på lagrede data vokser, kan klyngen utvides ganske enkelt ved å koble til nye noder. Beregnings- og lagringsnivåer er separate, slik at du kan skalere beregning og lagring separat. DBMS selv overvåker jevn fordeling av data og belastning, tar hensyn til tilgjengelige maskinvareressurser. Det er mulig å implementere geografisk distribuerte konfigurasjoner som dekker flere datasentre i ulike deler av verden.
  • Støtte for en sterk konsistensmodell 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.

Endelig, det skal bemerkes at YDB brukes i Yandex-prosjekter, koden er skrevet i C/C++ og distribueres under Apache 2.0-lisensen, du kan se kildekoden, samt flere detaljer om den I den følgende lenken.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.