lansarea unei baze de date distribuite , dezvoltată sub influența tehnologiilor Google și . TiDB face parte din categoria sistemelor hibride HTAP (Hybrid Transactional/Analytical Processing), capabile să execute atât tranzacții în timp real (OLTP), cât și să proceseze interogări analitice. Proiectul este scris în limbajul Go și sub licența Apache 2.0.
Caracteristici ale TiDB:
- Suport pentru SQL și furnizarea unei interfețe client compatibile cu protocolul MySQL, ceea ce facilitează adaptarea aplicațiilor existente pentru TiDB, scrise pentru MySQL, și permite utilizarea bibliotecilor client comune. Pe lângă protocolul MySQL, se poate folosi un API bazat pe JSON și un conector pentru Spark pentru a accesa baza de date.
- Printre caracteristicile SQL se numără indecșii, funcțiile agregate, expresiile GROUP BY, ORDER BY, DISTINCT, îmbinările (LEFT JOIN / RIGHT JOIN / CROSS JOIN), vizualizările, funcțiile de fereastră și subinterogările. Funcționalitățile oferite sunt suficiente pentru a organiza lucrul cu TiDB pentru aplicații web precum PhpMyAdmin, și WordPress;
- Posibilitatea scalării orizontale și asigurarea redundanței: dimensiunea stocării și puterea de calcul pot fi extinse prin simpla conectare a unor noi noduri. Datele sunt distribuite între noduri cu redundanță, permițând continuarea funcționării în caz de eroare a unor noduri. Defecțiunile sunt gestionate automat.
- Sistemul garantează consistența și pentru software-ul client apare ca o singură bază de date mare, cu toate că, de fapt, pentru executarea tranzacțiilor sunt implicate date de pe mai multe noduri.
- Pentru stocarea fizică a datelor pe noduri pot fi utilizate diferite backend-uri, cum ar fi motoarele de stocare locale GoLevelDB și BoltDB sau motoarele proprii de stocare distribuită. și TiFlash. TiKV stochează datele pe linii în format cheie/valoare și este mai optimizat pentru sarcini de procesare a tranzacțiilor (OLTP). TiFlash stochează datele în funcție de coloane și permite obținerea unei performanțe mai ridicate în cadrul sarcinilor analitice (OLAP).
- Posibilitatea de a modifica schema de stocare în mod asincron, permițând adăugarea de coloane și indecși în timpul desfășurării operațiunilor curente.
În noua versiune:
- Implicit, este activat colectorul de gunoi distribuit Green GC, care permite creșterea semnificativă a vitezei de colectare a gunoaiului în clustere mari și creșterea stabilității funcționării acesteia;
- A fost adăugată suportul pentru tranzacții mari, a căror dimensiune este practic limitată de dimensiunea memoriei fizice. Limitarea dimensiunii unei tranzacții a fost crescută de la 100 MB la 10GB;
- A fost adăugată suportul pentru comenzile BACKUP și RESTORE pentru realizarea copiilor de rezervă;
- A fost adăugată posibilitatea de a instala blocaje pe tabele;
- A fost adăugat un mecanism de izolare a tranzacțiilor compatibil cu MySQL, la nivel de citire (READ COMMITTED);
- În comanda „ADMIN SHOW DDL JOBS” a fost adăugată suportul pentru expresiile LIKE și WHERE;
- A fost adăugat parametru oom-use-tmp-storage, care permite utilizarea fișierelor temporare pentru a cache-a rezultatele intermediare în condiții de lipsă de memorie RAM;
- A fost adăugat cuvântul cheie Random pentru a atribui atributelor valori întâmplătoare;
- În comanda LOAD DATA a fost adăugată posibilitatea de a utiliza expresii hexazecimale și binare;
- Au fost adăugate 15 parametri pentru controlul comportamentului optimizatorului;
- Au fost adăugate instrumente pentru diagnosticarea performanței interogărilor SQL. A fost adăugat un log pentru interogările lente, disponibil prin intermediul tabelei sistemului SLOW_QUERY / CLUSTER_SLOW_QUERY;
- A fost adăugat suportul pentru funcții pentru lucrul cu secvențele;
- A fost adăugată posibilitatea de a schimba dinamic parametrii de configurare, citiți din PD (Placement Driver, serverul de management al clusterei). A fost adăugată posibilitatea de a utiliza expresia „SET CONFIG” pentru a schimba setările nodurilor PD/TiKV.
- A fost adăugată configurația max-server-connections pentru a limita numărul maxim de conexiuni simultane la server (implicit 4096);
- A fost crescută performanța în situațiile în care coloanele solicitate sunt complet acoperite de indecși;
- A fost adăugată optimizarea interogărilor pe baza fuziunii indecșilor.
- Performanța operațiunilor cu intervale de valori a fost îmbunătățită;
- Sarcina pe CPU a fost redusă datorită memorizării rezultatelor apelurilor la indecși și filtrării duplicatelor;
- A fost adăugată suport pentru un nou format de stocare a șirurilor, permițând îmbunătățirea performanței tabelelor cu un număr mare de coloane;
- Funcția GROUP_CONCAT a primit suport pentru expresia „ORDER BY”;
- A fost adăugată posibilitatea de a extrage date din jurnalul TiFlash prin SQL;
- Comanda „RECOVER TABLE” a fost îmbunătățită cu suport pentru recuperarea tabelelor tăiate;
- A fost adăugată o tabelă sistem DDLJobs pentru interogarea detaliilor despre execuția lucrărilor DDL;
- A fost adăugată posibilitatea de a utiliza comanda SHOW CONFIG pentru a arăta setările PD și TiKV;
- memoria cache a coprocessorului implicit;
- Numărul de coroutine în faza de retrial poate fi acum controlat prin configurația committer-concurrency;
- A fost adăugată posibilitatea de a afișa regiunile secțiunii tabelelor (table partition);
- În tidb-server a fost adăugată opțiunea de a limita dimensiunea stocării temporare;
- A fost adăugată suport pentru operațiuni „insert into tbl_name partition(partition_name_list)” și „replace into tbl_name partition(partition_name_list)”;
- În funcția de hash folosită pentru secționare a fost adăugat suport pentru filtrarea pe baza criteriului „is null”;
- Pentru tabelele secționate, a fost adăugată suport pentru operațiunile de verificare, curățare și recuperare a indicilor.
Sursa: opennet.ro
