Yandex a lansat codul sursă al SGBD-ului său «YDB»

Recent s-a anunțat că Yandex a lansat codul sursă pentru SGBD-ul său, „YDB” , care implementează suport pentru dialectul SQL și tranzacțiile ACID.

SGBD-ul a fost construit de la zero și dezvoltat inițial cu scopul de a asigura toleranța la erori , recuperarea automată după erori și scalabilitatea. Este demn de remarcat faptul că Yandex a lansat clustere YDB operaționale, inclusiv peste 10 de noduri, stocând sute de petabytes de date și gestionând milioane de tranzacții distribuite pe secundă.

Principalele știri de la YDB

Una dintre caracteristicile cheie ale YDB este utilizarea unui model de date relațional cu tabele. YQL ( YDB Query Language) este utilizat pentru interogarea și definirea schemei de date; este un dialect al SQL adaptat pentru lucrul cu baze de date mari, distribuite . La crearea unei scheme de stocare, este acceptată o grupare de tabele de tip arbore, similară directoarelor dintr-un sistem de fișiere. Este furnizată o interfață API pentru lucrul cu date în format JSON.

De asemenea, este demnă de remarcat capacitatea sa de a crea configurații tolerante la erori care continuă să funcționeze atunci când discurile, nodurile, rack-urile și chiar centrele de date individuale se defectează. YDB acceptă implementarea și replicarea sincronă în trei zone de disponibilitate, menținând în același timp starea clusterului în cazul unei erori a zonei.

Compatibilitate cu accesul la date prin intermediul interogărilor de scanare, concepute pentru a efectua interogări analitice ad-hoc asupra bazei de date, executate în modul read-only și returnând un flux grpc.

În plus, se remarcă și prin stocarea datelor direct pe dispozitive bloc folosind componenta nativă PDisk și stratul VDisk. Pe lângă VDisk, rulează DSProxy, care analizează disponibilitatea și performanța discului pentru a le exclude dacă sunt detectate probleme.

Alte caracteristici notabile includ:

  • O arhitectură flexibilă care vă permite să construiți diverse servicii pe deasupra YDB, până la dispozitive bloc virtuale și cozi persistente. Adecvarea pentru diferite tipuri de sarcini de lucru: OLTP și OLAP (interogări analitice).
  • Suport pentru configurații cu mai mulți utilizatori (multi-chiriași) și fără server.
  • Abilitatea de a autentifica clienții. Utilizatorii își pot crea propriile clustere virtuale și baze de date pe o infrastructură comună partajată, ținând cont de consumul de resurse la nivel de număr de solicitări și dimensiunea datelor, sau închirierea/rezervarea anumitor resurse de calcul și spațiu de stocare.
  • Abilitatea de a ajusta durata de viață utilă a înregistrărilor pentru ștergerea automată a datelor învechite.
  • Interacțiunea cu SGBD și trimiterea cererilor se realizează folosind interfața de linie de comandă, interfața web integrată sau YDB SDK, care oferă biblioteci pentru C++, C# (.NET), Go, Java, Node.js, PHP și Python.
  • Recuperați automat după defecțiuni cu întârzieri minime ale aplicației și mențineți automat redundanța specificată atunci când stocați datele.
  • Crearea automată de indici pe cheia primară și capacitatea de a defini indecși secundari pentru a îmbunătăți eficiența accesării coloanelor arbitrare.
  • Scalabilitate orizontală. Pe măsură ce încărcarea și dimensiunea datelor stocate cresc, clusterul poate fi extins pur și simplu prin conectarea de noi noduri. Nivelurile de calcul și stocare sunt separate, permițând scalarea separată a calculului și stocării. SGBD-ul însuși monitorizează distribuția uniformă a datelor și a încărcării, ținând cont de resursele hardware disponibile. Este posibil să implementați configurații distribuite geografic care acoperă mai multe centre de date din diferite părți ale lumii.
  • Suport pentru un model puternic de coerență și tranzacții ACID atunci când procesează interogări care se întind pe mai multe noduri și tabele. Pentru a îmbunătăți performanța, puteți dezactiva selectiv verificarea coerenței.
  • Replicare automată a datelor, partiționare automată (partiționare, sharding) atunci când dimensiunea sau încărcarea crește și încărcarea automată și echilibrarea datelor între noduri.

În cele din urmă, merită menționat faptul că YDB este utilizat în proiectele Yandex, codul este scris în C/C++ și este distribuit sub licența Apache 2.0. Puteți găsi codul sursă, precum și mai multe detalii despre acesta, la următorul link.


Adăugați ca sursă preferată în Google