vydanie distribuovanej DBMS , vyvíjanej pod vplyvom technológií Google a . TiDB patrí do kategórie hybridných systémov HTAP (Hybrid Transactional/Analytical Processing), ktoré sú schopné zabezpečovať vykonávanie transakcií v reálnom čase (OLTP) a spracovanie analytických dopytov. Projekt je napísaný v jazyku Go a pod licenciou Apache 2.0.
Vlastnosti TiDB:
- Podpora SQL a poskytnutie klientského rozhrania kompatibilného s protokolom MySQL, čo zjednodušuje adaptáciu existujúcich aplikácií pre TiDB napísaných pre MySQL, a tiež umožňuje využitie rozšírených klientských knižníc. Okrem protokolu MySQL možno na prístup k DBMS použiť API založené na JSON a konektor pre Spark.
- Medzi podporované funkcie SQL patrí indexovanie, agregačné funkcie, výrazy GROUP BY, ORDER BY, DISTINCT, spájanie (LEFT JOIN / RIGHT JOIN / CROSS JOIN), pohľady, oknové funkcie a poddotazy. Poskytované možnosti sú dostatočné na organizáciu práce s TiDB v takých webových aplikáciách ako PhpMyAdmin, a WordPress;
- Možnosť horizontálneho škálovania a zabezpečenia odolnosti voči poruchám: kapacitu úložiska a výpočtový výkon je možné zvýšiť jednoduchým pripojením nových uzlov. Údaje sú distribuované medzi uzlami s redundanciou, ktorá umožňuje pokračovanie v práci v prípade zlyhania jednotlivých uzlov. Zlyhania sú spracovávané automaticky.
- Systém zaručuje konzistentnosť a pre klientský softvér vyzerá ako jedna veľká DBMS, aj keď fakticky na vykonanie transakcií sú zapojené údaje z viacerých uzlov.
- Na fyzické ukladanie údajov na uzloch sa môžu používať rôzne backendy, napríklad lokálne úložné motory GoLevelDB a BoltDB alebo vlastné motory distribuovaného úložiska a TiFlash. TiKV ukladá údaje v reze riadkov formátom kľúč/hodnota a je optimálnejší na úlohy spracovania transakcií (OLTP). TiFlash ukladá údaje v nasadení ku stĺpcom a umožňuje dosiahnuť vyššiu výkonnosť pri riešení analytických úloh (OLAP).
- Možnosť asynchrónnej zmeny schémy uloženia, ktorá umožňuje naživo pridávať stĺpce a indexy bez zastavenia spracovania aktuálnych operácií.
V novom vydaní:
- Predvolený adaptívny zberač odpadu Green GC je povolený, čo výrazne zvyšuje rýchlosť zhromažďovania odpadu vo veľkých klastra a zvyšuje stabilitu práce;
- Pridaná podpora pre veľké transakcie, ktorých veľkosť je prakticky obmedzená kapacitou fyzickej pamäte. Obmedzenie veľkosti jednej transakcie bolo zvýšené z 100 MB na 10 GB;
- Pridaná podpora príkazov BACKUP a RESTORE na zálohovanie;
- Pridaná možnosť nastavenia zámkov na tabuľky;
- Pridaný mechanizmus izolácie transakcií kompatibilný s MySQL na úrovni čítania (READ COMMITTED);
- Do príkazu „ADMIN SHOW DDL JOBS“ bola pridaná podpora pre výrazy LIKE a WHERE;
- Pridaný parameter oom-use-tmp-storage, ktorý umožňuje používať dočasné súbory na vyrovnávanie medzikrokov v prípade nedostatku operačnej pamäte;
- Pridané kľúčové slovo Random na priradenie náhodných hodnôt atribútom;
- V príkaze LOAD DATA pribudla možnosť používať hexadecimálne a binárne výrazy;
- Pridaných 15 parametrov na riadenie správania optimalizátora;
- Pridané nástroje na diagnostiku výkonu SQL dopytov. Pridaný log pomalých dopytov, dostupný cez systémové tabuľky SLOW_QUERY / CLUSTER_SLOW_QUERY;
- Pridaná podpora funkcií na prácu so sekvenciami;
- Pridaná možnosť dynamicky meniť konfiguračné parametre čítané z PD (Placement Driver, server na správu klastra). Pridaná možnosť používať výraz „SET CONFIG“ na zmenu nastavení uzlov PD/TiKV;
- Pridané nastavenie max-server-connections na obmedzenie maximálneho počtu súčasných pripojení k serveru (predvolene 4096);
- Zvýšený výkon v situáciách, keď sú požadované stĺpce úplne pokryté indexmi;
- Pridaná optimalizácia dopytov na základe zlúčenia indexov;
- Zvýšený výkon operácií s rozmedziami hodnôt;
- Znížená záťaž na CPU vďaka vyrovnávaniu výsledkov získaných z indexov a filtrovaním duplicitných hodnôt;
- Pridaná podpora nového formátu ukladania reťazcov, ktorý zvyšuje výkon tabuliek s veľkým počtom stĺpcov;
- Vo funkcii GROUP_CONCAT pribudla podpora pre výraz „ORDER BY“;
- Pridaná možnosť extrahovať údaje z logu TiFlash cez SQL;
- V tíme «RECOVER TABLE bola implementovaná podpora obnovy orezaných tabuliek;
- Pridaná systémová tabuľka DDLJobs na dotazovanie podrobností o vykonávaní prác DDL;
- Pridaná možnosť aplikovania príkazu SHOW CONFIG na zobrazenie nastavení PD a TiKV;
- predvolené cache spolupracovníka;
- Počet spoluprogramov (goroutine) vo fáze opakovaných pokusov o commit je teraz možné kontrolovať pomocou nastavenia committer-concurrency;
- Pridaná možnosť zobraziť regióny oddielu tabuliek (table partition);
- Do tidb-server bola pridaná možnosť obmedzenia veľkosti dočasného úložiska;
- Pridaná podpora operácií „insert into tbl_name partition(partition_name_list)“ a „replace into tbl_name partition(partition_name_list)“;
- Pri použití pre sekcionovanie (particionovanie) hrachu bola pridaná podpora filtrovania podľa atribútu „is null“;
- Pre sekcionované tabuľky bola pridaná podpora operácií overovania, čistenia a obnovy indexov.
Zdroj: opennet.ru
