Shpërndarja e DBMS TiDB 3.0 Release

Në dispozicion lëshimi i shpërndarë i DBMS TiDB3.0zhvilluar nën ndikimin e teknologjive të Google çelës и F1. TiDB i përket kategorisë së sistemeve hibride HTAP (Hybrid Transactional/Analytical Processing) të afta për të ofruar transaksione në kohë reale (OLTP) dhe për të përpunuar pyetje analitike. Projekti është shkruar në Shko dhe shperndare nga licencuar sipas Apache 2.0.

Karakteristikat e TiDB:

  • Mbështetja për SQL dhe sigurimi i një ndërfaqeje klienti që është në përputhje me protokollin MySQL, gjë që e bën të lehtë përshtatjen e aplikacioneve ekzistuese të shkruara për MySQL në TiDB, dhe gjithashtu ju lejon të përdorni bibliotekat e zakonshme të klientëve. Përveç protokollit MySQL, mund të përdorni API-në e bazuar në JSON dhe lidhësin për Spark për të hyrë në DBMS.
  • Nga veçoritë e SQL, mbështeten indekset, funksionet agregate, GROUP BY, RORDER BY, shprehjet e dallueshme, bashkimet (LEFT JOIN / RIGHT JOIN / CROSS JOIN), pamjet, funksionet e dritares dhe pyetjet e nënshtruara. Mundësitë e ofruara janë të mjaftueshme për të organizuar punën me TiDB të aplikacioneve të tilla në internet si PhpMyAdmin, Gogë dhe WordPress;
  • Zvogëlimi dhe elasticiteti: Fuqia e ruajtjes dhe përpunimit mund të rritet thjesht duke shtuar nyje të reja. Të dhënat shpërndahen nëpër nyje me tepricë për të lejuar që operacionet të vazhdojnë nëse nyjet individuale dështojnë. Dështimet trajtohen automatikisht.
  • Sistemi garanton qëndrueshmëri dhe duket si një DBMS e madhe për softuerin e klientit, pavarësisht nga fakti se të dhënat nga shumë nyje përdoren në të vërtetë për të përfunduar transaksionin.
  • Backends të ndryshëm mund të përdoren për ruajtjen fizike të të dhënave në nyje, për shembull, motorët lokalë të ruajtjes GoLevelDB dhe BoltDB ose një motor ruajtjeje të shpërndarë në pronësi TiKV.
  • Aftësia për të ndryshuar në mënyrë asinkrone skemën e ruajtjes, duke ju lejuar të shtoni kolona dhe indekse në fluturim pa ndalur përpunimin e operacioneve në vazhdim.

Kryesore risitë:

  • Është bërë punë për rritjen e produktivitetit. Në testin Sysbench, lëshimi 3.0 tejkalon degën 2.1 me 1.5 herë në operacionet e përzgjedhjes dhe përditësimit, dhe në testin TPC-C me 4.5 herë. Optimizimet kanë ndikuar në lloje të ndryshme pyetjesh, duke përfshirë nënpyetjet "IN", "DO" dhe "NUK EKZISTON", operacionet e bashkimit të tabelave (JOIN), përdorimin e indekseve dhe më shumë;
    Shpërndarja e DBMS TiDB 3.0 ReleaseShpërndarja e DBMS TiDB 3.0 Release

  • Një motor i ri ruajtjeje, TiFlash, është shtuar për të arritur performancë më të mirë analitike (OLAP) përmes ruajtjes së lidhur me kolona. TiFlash plotëson hapësirën ruajtëse të ofruar më parë të TiKV, e cila ruan të dhënat në kontekstin e rreshtave në formatin kyç/vlerë dhe është më i përshtatshëm për detyrat e përpunimit të transaksioneve (OLTP). TiFlash punon krah për krah me TiKV dhe të dhënat vazhdojnë të riprodhohen në TiKV si më parë duke përdorur protokollin Raft për të përcaktuar konsensusin, por për secilin grup të kopjeve të Raft krijohet një kopje shtesë dhe përdoret në TiFlash. Një qasje e tillë lejon një ndarje më të mirë të burimeve midis detyrave OLTP dhe OLAP, dhe gjithashtu i bën të dhënat e transaksioneve të disponueshme menjëherë për pyetje analitike;

    Shpërndarja e DBMS TiDB 3.0 Release

  • Është implementuar një grumbullues i shpërndarë mbeturinash, i cili mund të rrisë ndjeshëm shpejtësinë e grumbullimit të mbeturinave në grupime të mëdha dhe të përmirësojë stabilitetin;
  • Është shtuar një zbatim eksperimental i sistemit të kontrollit të aksesit të bazuar në role (RBAC). Është gjithashtu e mundur të caktohen të drejtat e aksesit për operacionet ANALYZE, USE, SET GLOBAL dhe SHOW PROCESSLIST;
  • U shtua aftësia për të përdorur shprehjet SQL për të nxjerrë nga regjistri i ngadaltë i pyetjeve;
  • Zbatoi një mekanizëm për rikuperimin e shpejtë të tabelave të fshira, duke ju lejuar të rikuperoni të dhënat e fshira aksidentalisht;
  • Formati i unifikuar i regjistrave të regjistruar;
  • Mbështetje e shtuar për mënyrën e mbylljes pesimiste, e cila e bën përpunimin e transaksioneve më afër MySQL;
  • Mbështetje e shtuar për funksionet e dritareve (funksionet e dritares ose funksionet analitike) të pajtueshme me MySQL 8.0. Funksionet e dritares lejojnë që çdo rresht i një pyetjeje të kryejë llogaritjet duke përdorur rreshta të tjerë. Ndryshe nga funksionet agregate, të cilat kolapsin një grup të grupuar rreshtash në një rresht të vetëm, funksionet e dritares grumbullohen bazuar në përmbajtjen e një "dritare" që përfshin një ose më shumë rreshta nga grupi i rezultateve. Ndër funksionet e implementuara të dritares:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE , LAST_VALUE, RANK, DENSE_RANK dhe ROW_NUMBER;

  • U shtua mbështetje eksperimentale për pamjet (VIEW);
  • Sistemi i përmirësuar i ndarjes (ndarja), shtoi aftësinë për të shpërndarë të dhëna në seksione bazuar në një sërë vlerash ose hash;
  • U shtua një kornizë për zhvillimin e shtojcave, për shembull, shtojcat tashmë janë përgatitur për të përdorur listën e bardhë të IP ose regjistrimin e auditimit;
  • Ofroi mbështetje eksperimentale për funksionin "EXPLAIN ANALYZE" për ndërtimin e një plani ekzekutimi të pyetjeve SQL (SQL Plan Management);
  • U shtua komanda next_row_id për të marrë ID-në e rreshtit tjetër;
  • U shtuan funksione të reja të integruara JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK ,COALESCE dhe NAME_CONST.

Burimi: opennet.ru

Shto një koment