lëshimi i DB të shpërndarë , i zhvilluar nën ndikimin e teknologjive Google dhe . TiDB i përket kategorisë së sistemeve hibride HTAP (Hybrid Transactional/Analytical Processing), të cilat janë në gjendje të sigurojnë realizimin e transaksioneve në kohë reale (OLTP) dhe të realizojnë përpunimin e pyetjeve analitike. Projekti është shkruar në gjuhën Go dhe nën licencën Apache 2.0.
Karakteristikat e TiDB:
- Mbështetje për SQL dhe ofrimi i një ndërfaqeje klienti, përputhshëm me protokollin MySQL, çka e bën adaptimin për TiDB të aplikacioneve ekzistuese që janë shkruar për MySQL më të lehtë, si dhe lejon përdorimin e bibliotekave të njohura të klientëve. Përveç protokollit MySQL, mund të përdoret API me bazë JSON dhe një lidhës për Spark për të aksesuar DB.
- Nga mundësitë e SQL mbështeten indekset, funksionet agregate, shprehjet GROUP BY, ORDER BY, DISTINCT, bashkëtitë (LEFT JOIN / RIGHT JOIN / CROSS JOIN), pamjet, funksionet e dritarave dhe nënpyetjet. Mundësitë e ofruara janë të mjaftueshme për të organizuar punën me TiDB të aplikacioneve web si PhpMyAdmin, dhe WordPress;
- Mundësia për skalim horizontal dhe sigurimin e qëndrueshmërisë: madhësia e magazinës dhe fuqia llogaritëse mund të zgjaten thjesht duke lidhur nyje të reja. Të dhënat shpërndahen nëpër nyje me tepërsi, duke lejuar vazhdimin e punës në rastin e dështimeve të nyjeve të veçanta. Dështimet trajtohen automatikisht.
- Sistemi garanton konsistencën dhe për softuerin e klientit duket si një bazë e dhënash e madhe, ndonëse në të vërtetë për ekzekutimin e transaksioneve përfshihen të dhëna nga shumë nyje.
- Për ruajtjen fizike të të dhënave në nyje, mund të përdoren backend të ndryshme, të tilla si motorët e ruajtjes lokale GoLevelDB dhe BoltDB, ose motorët e vetë ruajtjes të shpërndarë dhe TiFlash. TiKV ruan të dhënat në formatin çelës/vlerë në përpjesëtim të rreshtave dhe është më optimal për detyra të përpunimit të transaksioneve (OLTP). TiFlash ruan të dhënat në lidhje me kolona dhe lejon arritjen e performancës më të lartë për zgjidhjen e detyrave analitike (OLAP).
- Mundësia për ndryshime asinkrone në skemën e ruajtjes, duke lejuar shtimin e kolonave dhe indekseve në fluks pa ndaluar përpunimin e operacioneve aktuale.
Në lëshimin e ri:
- Me default aktivizohet mbledhësi i shpërndarë i mbetjeve Green GC, që lejon një rritje të konsiderueshme të shpejtësisë së mbledhjes së mbetjeve në klasterë të mëdhenj dhe rrit stabilitetin e funksionimit;
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r transaksione tĂ« mĂ«dha, tĂ« cilat janĂ« tĂ« kufizuara praktikisht nga madhĂ«sia e memories fizike. Kufiri i madhĂ«sisĂ« sĂ« njĂ« transaksioni Ă«shtĂ« rritur nga 100 MB nĂ« 10 GB;
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r komandat BACKUP dhe RESTORE pĂ«r rezervimin e tĂ« dhĂ«nave;
- ĂshtĂ« shtuar mundĂ«sia pĂ«r vendosjen e bllokimeve nĂ« tabela;
- ĂshtĂ« shtuar njĂ« mekanizĂ«m i izolimit tĂ« transaksioneve tĂ« pĂ«rputhshme me MySQL nĂ« nivelin e leximit (READ COMMITTED);
- Në komandën «ADMIN SHOW DDL JOBS» është shtuar mbështetje për shprehjet LIKE dhe WHERE;
- ĂshtĂ« shtuar parametri oom-use-tmp-storage, qĂ« lejon pĂ«rdorimin e skedarĂ«ve pĂ«r tĂ« pĂ«rkohshĂ«m pĂ«r ruajtjen e rezultateve tĂ« ndĂ«rmjetme nĂ« kushte tĂ« mungesĂ«s sĂ« memories operative;
- ĂshtĂ« shtuar fjala kyçe Random pĂ«r t'i dhĂ«nĂ« atributeve vlera rastĂ«sore;
- Në komandën LOAD DATA është shtuar mundësia për të përdorur shprehje të gjashtëkëndshme dhe binarë;
- ĂshtĂ« shtuar 15 parametra pĂ«r menaxhimin e sjelljes sĂ« optimizuesit;
- ĂshtĂ« shtuar mjet pĂ«r diagnostikimin e performancĂ«s sĂ« kĂ«rkesave SQL. ĂshtĂ« shtuar njĂ« log i kĂ«rkesave tĂ« ngadalta, i aksesueshĂ«m pĂ«rmes tabelave sistemike SLOW_QUERY / CLUSTER_SLOW_QUERY;
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r funksione pĂ«r punĂ« me sekuenca;
- ĂshtĂ« shtuar mundĂ«sia e ndryshimit dinamik tĂ« parametrave tĂ« konfigurimit, tĂ« lexuar nga PD (Driver i Vendosjes, serverin menaxhues tĂ« klasterit). ĂshtĂ« shtuar mundĂ«sia e pĂ«rdorimit tĂ« shprehjes «SET CONFIG» pĂ«r tĂ« ndryshuar cilĂ«simet e nyjeve PD/TiKV.
- ĂshtĂ« shtuar cilĂ«simi max-server-connections pĂ«r tĂ« kufizuar numrin maksimal tĂ« lidhjeve tĂ« njĂ«kohshme me serverin (me default 4096);
- është rritur performanca në situata kur kolona të kërkuara mbulohen plotësisht nga indeksat;
- ĂshtĂ« shtuar optimizimi i kĂ«rkesave mbi bazĂ«n e bashkimit tĂ« indeksave;
- është rritur performanca e operacioneve me intervale vlerash;
- është zvogëluar ngarkesa në CPU përmes ruajtjes në cache të rezultateve të qasjes në indekse dhe eliminimin e kopjeve të dyfishta;
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r format tĂ« ri ruajtjeje tĂ« rreshtave, qĂ« lejon rritjen e performancĂ«s sĂ« tabelave me numra tĂ« mĂ«dhenj kolonash;
- Në funksionin GROUP_CONCAT është shtuar mbështetje për shprehjen «ORDER BY»;
- është shtuar mundësia e nxjerrjes së të dhënave nga logu TiFlash përmes SQL;
- Në komandën «RECOVER TABLE» është realizuar mbështetje për rikuperimin e tabelave të shkurtra;
- është shtuar tabela sistemike DDLJobs për të kërkuar detajet mbi realizimin e punëve DDL;
- është shtuar mundësia e përdorimit të komandës SHOW CONFIG për të treguar cilësimet PD dhe TiKV;
- me default cache e coprocesorëve;
- Numri i goroutines në fazën e përpjekjeve të përsëritura të komitit tani mund të kontrollohet përmes cilësimit committer-concurrency;
- është shtuar mundësia e shfaqjes së rajonëve të ndarjes së tabelave;
- Në tidb-server është shtuar mundësia për të kufizuar madhësinë e ruajtjes përkohshme;
- është shtuar mbështetje për operacionet «insert into tbl_name partition(partition_name_list)» dhe «replace into tbl_name partition(partition_name_list)»;
- Në hashin e përdorur për ndarjen (shkëputjen) është shtuar mbështetje për filtrimin sipas kriterit «is null»;
- Për tabelat e ndara është shtuar mbështetje për operacionet e verifikimit, pastrimit dhe rikuperimit të indeksave.
Burimi: opennet.ru
