Izplatītais DBMS TiDB 3.0 laidiens

Pieejams izplatīts DBVS laidiens TiDB3.0izstrādāts Google tehnoloģiju ietekmē Savilcējs и F1. TiDB pieder hibrīda HTAP (hibrīda transakciju/analītiskās apstrādes) sistēmu kategorijai, kas spēj gan nodrošināt reāllaika transakcijas (OLTP), gan apstrādāt analītiskos vaicājumus. Projekts ir rakstīts Go un izplata licencēts saskaņā ar Apache 2.0.

TiDB funkcijas:

  • Atbalsts SQL un klienta interfeisa nodrošināšana, kas ir saderīga ar MySQL protokolu, kas ļauj viegli pielāgot esošās MySQL rakstītās lietojumprogrammas TiDB, kā arī ļauj izmantot parastās klientu bibliotēkas. Papildus MySQL protokolam varat izmantot uz JSON balstītu API un Spark savienotāju, lai piekļūtu DBVS.
  • No SQL funkcijām tiek atbalstīti indeksi, apkopošanas funkcijas, GROUP BY, ORDER BY, DISTINCT izteiksmes, apvienojumi (LEFT JOIN / RIGHT JOIN / CROSS JOIN), skati, logu funkcijas un apakšvaicājumi. Ar sniegtajām iespējām pietiek, lai organizētu darbu ar TiDB tādām tīmekļa lietojumprogrammām kā PhpMyAdmin, Gogs un WordPress;
  • Mērogojamība un elastība: krātuves un apstrādes jaudu var palielināt, vienkārši pievienojot jaunus mezglus. Dati tiek sadalīti pa mezgliem ar dublēšanos, lai operācijas varētu turpināt, ja atsevišķi mezgli neizdodas. Kļūmes tiek apstrādātas automātiski.
  • Sistēma garantē konsekvenci un klienta programmatūrai izskatās kā viena liela DBVS, neskatoties uz to, ka darījuma pabeigšanai faktiski tiek izmantoti dati no daudziem mezgliem.
  • Fiziskai datu glabāšanai mezglos var izmantot dažādas aizmugursistēmas, piemēram, lokālos krātuves dzinējus GoLevelDB un BoltDB vai patentētu izplatīto krātuves programmu. TiKV.
  • Iespēja asinhroni mainīt krātuves shēmu, ļaujot lidojumā pievienot kolonnas un indeksus, neapturot notiekošo darbību apstrādi.

Galvenais jauninājumiem:

  • Ir veikts darbs, lai palielinātu produktivitāti. Sysbench testā 3.0 laidiens 2.1 reizes pārspēj 1.5 atzaru atlases un atjaunināšanas operācijās un TPC-C testā 4.5 reizes. Optimizācija ir ietekmējusi dažāda veida vaicājumus, tostarp "IN", "DO" un "NOT EXISTS" apakšvaicājumus, tabulu sapludināšanas darbības (JOIN), indeksu izmantošanu un daudz ko citu;
    Izplatītais DBMS TiDB 3.0 laidiensIzplatītais DBMS TiDB 3.0 laidiens

  • Ir pievienots jauns uzglabāšanas dzinējs TiFlash, lai panāktu labāku analītisko (OLAP) veiktspēju, izmantojot kolonnu krātuvi. TiFlash papildina iepriekš piedāvāto TiKV krātuvi, kas glabā datus rindu kontekstā atslēgas/vērtības formātā un ir vairāk piemērota transakciju apstrādes (OLTP) uzdevumiem. TiFlash darbojas līdzās TiKV, un dati turpina replicēt TiKV, tāpat kā iepriekš, izmantojot Raft protokolu, lai noteiktu vienprātību, taču katrai Raft kopiju grupai tiek izveidota un lietota TiFlash papildu kopija. Šāda pieeja ļauj labāk sadalīt resursus starp OLTP un OLAP uzdevumiem, kā arī padara darījumu datus uzreiz pieejamus analītiskiem vaicājumiem;

    Izplatītais DBMS TiDB 3.0 laidiens

  • Ir ieviests dalītais atkritumu savācējs, kas var būtiski palielināt atkritumu savākšanas ātrumu lielos klasteros un uzlabot stabilitāti;
  • Ir pievienota uz lomu balstītas piekļuves kontroles (RBAC) sistēmas eksperimentāla ieviešana. Ir iespējams arī iestatīt piekļuves tiesības operācijām ANALĪZĒT, IZMANTOT, SET GLOBAL un SHOW PROCESSLIST;
  • Pievienota iespēja izmantot SQL izteiksmes, lai iegūtu no lēnā vaicājuma žurnāla;
  • Ieviests mehānisms ātrai izdzēsto tabulu atkopšanai, ļaujot atgūt nejauši izdzēstos datus;
  • Vienots ierakstīto žurnālu formāts;
  • Pievienots atbalsts pesimistiskajam bloķēšanas režīmam, kas padara darījumu apstrādi tuvāku MySQL;
  • Pievienots atbalsts logu funkcijām (logu funkcijām vai analītiskām funkcijām), kas ir saderīgas ar MySQL 8.0. Logu funkcijas ļauj katrai vaicājuma rindai veikt aprēķinus, izmantojot citas rindas. Atšķirībā no apkopošanas funkcijām, kas sakļauj grupētu rindu kopu vienā rindā, logu funkcijas tiek apkopotas, pamatojoties uz "loga" saturu, kurā ir iekļauta viena vai vairākas rindas no rezultātu kopas. Starp ieviestajām loga funkcijām:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE, LAST_VALUE, RANK, DENSE_RANK un ROW_NUMBER;

  • Pievienots eksperimentāls atbalsts skatiem (SKATS);
  • Uzlabota sadalīšanas sistēma (sadalīšana), pievienota iespēja sadalīt datus sadaļās, pamatojoties uz vērtību diapazonu vai jaukšanu;
  • Pievienots ietvars spraudņu izstrādei, piemēram, spraudņi jau ir sagatavoti IP baltā saraksta vai audita reģistrēšanai;
  • Nodrošināts eksperimentāls atbalsts funkcijai EXPLAIN ANALYZE, lai izveidotu SQL vaicājumu izpildes plānu (SQL plāna pārvaldība);
  • Pievienota komanda next_row_id, lai iegūtu nākamās rindas ID;
  • Pievienotas jaunas iebūvētās funkcijas JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK, COALESCE un NAME_CONST.

Avots: opennet.ru

Pievieno komentāru