Lansarea bazei de date distribuite TiDB 3.0

Disponibil lansarea unei baze de date distribuite TiDB 3.0, dezvoltată sub influența tehnologiilor Google Spanner și F1. 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 se răspândește 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, Gogs ș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 se pot utiliza diferite backend-uri, precum motoarele de stocare locale GoLevelDB și BoltDB sau propriul motor de stocare distribuită TiKV.
  • 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.

Principalele noutăți:

  • S-au efectuat lucrări pentru a crește performanța. În testul Sysbench, versiunea 3.0 depășește ramura 2.1 de 1.5 ori la execuția operațiunilor select și update, iar în testul TPC-C de 4.5 ori. Optimizările au vizat diferite tipuri de interogări, inclusiv subinterogări „IN”, „DO” și „NOT EXISTS”, operațiuni de îmbinare a tabelelor (JOIN), utilizarea indecșilor și multe altele;
    Lansarea bazei de date distribuite TiDB 3.0 Lansarea bazei de date distribuite TiDB 3.0
  • A fost adăugat un nou motor de stocare TiFlash, care permite obținerea unei performanțe mai mari în soluționarea sarcinilor analitice (OLAP), datorită stocării pe coloane. TiFlash completează stocarea anterioară TiKV, care stochează datele pe linii în format cheie/valoare și este mai optimizată pentru sarcinile de procesare a tranzacțiilor (OLTP). TiFlash funcționează alături de TiKV, iar datele continuă să fie replicate în TiKV folosind protocolul Raft pentru determinarea consensului, dar pentru fiecare grup de replici Raft se creează o replică suplimentară, care este utilizată în TiFlash. Această abordare permite o mai bună separare a resurselor între sarcinile OLTP și OLAP, precum și face datele tranzacțiilor imediat disponibile pentru interogări analitice;

    Lansarea bazei de date distribuite TiDB 3.0
  • A fost implementat un colector de gunoi distribuit, care permite creșterea semnificativă a vitezei de colectare a gunoiului în clustere mari și îmbunătățește stabilitatea lucrării;
  • A fost adăugată o implementare experimentală a sistemului de control al accesului bazat pe roluri (RBAC). De asemenea, s-a asigurat posibilitatea de a regla drepturile de acces pentru operațiunile ANALYZE, USE, SET GLOBAL și SHOW PROCESSLIST;
  • A fost adăugată posibilitatea de a folosi expresii SQL pentru selectarea din logul interogărilor lente;
  • A fost implementat un mecanism rapid de recuperare a tabelilor șterse, care permite recuperarea datelor șterse accidental;
  • Formatul jurnalelor scrise a fost unificat;
  • A fost adăugată suportul pentru modul de blocare pesimist, care face procesarea tranzacțiilor mai apropiată de MySQL;
  • A fost adăugat suport pentru funcții de fereastră (funcții de fereastră sau funcții analitice), compatibile cu MySQL 8.0. Funcțiile de fereastră permit executarea de calcule pentru fiecare rând de interogare folosind alte rânduri. Spre deosebire de funcțiile agregate, care comprimă un set de rânduri grupate într-un singur rând, funcțiile de fereastră efectuează agregarea pe baza conținutului „feronului”, ce include unul sau mai multe rânduri din setul rezultat. Printre funcțiile de fereastră implementate se numără:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE, LAST_VALUE, RANK, DENSE_RANK și ROW_NUMBER;
  • A fost adăugată suport experimental pentru vizualizări (VIEW);
  • Sistemul de partiționare a fost îmbunătățit, a fost adăugată posibilitatea de a distribui datele pe secțiuni pe baza intervalelor de valori sau a hash-urilor;
  • A fost adăugat un cadru pentru dezvoltarea plugin-urilor, de exemplu, plugin-uri pregătite pentru utilizarea listei albe de IP-uri sau pentru înregistrarea auditului;
  • S-a asigurat suport experimental pentru funcția „EXPLAIN ANALYZE” pentru generarea planului de execuție a interogărilor SQL (SQL Plan Management);
  • A fost adăugată comanda next_row_id pentru obținerea identificatorului următoarei rânduri;
  • Au fost adăugate funcții încorporate noi JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK, COALESCE și NAME_CONST.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster