Vrystelling van die verspreide DBMS TiDB 3.0

Beskikbaar vrystelling van 'n verspreide DBBS TiDB 3.0, ontwikkel onder die invloed van Google-tegnologie Spanner и F1. TiDB behoort aan die kategorie van hibriede HTAP (Hybrid Transactional/Analitical Processing) stelsels, wat in staat is om beide intydse transaksies (OLTP) te verskaf en analitiese navrae te verwerk. Die projek is geskryf in Gaan en versprei deur gelisensieer onder Apache 2.0.

Kenmerke van TiDB:

  • SQL-ondersteuning en voorsiening van 'n kliëntkoppelvlak wat versoenbaar is met die MySQL-protokol, wat die aanpassing van bestaande toepassings wat vir MySQL geskryf is na TiDB vereenvoudig, en ook die gebruik van algemene kliëntbiblioteke toelaat. Benewens die MySQL-protokol, kan jy 'n JSON-gebaseerde API en 'n verbinding vir Spark gebruik om toegang tot die DBMS te verkry.
  • SQL-kenmerke ondersteun indekse, saamgevoegde funksies, GROUP BY, ORDER BY, DISTINCT uitdrukkings, samesmeltings (LEFT JOIN / RIGHT JOIN / CROSS JOIN), aansigte, vensterfunksies en subnavrae. Die verskafde vermoëns is voldoende om werk met TiDB te organiseer vir webtoepassings soos PhpMyAdmin, bril en WordPress;
  • Horisontale skaalbaarheid en fouttoleransie: bergingsgrootte en verwerkingskrag kan verhoog word deur eenvoudig nuwe nodusse te koppel. Data word oor nodusse versprei met oortolligheid, wat die werking toelaat om voort te gaan as individuele nodusse misluk. Mislukkings word outomaties hanteer.
  • Die stelsel waarborg konsekwentheid en vir die kliëntsagteware lyk dit soos een groot DBBS, ten spyte van die feit dat data van baie nodusse in werklikheid gelok word om die transaksie te voltooi.
  • Om data fisies op nodusse te stoor, kan verskillende backends gebruik word, byvoorbeeld plaaslike bergingsenjins GoLevelDB en BoltDB of ons eie verspreide bergingsenjin TiKV.
  • Die vermoë om die bergingskema asinchronies te verander, sodat u kolomme en indekse dadelik kan byvoeg sonder om die verwerking van deurlopende bedrywighede te stop.

Die belangrikste innovasies:

  • Werk is gedoen om produktiwiteit te verhoog. In die Sysbench-toets is vrystelling 3.0 2.1 keer vinniger as die 1.5-tak wanneer kies- en opdateringbewerkings uitgevoer word, en in die TPC-C-toets 4.5 keer. Optimalisasies het verskeie tipes navrae beïnvloed, insluitend IN-, DOEN- en NIE BESTAAN-subnavrae, tabelsamevoegings- (SKOON)-bewerkings, die gebruik van indekse en nog baie meer;
    Vrystelling van die verspreide DBMS TiDB 3.0Vrystelling van die verspreide DBMS TiDB 3.0

  • 'n Nuwe TiFlash-bergingsenjin bygevoeg wat groter werkverrigting in die oplossing van analitiese probleme (OLAP) moontlik maak danksy kolomberging. TiFlash vul die voorheen aangebied TiKV-berging aan, wat rygewys data in 'n sleutel/waarde-formaat stoor en meer ideaal is vir transaksieverwerkingstake (OLTP). TiFlash werk sy aan sy met TiKV en data word steeds na TiKV gerepliseer soos voorheen deur die Raft-protokol te gebruik om konsensus te bepaal, maar vir elke groep Raft-replikas word 'n bykomende replika geskep wat in TiFlash gebruik word. Hierdie benadering maak voorsiening vir beter hulpbrondeling tussen OLTP- en OLAP-take, en maak ook transaksiedata onmiddellik beskikbaar vir analitiese navrae;

    Vrystelling van die verspreide DBMS TiDB 3.0

  • ’n Verspreide vullisverwyderaar is geïmplementeer, wat die spoed van vullisversameling in groot trosse aansienlik kan verhoog en stabiliteit kan verbeter;
  • 'n Eksperimentele implementering van Rolgebaseerde Toegangsbeheer (RBAC) is bygevoeg. Dit is ook moontlik om toegangsregte in te stel vir die ANALISEER, GEBRUIK, STEL GLOBAL en WYS PROSESLYS bedrywighede;
  • Bygevoeg die vermoë om SQL uitdrukkings te gebruik om stadige navrae uit die log te onttrek;
  • 'n Meganisme om geskrap tabelle vinnig te herstel is geïmplementeer, wat jou toelaat om data wat per ongeluk geskrap is te herstel;
  • Die formaat van aangetekende logs is verenig;
  • Bygevoeg ondersteuning vir pessimistiese sluitmodus, wat transaksieverwerking meer soortgelyk aan MySQL maak;
  • Bygevoeg ondersteuning vir venster funksies (venster funksies of analitiese funksies) versoenbaar is met MySQL 8.0. Vensterfunksies laat jou toe om berekeninge vir elke navraagry uit te voer deur ander rye te gebruik. Anders as saamgevoegde funksies, wat 'n gegroepeerde stel rye in 'n enkele ry ineenstort, word vensterfunksies saamgevoeg op grond van die inhoud van 'n "venster", wat een of meer rye uit die resultaatstel insluit. Onder die geïmplementeerde vensterfunksies:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE, LAST_VALUE, RANK, DENSE_RANK en ROW_NUMBER;

  • Bygevoeg eksperimentele ondersteuning vir aansigte (VIEW);
  • Die partisiestelsel is verbeter, die vermoë om data in afdelings te versprei gebaseer op 'n reeks waardes of hashes is bygevoeg;
  • 'n Raamwerk vir die ontwikkeling van plugins is bygevoeg, byvoorbeeld, plugins is reeds voorberei vir die gebruik van 'n IP-witlys of die instandhouding van 'n ouditlogboek;
  • Eksperimentele ondersteuning is verskaf vir die “VERDUIDELIK ANALISE”-funksie vir die opstel van 'n uitvoeringsplan vir 'n SQL-navraag (SQL-planbestuur);
  • Next_row_id-opdrag bygevoeg om die ID van die volgende ry te kry;
  • Bygevoeg nuwe ingeboude funksies JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK, COALESCE en NAME_CONST.

Bron: opennet.ru

Voeg 'n opmerking