Yandex je otvorio kod distribuiranog DBMS-a YDB koji podržava SQL

Yandex je objavio izvorni kod distribuiranog DBMS-a YDB, koji implementira podršku za SQL dijalekt i ACID transakcije. DBMS je kreiran od nule i prvobitno je razvijen s ciljem da se osigura tolerancija grešaka, automatski oporavak od kvarova i skalabilnost. Napominje se da je Yandex pokrenuo radne YDB klastere, uključujući više od 10 hiljada čvorova, koji pohranjuju stotine petabajta podataka i opslužuju milione distribuiranih transakcija u sekundi. YDB se koristi u Yandex projektima kao što su Market, Cloud, Smart Home, Alice, Metrica i Auto.ru. Kod je napisan u C/C++ i distribuira se pod licencom Apache 2.0. Za upoznavanje i brzo pokretanje možete koristiti gotov Docker kontejner.

Karakteristike projekta:

  • Korištenje relacionog modela podataka sa tabelama. Za upite i definiranje šeme podataka koristi se YQL jezik (YDB Query Language) koji je dijalekt SQL-a prilagođen za rad s velikim distribuiranim bazama podataka. Kada kreirate šemu skladištenja, podržano je grupisanje tabela nalik stablu, koje podseća na direktorijume u sistemu datoteka. Omogućen je API za rad sa podacima u JSON formatu.
    Yandex je otvorio kod distribuiranog DBMS-a YDB koji podržava SQL
  • Podrška za pristup podacima pomoću upita za skeniranje dizajniranih za izvođenje analitičkih ad-hoc upita na bazi podataka, koji se izvršavaju u načinu samo za čitanje i vraćaju grpc tok.
  • Interakcija sa DBMS-om i slanje zahteva se vrši korišćenjem interfejsa komandne linije, ugrađenog veb interfejsa ili YDB SDK, koji obezbeđuje biblioteke za C++, C# (.NET), Go, Java, Node.js, PHP i Python.
  • Sposobnost kreiranja konfiguracija otpornih na greške koje nastavljaju da rade kada pojedini diskovi, čvorovi, stalci, pa čak i centri podataka pokvare. YDB podržava implementaciju i sinhronu replikaciju u tri zone dostupnosti, održavajući funkcionalnost klastera u slučaju kvara jedne od zona.
  • Automatski se oporavlja od kvarova s ​​minimalnim kašnjenjem za aplikacije i automatski održava specificiranu redundantnost podataka.
  • Automatsko kreiranje indeksa na osnovu primarnog ključa i mogućnost definisanja sekundarnih indeksa radi poboljšanja efikasnosti pristupa proizvoljnim kolonama.
  • Horizontalna skalabilnost. Kako raste opterećenje i veličina pohranjenih podataka, klaster se može proširiti jednostavnim povezivanjem novih čvorova. Slojevi za računanje i skladištenje su odvojeni, što vam omogućava da zasebno proširite svoju računarsku snagu i veličinu skladišta. Sam DBMS prati ujednačenu distribuciju podataka i opterećenja, uzimajući u obzir raspoložive hardverske resurse. Moguće je implementirati geografski distribuirane konfiguracije koje pokrivaju nekoliko centara podataka u različitim dijelovima svijeta.
  • Podržava model jake konzistentnosti i ACID transakcije prilikom obrade upita koji obuhvataju više čvorova i tabela. Da biste poboljšali performanse, možete selektivno onemogućiti provjeru konzistentnosti.
  • Automatska replikacija podataka, automatsko particioniranje (particioniranje, dijeljenje) kada se povećava veličina ili opterećenje i automatsko balansiranje opterećenja i podataka između čvorova.
  • Pohranjivanje podataka direktno na blok uređaje koristeći izvornu PDisk komponentu i VDisk sloj. DSProxy radi na vrhu VDisk-a, koji analizira dostupnost i karakteristike performansi diskova kako bi ih eliminisao ako se otkriju problemi.
  • Fleksibilna arhitektura koja vam omogućava da kreirate različite usluge na vrhu YDB-a, uključujući virtuelne blok uređaje i trajne redove. Pogodnost za različite vrste opterećenja, OLTP i OLAP (analitički upiti).
  • Podrška za konfiguracije sa više stanara i bez servera. Mogućnost autentifikacije klijenta. Korisnici mogu kreirati svoje virtuelne klastere i baze podataka u zajedničkoj zajedničkoj infrastrukturi, uzimajući u obzir potrošnju resursa na nivou broja zahteva i veličine podataka, ili iznajmljivanjem/rezervisanjem određenih računarskih resursa i prostora za skladištenje.
  • Mogućnost konfigurisanja životnog vijeka zapisa za automatsko uklanjanje zastarjelih podataka.

izvor: opennet.ru

Dodajte komentar