Yandex frigav kildekoden til sin DBMS «YDB»

For nylig brød nyheden det Yandex frigav kildekoden til sit DBMS, «YDB», som implementerer understøttelse af SQL-dialekten og ACID-transaktioner.

DBMS blev bygget fra bunden og blev oprindeligt udviklet med henblik på at sikre fejltolerance, automatisk failover og skalerbarhed. Det skal bemærkes, at Yandex lancerede fungerende YDB-klynger, herunder mere end 10 tusinde noder, som gemmer hundredvis af petabyte data og betjener millioner af distribuerede transaktioner i sekundet.

De vigtigste nyheder i YDB

Af de funktioner, der skiller sig ud fra YDB er brug af den relationelle datamodel med YQL-tabeller (YDB Query Language) bruges til at forespørge og definere dataskemaet, som er en dialekt af SQL tilpasset til at arbejde med store distribuerede databaser. Når du opretter et lagerskema, understøttes en trælignende gruppering af tabeller, som ligner mapperne i et filsystem. Der leveres en API til at arbejde med data i JSON-format.

Det evne til at skabe fejltolerante konfigurationer der fortsætter med at fungere, når diske, noder, racks og endda individuelle datacentre fejler. YDB understøtter synkron implementering og replikering på tværs af tre tilgængelighedszoner, mens klyngens tilstand opretholdes i tilfælde af fejl i en af ​​zonerne.

Support til dataadgang ved hjælp af scanningsforespørgsler, designet til at udføre ad-hoc analytiske forespørgsler på databasen, udført i skrivebeskyttet tilstand og returnere en grpc-strøm.

Derudover skiller den sig også ud lagring af data direkte på blokenheder ved hjælp af PDisk-komponenten native og VDisk-laget. Udover VDisk kører DSProxy, som analyserer diskenes tilgængelighed og ydeevne for at udelukke dem, hvis der opdages problemer.

Af andre funktioner der skiller sig ud:

  • En fleksibel arkitektur, der giver dig mulighed for at bygge forskellige tjenester oven på YDB, helt ned til virtuelle blokenheder og vedvarende køer. Egnethed til forskellige typer arbejdsbelastning: OLTP og OLAP (analytiske forespørgsler).
  • Understøttelse af multi-user (multi-tenant) og serverløse konfigurationer.
  • Evne til at autentificere kunder. Brugere kan oprette deres egne virtuelle klynger og databaser på en fælles delt infrastruktur under hensyntagen til ressourceforbrug i form af antal anmodninger og datastørrelse, eller ved at leje/reservere visse computerressourcer og lagerplads.
  • Mulighed for at justere journalernes brugstid for automatisk sletning af forældede data.
  • Interaktion med DBMS og indsendelse af anmodninger sker ved hjælp af kommandolinjegrænsefladen, den integrerede webgrænseflade eller YDB SDK, som leverer biblioteker til C++, C# (.NET), Go, Java, Node.js, PHP og Python.
  • Gendan automatisk fra fejl med minimal forsinkelse til applikationer og bibehold automatisk specificeret redundans ved lagring af data.
  • Automatisk oprettelse af indekser på den primære nøgle og evnen til at definere sekundære indekser for at forbedre effektiviteten af ​​vilkårlig kolonneadgang.
  • Horisontal skalerbarhed. Efterhånden som belastningen og størrelsen af ​​lagrede data vokser, kan klyngen udvides ved blot at forbinde nye noder. Beregnings- og lagringsniveauer er adskilte, hvilket giver dig mulighed for at skalere beregning og lagring separat. DBMS'et overvåger selv den jævne fordeling af data og belastning under hensyntagen til de tilgængelige hardwareressourcer. Det er muligt at implementere geografisk distribuerede konfigurationer, der dækker flere datacentre i forskellige dele af verden.
  • Understøttelse af en stærk konsistensmodel og ACID-transaktioner ved behandling af forespørgsler, der spænder over flere noder og tabeller. For at forbedre ydeevnen kan du selektivt deaktivere konsistenskontrol.
  • Automatisk datareplikering, automatisk partitionering (partitionering, sharding), når størrelsen eller belastningen øges, og automatisk belastning og databalancering mellem noder.

Endelig det skal bemærkes, at YDB bruges i Yandex-projekter, koden er skrevet i C/C++ og distribueres under Apache 2.0 licensen, du kan se kildekoden, samt flere detaljer om den I det følgende link.


Indholdet af artiklen overholder vores principper for redaktionel etik. Klik på for at rapportere en fejl her.

Vær den første til at kommentere

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort.

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.