YDB | |
---|---|
Tip de | SGBD |
Dezvoltator | Yandex |
Licență | Apache 2.0 |
Site-ul web | site-ul oficial al proiectului YDB |
YDB este un sistem de gestionare a bazelor de date relaționale (DBMS) cu sursă deschisă , distribuit, tolerant la erori , dezvoltat de Yandex .
YDB este o tehnologie care vă permite să creați servicii mari care pot rezista la o sarcină operațională mare (până la nivelul de milioane de solicitări pe secundă). Limbajul de interogare implicit este YQL [1] (YDB Query Language), un dialect puternic tipat al SQL [2] .
Este unul dintre SGBD-urile care oferă garanții pentru tranzacții ACID [3] .
Cei mai apropiati analogi dintre sistemele de baze de date, disponibile și ca software open source, sunt YugabyteDB și CockroachDB.
YDB implică implementarea automată în clustere de gazde fizice sau mașini virtuale folosind instrumente Kubernetes sau ca serviciu gestionat în Yandex Cloud. Pentru o implementare gestionată, este selectat modul de calcul fără server sau modul Dedicat.
YDB nu acceptă UUID ca tip de date autonom [4] .
Nu există nicio funcție încorporată pentru incrementarea automată a valorii unui câmp atunci când adăugați date la un tabel [4] .
YDB rulează pe clustere cu o arhitectură „shared nothing” și utilizează hardware standard (hardware de bază). Sistemul este construit pe baza unor componente logice - tablete. Tableta implementează un protocol pentru rezolvarea problemei consensului într-o rețea de computere nesigure. Acest protocol este similar ca funcționalitate cu protocoalele Paxos și Raft .
Tabelele de utilizator au o cheie primară obligatorie, tabelele sunt fragmentate de intervale de chei primare. Fragmentul de date este controlat de o tabletă, dimensiunea unui fragment poate fi de până la unități de gigaocteți. Astfel de tablete se numesc DataShard. O tabletă DataShard se poate împărți automat în mai multe tablete atunci când pragul de stocare a datelor sau pragul de încărcare a fragmentelor este depășit. Astfel, sistemul se scalează în mod transparent odată cu creșterea sarcinii utilizatorilor.
Există multe tipuri diferite de tablete în afară de DataShard: tablete SchemeShard pentru stocarea metadatelor despre tabelele utilizatorilor, Hive pentru echilibrarea și rularea tabletelor, Coordonator și Mediator pentru programarea tranzacțiilor distribuite și multe altele.
Datele pilulelor sunt stocate în stratul Distributed Storage, care este un magazin cheie-valoare cu un protocol specializat pentru a sprijini protocolul pilulelor. Stocarea distribuită oferă replicarea datelor, datele tabletei sunt stocate ca BLOB [3] .
YDB implementează tranzacții distribuite între date într-unul sau mai multe tabele. Mecanismul tranzacției distribuite se bazează pe algoritmul Calvin [5] . Cu toate acestea, spre deosebire de Calvin, YDB acceptă tranzacții interactive și nedeterministe. Pentru aceasta, sunt folosite încuietori optimiste .
La dezvoltarea codului YDB, se folosește modelul actorului . Actorii sunt mașini de stat cu un singur thread care fac schimb de mesaje între ele și rezidă pe servere diferite din cluster. Pentru schimbul de mesaje prin rețea, se folosește biblioteca de interconectare dezvoltată în cadrul proiectului. Pe lângă YDB au fost dezvoltate diverse servicii. De exemplu, dispozitive bloc virtuale și cozi persistente.
Interacțiunea utilizatorului cu YDB are loc prin protocolul gRPC [3] . Pentru YDB, există o serie de SDK -uri client care implementează mecanisme pentru descoperirea nodurilor (descoperirea), echilibrarea clienților etc.
În 2010, Yandex a început să-și dezvolte propriul DBMS NoSQL KiWi [1] . A început să fie folosit în 2011. Cu toate acestea, KiWi a oferit „ consecvență supremă ” și a avut alte dezavantaje ale modelului NoSQL [3] .
În 2012, a început dezvoltarea internă a proiectului KiKiMR și numai pentru nevoile Yandex. În afara companiei, proiectul se numea YDB [1] . În 2016, DBMS a început să fie utilizat în serviciile Yandex.
În 2018, a fost lansată platforma cloud Yandex Cloud , stocarea datelor în care se baza pe YDB [6] . În același timp, compania a anunțat [7] că în viitor va face YDB disponibil în Yandex Cloud ca serviciu gestionat. Mai târziu, un astfel de acces a început să fie furnizat cu adevărat împreună cu alte servicii gestionate - pentru PostgreSQL, MongoDB și altele. Această versiune în cloud a fost numită Yandex Database (mai târziu, serviciul gestionat pentru YDB).
În aprilie 2022, SGBD-ul YDB a fost publicat pe GitHub ca software gratuit sub licența Apache 2.0 [1] .
Sisteme de management al bazelor de date (DBMS) | |
---|---|
Client server | |
Motoare | |
Server de fișiere |
Yandex | ||||||||
---|---|---|---|---|---|---|---|---|
oameni |
| |||||||
Servicii de căutare | ||||||||
Tehnologia alimentară | ||||||||
Servicii personale | ||||||||
Agregatoare |
| |||||||
Webmasteri și companii |
| |||||||
Fintech |
| |||||||
Programe |
| |||||||
Tehnologie |
| |||||||
Dispozitive |
| |||||||
Casa inteligentă |
| |||||||
Transport cu motor |
| |||||||
Roboti de curierat | ||||||||
Educaţie | ||||||||
Proiecte închise |
| |||||||
Servicii Yandex 360 | ||||||||
Alte | ||||||||
|