TiDB 3.0 hajutatud DBMS-i väljalase

Saadaval hajutatud DBMS-i väljalase TiDB 3.0, mis on välja töötatud Google'i tehnoloogiate mõjul Käepide и F1. TiDB kuulub hübriidsete HTAP (Hybrid Transactional/Analytical Processing) süsteemide kategooriasse, mis on võimelised pakkuma nii reaalajas tehinguid (OLTP) kui ka töötlema analüütilisi päringuid. Projekt on kirjutatud Go ja jaotatud litsentsitud Apache 2.0 alusel.

TiDB omadused:

  • SQL-i tugi ja MySQL-protokolliga ühilduva kliendiliidese pakkumine, mis lihtsustab olemasolevate MySQL-ile kirjutatud rakenduste kohandamist TiDB-ga ning võimaldab kasutada ka tavalisi klienditeeke. Lisaks MySQL-protokollile saate DBMS-ile juurdepääsuks kasutada Sparki jaoks JSON-põhist API-d ja konnektorit.
  • SQL-i funktsioonid toetavad indekseid, koondfunktsioone, GROUP BY, ORDER BY, DISTINCT avaldisi, liitmisi (LEFT JOIN / RIGHT JOIN / CROSS JOIN), vaateid, aknafunktsioone ja alampäringuid. Pakutavad võimalused on piisavad töö korraldamiseks TiDB-ga selliste veebirakenduste jaoks nagu PhpMyAdmin, Gogs ja WordPress;
  • Horisontaalne mastaapsus ja veataluvus: salvestusmahtu ja töötlemisvõimsust saab suurendada lihtsalt uute sõlmede ühendamisega. Andmed jaotatakse sõlmede vahel liiasusega, mis võimaldab üksikute sõlmede rikke korral toimimist jätkata. Tõrkeid käsitletakse automaatselt.
  • Süsteem tagab järjepidevuse ja klienttarkvara jaoks näeb see välja nagu üks suur DBMS, hoolimata asjaolust, et tehingu lõpuleviimiseks meelitatakse andmeid paljudest sõlmedest.
  • Andmete füüsiliseks salvestamiseks sõlmedesse saab kasutada erinevaid taustaprogramme, näiteks kohalikke salvestusmootoreid GoLevelDB ja BoltDB või meie enda hajutatud salvestusmootorit TiKV.
  • Võimalus asünkroonselt muuta salvestusskeemi, mis võimaldab teil veerge ja indekseid käigult lisada ilma käimasolevate toimingute töötlemist peatamata.

Kõik uuendused:

  • Tööd on tehtud tootlikkuse tõstmiseks. Sysbenchi testis on väljalase 3.0 valiku- ja värskendamistoimingute tegemisel 2.1 korda kiirem kui 1.5 haru ning TPC-C testis 4.5 korda. Optimeerimised on mõjutanud erinevat tüüpi päringuid, sealhulgas alampäringuid IN, DO ja NOT EXISTS, tabelite ühendamise (JOIN) toiminguid, indeksite kasutamist ja palju muud;
    TiDB 3.0 hajutatud DBMS-i väljalaseTiDB 3.0 hajutatud DBMS-i väljalase

  • Lisati uus TiFlash-salvestusmootor, mis võimaldab tänu veerukujulisele salvestusele suuremat jõudlust analüütiliste probleemide lahendamisel (OLAP). TiFlash täiendab varem pakutud TiKV salvestusruumi, mis salvestab reapõhised andmed võtme/väärtuse formaadis ja sobib ideaalselt tehingute töötlemise ülesannete (OLTP) jaoks. TiFlash töötab TiKV-ga kõrvuti ja andmeid kopeeritakse jätkuvalt TiKV-sse nagu enne Raft-protokolli kasutamist konsensuse kindlakstegemiseks, kuid iga Raft-koopiate rühma jaoks luuakse täiendav koopia, mida TiFlashis kasutatakse. See lähenemine võimaldab OLTP- ja OLAP-ülesannete vahel paremini ressursse jagada ning muudab tehinguandmed analüütiliste päringute jaoks kohe kättesaadavaks;

    TiDB 3.0 hajutatud DBMS-i väljalase

  • Rakendatud on hajaprügikoristaja, millega saab suurtes klastrites oluliselt tõsta prügiveo kiirust ja parandada stabiilsust;
  • Lisatud on rollipõhise juurdepääsukontrolli (RBAC) eksperimentaalne rakendus. Samuti on võimalik määrata juurdepääsuõigusi operatsioonidele ANALÜÜS, KASUTAMINE, SET GLOBAL ja SHOW PROCESSLIST;
  • Lisatud võimalus kasutada logist aeglaste päringute eraldamiseks SQL-i väljendeid;
  • Rakendatud on mehhanism kustutatud tabelite kiireks taastamiseks, mis võimaldab teil kogemata kustutatud andmeid taastada;
  • Salvestatud logide formaat on ühtlustatud;
  • Lisatud pessimistliku lukustusrežiimi tugi, mis muudab tehingute töötlemise MySQL-iga sarnasemaks;
  • Lisatud tugi MySQL 8.0-ga ühilduvatele aknafunktsioonidele (aknafunktsioonid või analüütilised funktsioonid). Aknafunktsioonid võimaldavad teha arvutusi iga päringurea jaoks, kasutades teisi ridu. Erinevalt koondfunktsioonidest, mis ahendavad rühmitatud ridade komplekti üheks reaks, koonduvad aknafunktsioonid "akna" sisu alusel, mis sisaldab tulemuskomplektist ühte või mitut rida. Rakendatud aknafunktsioonide hulgas:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE, LAST_VALUE, RANK, DENSE_RANK ja ROW_NUMBER;

  • Lisatud vaadete eksperimentaalne tugi (VIEW);
  • Jaotussüsteemi on täiustatud, lisatud on võimalus jagada andmeid väärtuste või räsivahemike alusel sektsioonidesse;
  • Lisatud on raamistik pluginate arendamiseks, näiteks on juba ette valmistatud pluginad IP valge nimekirja kasutamiseks või auditilogi pidamiseks;
  • Eksperimentaalset tuge on pakutud funktsioonile „EXPLAIN ANALYZE” SQL-päringu täitmisplaani koostamiseks (SQL plaani haldamine);
  • Järgmise rea ID saamiseks on lisatud käsk next_row_id;
  • Lisati uued sisseehitatud funktsioonid JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK, COALESCE ja NAME_CONST.

Allikas: opennet.ru

Lisa kommentaar