Izdanje distribuiranog DBMS TiDB 3.0

Dostupno izdanje distribuiranog DBMS-a TiDB 3.0, razvijen pod utjecajem Googleovih tehnologija ključ za matice и F1. TiDB pripada kategoriji hibridnih HTAP (Hybrid Transactional/Analytical Processing) sustava, sposobnih i za pružanje transakcija u stvarnom vremenu (OLTP) i za obradu analitičkih upita. Projekt je napisan u Go and distribuira licenciran pod Apache 2.0.

Značajke TiDB-a:

  • SQL podrška i pružanje klijentskog sučelja kompatibilnog s MySQL protokolom, što pojednostavljuje prilagodbu postojećih aplikacija napisanih za MySQL u TiDB, a također omogućuje korištenje uobičajenih klijentskih biblioteka. Uz MySQL protokol, možete koristiti API temeljen na JSON-u i konektor za Spark za pristup DBMS-u.
  • Značajke SQL-a podržavaju indekse, agregatne funkcije, GROUP BY, ORDER BY, DISTINCT izraze, spajanja (LEFT JOIN / RIGHT JOIN / CROSS JOIN), poglede, funkcije prozora i podupiti. Pružene mogućnosti dovoljne su za organizaciju rada s TiDB-om za takve web aplikacije kao što su PhpMyAdmin, GOGS i WordPress;
  • Horizontalna skalabilnost i otpornost na pogreške: veličina pohrane i procesorska snaga mogu se povećati jednostavnim povezivanjem novih čvorova. Podaci se distribuiraju preko čvorova s ​​redundancijom, što omogućuje nastavak rada ako pojedinačni čvorovi zakažu. Kvarovi se rješavaju automatski.
  • Sustav jamči konzistentnost i za klijentski softver izgleda kao jedan veliki DBMS, unatoč činjenici da se zapravo podaci iz mnogih čvorova privlače za dovršetak transakcije.
  • Za fizičko pohranjivanje podataka na čvorovima mogu se koristiti različiti backendovi, na primjer, lokalni pogoni za pohranu GoLevelDB i BoltDB ili naš vlastiti distribuirani mehanizam za pohranu TiKV.
  • Sposobnost asinkrone promjene sheme pohrane, što vam omogućuje dodavanje stupaca i indeksa u hodu bez zaustavljanja obrade tekućih operacija.

Glavni inovacije:

  • Radilo se na povećanju produktivnosti. U testu Sysbench, izdanje 3.0 je 2.1 puta brže od grane 1.5 pri izvođenju operacija odabira i ažuriranja, a u testu TPC-C 4.5 puta. Optimizacije su utjecale na razne vrste upita, uključujući IN, DO i NOT EXISTS podupiti, operacije spajanja tablica (JOIN), korištenje indeksa i još mnogo toga;
    Izdanje distribuiranog DBMS TiDB 3.0Izdanje distribuiranog DBMS TiDB 3.0

  • Dodan je novi mehanizam za pohranu TiFlash koji omogućuje veću izvedbu u rješavanju analitičkih problema (OLAP) zahvaljujući pohrani u stupcima. TiFlash nadopunjuje prethodno ponuđenu TiKV pohranu, koja pohranjuje podatke redom u formatu ključ/vrijednost i idealnija je za zadatke obrade transakcija (OLTP). TiFlash radi rame uz rame s TiKV-om i podaci se nastavljaju replicirati u TiKV kao i prije pomoću Raft protokola za određivanje konsenzusa, ali za svaku grupu Raft replika stvara se dodatna replika koja se koristi u TiFlashu. Ovaj pristup omogućuje bolje dijeljenje resursa između OLTP i OLAP zadataka, a također čini transakcijske podatke trenutačno dostupnima za analitičke upite;

    Izdanje distribuiranog DBMS TiDB 3.0

  • Implementiran je distribuirani skupljač smeća, koji može značajno povećati brzinu skupljanja smeća u velikim klasterima i poboljšati stabilnost;
  • Dodana je eksperimentalna implementacija kontrole pristupa temeljene na ulogama (RBAC). Također je moguće postaviti prava pristupa za operacije ANALIZIRAJ, KORISTI, POSTAVI GLOBALNO i PRIKAŽI POPIS PROCESA;
  • Dodana mogućnost korištenja SQL izraza za izdvajanje sporih upita iz dnevnika;
  • Implementiran je mehanizam za brzo vraćanje izbrisanih tablica, što vam omogućuje vraćanje slučajno izbrisanih podataka;
  • Unificiran je format snimljenih dnevnika;
  • Dodana podrška za pesimistički način zaključavanja, što obradu transakcije čini sličnijom MySQL-u;
  • Dodana podrška za prozorske funkcije (prozorske funkcije ili analitičke funkcije) kompatibilne s MySQL 8.0. Funkcije prozora omogućuju izračune za svaki redak upita pomoću drugih redaka. Za razliku od agregatnih funkcija, koje sažimaju grupirani skup redaka u jedan red, prozorske funkcije agregiraju na temelju sadržaja "prozora", koji uključuje jedan ili više redaka iz skupa rezultata. Među implementiranim funkcijama prozora:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE, LAST_VALUE, RANK, DENSE_RANK i ROW_NUMBER;

  • Dodana eksperimentalna podrška za poglede (VIEW);
  • Sustav particioniranja je poboljšan, dodana je mogućnost distribucije podataka u odjeljke na temelju raspona vrijednosti ili hashova;
  • Dodan je okvir za razvoj dodataka, na primjer, dodaci su već pripremljeni za korištenje popisa dopuštenih IP adresa ili održavanje revizijskog dnevnika;
  • Pružena je eksperimentalna podrška za funkciju “EXPLAIN ANALYZE” za izradu plana izvršenja za SQL upit (SQL Plan Management);
  • Dodana naredba next_row_id za dobivanje ID-a sljedećeg retka;
  • Dodane su nove ugrađene funkcije JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK, COALESCE i NAME_CONST.

Izvor: opennet.ru

Dodajte komentar