Yandex åbnede koden for det distribuerede DBMS YDB, der understøtter SQL

Yandex har udgivet kildeteksterne til det distribuerede YDB DBMS, som implementerer understøttelse af SQL-dialekten og ACID-transaktioner. DBMS blev skabt fra bunden og oprindeligt udviklet med henblik på at sikre fejltolerance, automatisk gendannelse i tilfælde af fejl og skalerbarhed. Det bemærkes, at Yandex lancerede fungerende YDB-klynger, herunder mere end 10 tusinde noder, der lagrer hundredvis af petabyte data og betjener millioner af distribuerede transaktioner i sekundet. YDB bruges i Yandex-projekter som Market, Cloud, Smart Home, Alice, Metrika og Auto.ru. Koden er skrevet i C/C++ og distribueret under Apache 2.0-licensen. Til fortrolighed og hurtig lancering kan du bruge en færdiglavet Docker-beholder.

Projektets funktioner:

  • Brug af den relationelle datamodel med tabeller. YQL (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, der ligner mapper i et filsystem. Der er en API til at arbejde med data i JSON-format.
    Yandex åbnede koden for det distribuerede DBMS YDB, der understøtter SQL
  • Understøttelse af adgang til data ved hjælp af scanningsforespørgsler designet til at udføre analytiske ad-hoc-forespørgsler mod databasen, udført i skrivebeskyttet tilstand og returnere en grpc-strøm.
  • Interaktion med DBMS og afsendelse af anmodninger udføres ved hjælp af kommandolinjegrænsefladen, den indbyggede webgrænseflade eller YDB SDK, som leverer biblioteker til C ++, C # (.NET), Go, Java, Node.js, PHP og Python.
  • Evnen til at skabe fejltolerante konfigurationer, der fortsætter med at fungere, når individuelle diske, noder, racks og endda datacentre svigter. YDB understøtter implementering og synkron replikering på tværs af tre tilgængelighedszoner, samtidig med at klyngens tilstand opretholdes i tilfælde af fejl i en af ​​zonerne.
  • Gendan automatisk fra fejl med minimale forsinkelser for applikationer og bibehold automatisk den specificerede redundans ved lagring af data.
  • Automatisk oprettelse af indekser på den primære nøgle og muligheden for at definere sekundære indekser for at forbedre effektiviteten af ​​adgangen til vilkårlige kolonner.
  • Horisontal skalerbarhed. Efterhånden som belastningen og størrelsen af ​​de lagrede data vokser, kan klyngen udvides ved blot at forbinde nye noder. Beregnings- og lagringsniveauerne er adskilt, hvilket giver mulighed for beregning og lagringsskalering separat. DBMS'et overvåger selv den ensartede 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 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.
  • Lagring af data direkte på blokenheder ved hjælp af indbygget PDisk-komponent og VDisk-lag. Oven i VDisk kører DSProxy, som analyserer diskenes tilgængelighed og ydeevne for at udelukke dem, hvis der opdages problemer.
  • En fleksibel arkitektur, der giver dig mulighed for at skabe oven på YDB, forskellige tjenester, op til virtuelle blokenheder og persistente køer (persistent queue). Applikationsegnethed til forskellige typer arbejdsbelastning, OLTP og OLAP (analytiske forespørgsler).
  • Understøttelse af multi-user (multitenant) og serverløse konfigurationer. Evne til at autentificere kunder. Brugere kan oprette deres egne virtuelle klynger og databaser i en fælles delt infrastruktur, under hensyntagen til ressourceforbrug på niveau med antallet af anmodninger og datastørrelse, eller ved at leje/reservere visse computerressourcer og lagerplads.
  • Mulighed for at justere levetiden for poster for automatisk sletning af forældede data.

Kilde: opennet.ru

Tilføj en kommentar