Uvolnění distribuované DBMS TiDB 3.0

Dostupné uvolnění distribuované DBMS TiDB 3.0, vyvinuté pod dojmem technologií Google Spanner a F1. TiDB patří do kategorie hybridních systémů HTAP (Hybrid Transactional/Analytical Processing), schopných jak poskytovat provádění transakcí v reálném čase (OLTP), tak vykonávat zpracování analytických dotazů. Projekt je napsán v jazyce Go a distribuováno pod licencí Apache 2.0.

Vlastnosti TiDB:

  • Podpora SQL a poskytování klientského rozhraní kompatibilního s protokolem MySQL, což zjednodušuje adaptaci stávajících aplikací, napsaných pro MySQL, na TiDB a také umožňuje využívat běžné klientské knihovny. Kromě protokolu MySQL lze pro přístup k DBMS použít API založené na JSON a konektor pro Spark.
  • Mezi možnosti SQL patří podpora indexů, agregační funkce, výrazy GROUP BY, ORDER BY, DISTINCT, spojení (LEFT JOIN / RIGHT JOIN / CROSS JOIN), pohledy, okna funkcí a subdotazy. Poskytované možnosti jsou dostatečné k tomu, aby mohly podporovat provoz s TiDB webových aplikací, jako jsou PhpMyAdmin, Gogs a WordPress;
  • Možnost horizontálního škálování a zajištění odolnosti proti výpadkům: velikost úložiště a výpočetní výkon lze zvyšovat jednoduchým připojením nových uzlů. Data jsou distribuována mezi uzly s redundancí, která umožňuje pokračovat v práci v případě selhání jednotlivých uzlů. Selhání jsou zpracovávána automaticky.
  • Systém zaručuje konzistenci a pro klientský software vypadá jako jedna velká DBMS, ačkoli pro provádění transakce jsou zapojeny data z mnoha uzlů.
  • Pro fyzické ukládání dat na uzlech mohou být použity různé backendy, například lokální úložiště GoLevelDB a BoltDB nebo vlastní engine distribuovaného úložiště. TiKV.
  • Možnost asynchronních změn schématu ukládání, která umožňuje na místě přidávat sloupce a indexy bez zastavení zpracování aktuálních operací.

Hlavní novinky:

  • Byla provedena optimalizace výkonu. V testu Sysbench verze 3.0 předčí větev 2.1 o 1,5krát při provádění operací select a update, a v testu TPC-C o 4,5krát. Optimalizace se dotkly různých typů dotazů, včetně poddotazů 'IN', 'DO' a 'NOT EXISTS', operací s JOIN, používáním indexů a mnoha dalšími;
    Uvolnění distribuované DBMS TiDB 3.0 Uvolnění distribuované DBMS TiDB 3.0
  • Byl přidán nový engine úložiště TiFlash, který umožňuje dosáhnout vyššího výkonu při řešení analytických úloh (OLAP) díky ukládání na základě sloupců. TiFlash doplňuje dříve nabízené úložiště TiKV, které ukládá data ve formátu klíč/hodnota po řádcích a je pro úkoly zpracování transakcí (OLTP) výhodnější. TiFlash pracuje vedle TiKV a data se i nadále replikují v TiKV pomocí protokolu Raft pro určení konsenzu, ale pro každou skupinu replik Raft se vytváří dodatečná replikace, která je využita v TiFlash. Tento přístup umožňuje lepší rozdělení zdrojů mezi úkoly OLTP a OLAP a také činí transakční data okamžitě dostupná pro analytické dotazy;

    Uvolnění distribuované DBMS TiDB 3.0
  • Byl implementován distribuovaný sběrač odpadků, který výrazně zvyšuje rychlost sběru odpadků ve velkých clusterech a zvyšuje stabilitu provozu;
  • Byla přidána experimentální realizace systému řízení přístupu na základě rolí (RBAC). Také byla zajištěna možnost určení přístupových práv pro operace ANALYZE, USE, SET GLOBAL a SHOW PROCESSLIST;
  • Byla přidána možnost využívat SQL výrazy pro výběr ze souboru pomalých dotazů;
  • Byl implementován mechanismus rychlé obnovy odstraněných tabulek, který umožňuje obnovit náhodně odstraněná data;
  • Byl unified formát zapisovaných logů;
  • Byla přidána podpora pesimistického režimu zámků, který činí zpracování transakcí blízké MySQL;
  • Byla přidána podpora oknových funkcí (window funkce nebo analytické funkce) kompatibilních s MySQL 8.0. Okna funkce umožňují provádět výpočty pro každý řádek dotazu za použití jiných řádků. Na rozdíl od agregačních funkcí, které shrnují seskupenou sadu řádků do jednoho řádku, oknové funkce provádějí agregaci na základě obsahu "okna", které zahrnuje jeden nebo více řádků z výsledné sady. Mezi implementované oknové funkce patří:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE, LAST_VALUE, RANK, DENSE_RANK a ROW_NUMBER;
  • Byla přidána experimentální podpora pohledů (VIEW);
  • Byl vylepšen systém oddělování (partitions), byla přidána možnost distribuce dat do sekcí na základě rozsahu hodnot nebo hashů;
  • Byl přidán rámec pro vývoj pluginů, například již byly připraveny pluginy pro použití whitelistu IP nebo vedení auditu;
  • Byla zajištěna experimentální podpora funkce "EXPLAIN ANALYZE" pro sestavení plánu vykonávání SQL dotazu (SQL Plan Management);
  • Byl přidán příkaz next_row_id pro získání identifikátoru následujícího řádku;
  • Byly přidány nové vestavěné funkce JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK, COALESCE a NAME_CONST.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster