Izdanje distribuiranog DBMS TiDB 3.0

Dostupno izdanje distribuiranog DBMS-a TiDB 3.0, razvijena pod uticajem Google tehnologija Spanner и F1. TiDB spada u kategoriju hibridnih HTAP (Hybrid Transactional/Analytical Processing) sistema, sposobnih da obezbede transakcije u realnom vremenu (OLTP) i obradu analitičkih upita. Projekat je napisan na Go and distribuira licenciran pod Apache 2.0.

Karakteristike TiDB-a:

  • SQL podrška i obezbeđivanje klijentskog interfejsa kompatibilnog sa MySQL protokolom, što pojednostavljuje prilagođavanje postojećih aplikacija napisanih za MySQL na TiDB, a takođe omogućava korišćenje zajedničkih klijentskih biblioteka. Pored MySQL protokola, možete koristiti JSON baziran API i konektor za Spark za pristup DBMS-u.
  • SQL karakteristike podržavaju indekse, agregatne funkcije, izraze GROUP BY, ORDER BY, DISTINCT, spajanja (LEFT JOIN / RIGHT JOIN / CROSS JOIN), poglede, funkcije prozora i podupite. Obezbeđene mogućnosti su dovoljne za organizovanje rada sa TiDB za web aplikacije kao što su PhpMyAdmin, naočare i WordPress;
  • Horizontalna skalabilnost i tolerancija grešaka: veličina skladišta i procesorska snaga mogu se povećati jednostavnim povezivanjem novih čvorova. Podaci se distribuiraju preko čvorova sa redundantnošću, omogućavajući nastavak operacije ako pojedini čvorovi ne uspiju. Greške se obrađuju automatski.
  • Sistem garantuje konzistentnost i za klijentski softver izgleda kao jedan veliki DBMS, uprkos činjenici da se u stvari podaci iz mnogih čvorova privlače za završetak transakcije.
  • Za fizičko pohranjivanje podataka na čvorovima, mogu se koristiti različiti backendovi, na primjer, lokalni strojevi za pohranu GoLevelDB i BoltDB ili naš vlastiti distribuirani mehanizam za pohranu TiKV.
  • Mogućnost asinhrone promjene šeme skladištenja, omogućavajući vam da dodajete stupce i indekse u hodu bez zaustavljanja obrade tekućih operacija.

Glavni inovacije:

  • Radovi su obavljeni na povećanju produktivnosti. U Sysbench testu, izdanje 3.0 je 2.1 puta brže od grane 1.5 pri izvođenju operacija odabira i ažuriranja, a u TPC-C testu 4.5 puta. Optimizacije su utjecale na različite tipove upita, uključujući IN, DO i NOT EXISTS potupita, 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 TiFlash mehanizam za skladištenje koji omogućava veće performanse u rešavanju analitičkih problema (OLAP) zahvaljujući stubnoj memoriji. TiFlash nadopunjuje prethodno ponuđeno TiKV skladište, koje pohranjuje podatke u redovima u formatu ključ/vrijednost i idealnije je za zadatke obrade transakcija (OLTP). TiFlash radi uporedo sa TiKV-om i podaci nastavljaju da se repliciraju u TiKV kao i ranije korišćenjem Raft protokola za određivanje konsenzusa, ali za svaku grupu Raft replika kreira se dodatna replika koja se koristi u TiFlash-u. Ovaj pristup omogućava bolje dijeljenje resursa između OLTP i OLAP zadataka, a također čini podatke o transakcijama trenutno dostupnim za analitičke upite;

    Izdanje distribuiranog DBMS TiDB 3.0

  • Implementiran je distribuirani sakupljač smeća koji može značajno povećati brzinu sakupljanja smeća u velikim klasterima i poboljšati stabilnost;
  • Dodata je eksperimentalna implementacija kontrole pristupa zasnovanog na ulogama (RBAC). Također je moguće podesiti prava pristupa za operacije ANALIZA, KORISTI, POSTAVI GLOBALNO i PRIKAŽI PROCESSLIST;
  • Dodata mogućnost korištenja SQL izraza za izdvajanje sporih upita iz dnevnika;
  • Implementiran je mehanizam za brzo vraćanje izbrisanih tabela, koji vam omogućava da vratite slučajno izbrisane podatke;
  • Format evidentiranih dnevnika je unificiran;
  • Dodata podrška za pesimistički način zaključavanja, što obradu transakcija čini sličnijom MySQL-u;
  • Dodata podrška za funkcije prozora (prozorske funkcije ili analitičke funkcije) kompatibilne sa MySQL 8.0. Funkcije prozora vam omogućavaju da izvršite proračune za svaki red upita koristeći druge redove. Za razliku od agregatnih funkcija, koje skupljaju grupirani skup redova u jedan red, funkcije prozora se agregiraju na osnovu sadržaja „prozora“, koji uključuje jedan ili više redova 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;

  • Dodata eksperimentalna podrška za poglede (VIEW);
  • Poboljšan je sistem particioniranja, dodana je mogućnost distribucije podataka u sekcije na osnovu raspona vrijednosti ili hashova;
  • Dodan je okvir za razvoj dodataka, na primjer, dodaci su već pripremljeni za korištenje IP bijele liste ili održavanje evidencije revizije;
  • Osigurana je eksperimentalna podrška za funkciju “EXPLAIN ANALYZE” za izradu plana izvršenja za SQL upit (SQL Plan Management);
  • Dodata naredba next_row_id za dobivanje ID-a sljedećeg reda;
  • Dodane nove ugrađene funkcije JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK ,COALESCE i NAME_CONST.

izvor: opennet.ru

Dodajte komentar