Distribuovaná verze DBMS TiDB 3.0

Dostupný distribuovaná verze DBMS TiDB3.0vyvinuté pod vlivem technologií Google Klíč и F1. TiDB patří do kategorie hybridních HTAP (Hybrid Transactional/Analytical Processing) systémů schopných jak poskytovat transakce v reálném čase (OLTP), tak zpracovávat analytické dotazy. Projekt je napsán v Go and distribuovány licencováno pod Apache 2.0.

Vlastnosti TiDB:

  • Podpora SQL a poskytování klientského rozhraní, které je kompatibilní s protokolem MySQL, což usnadňuje přizpůsobení stávajících aplikací napsaných pro MySQL na TiDB a také umožňuje používat běžné klientské knihovny. Kromě protokolu MySQL můžete pro přístup k DBMS použít rozhraní API založené na JSON a konektor pro Spark.
  • Z vlastností SQL jsou podporovány indexy, agregační funkce, GROUP BY, ORDER BY, DISTINCT výrazy, sloučení (LEFT JOIN / RIGHT JOIN / CROSS JOIN), pohledy, okenní funkce a poddotazy. Poskytované možnosti jsou dostatečné pro organizaci práce s TiDB takových webových aplikací, jako je PhpMyAdmin, Gogs a WordPress;
  • Škálování a odolnost: Výkon úložiště a zpracování lze zvětšit jednoduše přidáním nových uzlů. Data jsou distribuována mezi uzly s redundancí, aby operace mohly pokračovat, pokud jednotlivé uzly selžou. Poruchy jsou řešeny automaticky.
  • Systém zaručuje konzistenci a vypadá jako jeden velký DBMS pro klientský software, a to navzdory skutečnosti, že k dokončení transakce se ve skutečnosti používají data z mnoha uzlů.
  • Pro fyzické ukládání dat na uzlech lze použít různé backendy, například místní úložiště GoLevelDB a BoltDB nebo proprietární modul distribuovaného úložiště. TiKV.
  • Schopnost asynchronně měnit schéma úložiště, což vám umožní přidávat sloupce a indexy za běhu bez zastavení zpracování probíhajících operací.

hlavní inovace:

  • Pro zvýšení produktivity se pracovalo. V testu Sysbench verze 3.0 překonává větev 2.1 1.5krát v operacích výběru a aktualizace a v testu TPC-C 4.5krát. Optimalizace ovlivnily různé typy dotazů, včetně poddotazů "IN", "DO" a "NOT EXISTS", operace sloučení tabulek (JOIN), použití indexů a další;
    Distribuovaná verze DBMS TiDB 3.0Distribuovaná verze DBMS TiDB 3.0

  • Pro dosažení lepšího analytického (OLAP) výkonu prostřednictvím úložiště vázaného na sloupce byl přidán nový úložný modul TiFlash. TiFlash doplňuje dříve nabízené úložiště TiKV, které ukládá data v kontextu řádků ve formátu klíč/hodnota a je vhodnější pro úlohy zpracování transakcí (OLTP). TiFlash pracuje bok po boku s TiKV a data se nadále replikují do TiKV jako dříve, než se k určení konsensu použil protokol Raft, ale pro každou skupinu replik Raft je vytvořena a použita další replika v TiFlash. Takový přístup umožňuje lepší rozdělení zdrojů mezi úkoly OLTP a OLAP a také zpřístupňuje transakční data okamžitě pro analytické dotazy;

    Distribuovaná verze DBMS TiDB 3.0

  • Byl implementován distribuovaný garbage collector, který může výrazně zvýšit rychlost garbage collection ve velkých clusterech a zlepšit stabilitu;
  • Byla přidána experimentální implementace systému řízení přístupu založeného na rolích (RBAC). Dále je možné nastavit přístupová práva pro operace ANALYZE, USE, SET GLOBAL a SHOW PROCESSLIST;
  • Přidána možnost používat výrazy SQL k extrahování z protokolu pomalých dotazů;
  • Implementován mechanismus pro rychlou obnovu smazaných tabulek, který vám umožní obnovit omylem smazaná data;
  • Jednotný formát zaznamenaných protokolů;
  • Přidána podpora pro pesimistický režim zamykání, který přibližuje zpracování transakcí MySQL;
  • Přidána podpora pro okenní funkce (okenní funkce nebo analytické funkce) kompatibilní s MySQL 8.0. Funkce okna umožňují pro každý řádek dotazu provádět výpočty pomocí jiných řádků. Na rozdíl od agregačních funkcí, které sbalí seskupenou sadu řádků do jednoho řádku, se okenní funkce agregují na základě obsahu „okna“, které obsahuje jeden nebo více řádků ze sady výsledků. Mezi implementované funkce okna:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE, LAST_VALUE, RANK, DENSE_RANK a ROW_NUMBER;

  • Přidána experimentální podpora zobrazení (VIEW);
  • Vylepšený systém dělení (partitioning), přidána možnost distribuovat data do sekcí na základě rozsahu hodnot nebo hashů;
  • Přidán rámec pro vývoj zásuvných modulů, například již byly připraveny zásuvné moduly pro použití seznamu povolených IP adres nebo protokolování auditu;
  • Poskytnutá experimentální podpora pro funkci EXPLAIN ANALYZE pro vytvoření plánu provádění SQL dotazů (SQL Plan Management);
  • Přidán příkaz next_row_id pro získání id dalšího řádku;
  • Přidány nové vestavěné funkce JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK, COALESCE a NAME_CONST.

Zdroj: opennet.ru

Přidat komentář