izdanje distribuirane DBMS , razvijen pod utjecajem tehnologija Google i . TiDB pripada kategoriji hibridnih HTAP sustava (Hibridno Transakcijsko/Analitičko Procesiranje) koji su sposobni kako za izvršavanje transakcija u stvarnom vremenu (OLTP), tako i za analitička upitna obračunavanja. Projekt je napisan na jeziku Go i pod licencom Apache 2.0.
Značajke TiDB-a:
- Podrška za SQL i pružanje korisničkog sučelja kompatibilnog s MySQL protokolom, što olakšava prilagodbu postojećih aplikacija napisanim za MySQL za TiDB, kao i omogućuje korištenje popularnih klijentskih biblioteka. Osim MySQL protokola, za pristup DBMS-u može se koristiti API temeljen na JSON-u i konektor za Spark.
- Iz SQL mogućnosti podržavaju se indeksi, agregatne funkcije, izrazi GROUP BY, ORDER BY, DISTINCT, spojevi (LEFT JOIN / RIGHT JOIN / CROSS JOIN), prikazi, prozor funkcije i podupiti. Pružene mogućnosti su dovoljne za rad s TiDB u web-aplikacijama kao što su PhpMyAdmin, i WordPress;
- Mogućnost horizontalnog skaliranja i osiguranje otpornosti: kapacitet pohrane i računalnu snagu moguće je povećati jednostavnim dodavanjem novih čvorova. Podaci se distribuiraju po čvorovima s redundancijom koja omogućava nastavak rada u slučaju kvara pojedinih čvorova. Kvarovi se automatski obrađuju.
- Sustav jamči dosljednost i za klijentski softver izgleda kao jedna velika DBMS, iako se za izvršenje transakcija zapravo koriste podaci s više čvorova.
- Za fizičko pohranjivanje podataka na čvorovima mogu se koristiti različiti backendovi, na primjer, lokalni sustavi za pohranu GoLevelDB i BoltDB ili vlastiti sustavi distribuirane pohrane i TiFlash. TiKV pohranjuje podatke u presjeku redaka u formatu ključ/vrijednost i optimalniji je za zadatke obrade transakcija (OLTP). TiFlash pohranjuje podatke vezane uz stupce i omogućava postizanje veće izvedbe pri rješavanju analitičkih zadataka (OLAP).
- Mogućnost asinkrone promjene sheme pohrane, koja omogućava dodavanje stupaca i indeksa u hodu bez prekida obrade trenutnih operacija.
U novom izdanju:
- Zadano je da se uključi distribuirani sakupljač smeća Green GC, koji značajno povećava brzinu sakupljanja smeća u velikim klasterima i poboljšava stabilnost rada;
- Dodana je podrška za velike transakcije čija je veličina praktički ograničena fizičkom memorijom. Ograničenje veličine jedne transakcije povećano je sa 100 MB na 10 GB;
- Dodana je podrška za komande BACKUP i RESTORE za pravljenje rezervnih kopija;
- Dodana je mogućnost postavljanja zaključavanja na tablice;
- Dodan je mehanizam izolacije transakcija kompatibilan s MySQL na razini čitanja (READ COMMITTED);
- Tim 'ADMIN SHOW DDL JOBS' dobio je podršku za izraze LIKE i WHERE;
- Dodana je opcija oom-use-tmp-storage koja omogućava korištenje privremenih datoteka za keširanje međurezultata u uvjetima nedostatka radne memorije;
- Dodana je ključna riječ Random za dodjeljivanje nasumičnih vrijednosti atributima;
- Tim LOAD DATA sada omogućava korištenje heksadecimalnih i binarnih izraza;
- Dodano je 15 parametara za upravljanje ponašanjem optimizatora;
- Dodani su alati za dijagnosticiranje performansi SQL upita. Dodan je log sporih upita, dostupan kroz sistemske tablice SLOW_QUERY / CLUSTER_SLOW_QUERY;
- Dodana je podrška za funkcije za rad s sekvencama;
- Dodana je mogućnost dinamičke promjene parametara konfiguracije, čitajući ih iz PD (Placement Driver, poslužitelj za upravljanje klasterom). Dodana je mogućnost korištenja izraza 'SET CONFIG' za promjenu postavki PD/TiKV čvorova.
- Dodana je postavka max-server-connections za ograničavanje maksimalnog broja istovremenih konekcija na poslužitelj (zadano 4096);
- Povećana je učinkovitost u situacijama kada se traženi stupci potpuno pokrivaju indeksima;
- Dodana je optimizacija upita na osnovu spajanja indeksa;
- Povećana je učinkovitost operacija nad opsegom vrijednosti;
- Smanjeno je opterećenje CPU-a zahvaljujući keširanju rezultata pristupa indeksima i filtriranju duplikata;
- Dodana je podrška za novi format pohrane redaka, koji omogućava povećanje performansi tablica s velikim brojem stupaca;
- U funkciji GROUP_CONCAT sada je dostupna podrška za izraz 'ORDER BY';
- Dodana je mogućnost preuzimanja podataka iz loga TiFlash putem SQL-a;
- U timu „RECOVER TABLE“ implementirana je podrška za oporavak skraćenih tablica;
- Dodana je sistemska tablica DDLJobs za upit detalja o izvršenju DDL zadataka;
- Dodana je mogućnost primjene naredbe SHOW CONFIG za prikazivanje postavki PD i TiKV;
- zadano keširanje ko-procesora;
- Broj ko-procedura (goroutine) u fazi ponovljenih pokušaja potvrde sada se može kontrolirati putem postavke committer-concurrency;
- Dodana je mogućnost prikazivanja regija dijela tablica (table partition);
- U tidb-server dodana je mogućnost ograničavanja veličine privremene pohrane;
- Dodana je podrška za operacije „insert into tbl_name partition(partition_name_list)“ i „replace into tbl_name partition(partition_name_list)“;
- U korištenom heshu za particioniranje dodana je podrška za filtriranje po oznaci „is null“;
- Za particionirane tablice dodana je podrška za operacije provjere, čišćenja i oporavka indeksa.
Izvor: opennet.ru
