Yandex je otvorio kod za distribuirani DBMS YDB koji podržava SQL

Yandex je objavio izvorni kod distribuiranog DBMS YDB, koji implementira podršku za SQL dijalekt i ACID transakcije. DBMS je stvoren od nule i inicijalno je razvijen s ciljem da se osigura tolerancija na greške, automatski oporavak od kvarova i skalabilnost. Napominje se da je Yandex pokrenuo radne YDB klastere, uključujući više od 10 tisuća čvorova, koji pohranjuju stotine petabajta podataka i opslužuju milijune 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 distribuiran pod licencom Apache 2.0. Za upoznavanje i brzo pokretanje možete koristiti gotov Docker spremnik.

Značajke projekta:

  • Korištenje relacijskog podatkovnog modela s tablicama. Za upite i definiranje sheme podataka koristi se YQL jezik (YDB Query Language) koji je dijalekt SQL-a prilagođen za rad s velikim distribuiranim bazama podataka. Prilikom izrade sheme pohrane podržano je grupiranje tablica u obliku stabla, koje podsjeća na direktorije u sustavu datoteka. Za rad s podacima u JSON formatu postoji API.
    Yandex je otvorio kod za distribuirani DBMS YDB koji podržava SQL
  • Podrška za pristup podacima pomoću upita za skeniranje dizajniranih za izvođenje analitičkih ad-hoc upita u bazi podataka, koji se izvršavaju u načinu rada samo za čitanje i vraćaju grpc tok.
  • Interakcija s DBMS-om i slanje zahtjeva odvija se pomoću sučelja naredbenog retka, ugrađenog web sučelja ili YDB SDK-a koji nudi biblioteke za C++, C# (.NET), Go, Java, Node.js, PHP i Python.
  • Sposobnost stvaranja konfiguracija otpornih na greške koje nastavljaju raditi kada pojedinačni diskovi, čvorovi, police, pa čak i podatkovni centri zakažu. YDB podržava implementaciju i sinkronu replikaciju u tri zone dostupnosti, održavajući funkcionalnost klastera u slučaju kvara jedne od zona.
  • Automatski se oporavi od kvarova uz minimalnu latenciju za aplikacije i automatski održava zalihost navedenih podataka.
  • Automatsko kreiranje indeksa na temelju primarnog ključa i mogućnost definiranja sekundarnih indeksa za poboljšanje učinkovitosti pristupa proizvoljnim stupcima.
  • Horizontalna skalabilnost. Kako raste opterećenje i veličina pohranjenih podataka, klaster se može proširiti jednostavnim povezivanjem novih čvorova. Razine računanja i pohrane su odvojene, što vam omogućuje da zasebno proširite svoju računalnu snagu i veličinu pohrane. DBMS sam prati ravnomjernu raspodjelu podataka i opterećenja, uzimajući u obzir raspoložive hardverske resurse. Moguće je implementirati geografski raspodijeljene konfiguracije koje pokrivaju nekoliko podatkovnih centara u različitim dijelovima svijeta.
  • Podržava jak model dosljednosti i ACID transakcije pri obradi upita koji obuhvaćaju više čvorova i tablica. Da biste poboljšali izvedbu, možete selektivno onemogućiti provjeru dosljednosti.
  • Automatska replikacija podataka, automatsko particioniranje (particioniranje, dijeljenje) kada se veličina ili opterećenje poveća, te automatsko balansiranje opterećenja i podataka između čvorova.
  • Pohranjivanje podataka izravno na blok uređaje pomoću izvorne PDisk komponente i VDisk sloja. DSProxy radi povrh VDisk-a, koji analizira dostupnost i karakteristike performansi diskova kako bi ih eliminirao ako se otkriju problemi.
  • Fleksibilna arhitektura koja vam omogućuje stvaranje različitih usluga na vrhu YDB-a, uključujući virtualne blok uređaje i trajne redove čekanja. Prikladnost za različite vrste radnih opterećenja, OLTP i OLAP (analitički upiti).
  • Podrška za multitenant i konfiguracije bez poslužitelja. Mogućnost autentifikacije klijenta. Korisnici mogu kreirati svoje virtualne klastere i baze podataka u zajedničkoj zajedničkoj infrastrukturi, vodeći računa o potrošnji resursa na razini broja zahtjeva i veličine podataka ili iznajmljivanjem/rezervacijom određenih računalnih resursa i skladišnog prostora.
  • Mogućnost konfiguriranja životnog vijeka zapisa za automatsko uklanjanje zastarjelih podataka.

Izvor: opennet.ru

Dodajte komentar