uvolnění distribuované DBMS , vyvinuté pod dojmem technologií Google a . 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 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, 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 lze používat různé backendy, například lokální úložné motory GoLevelDB a BoltDB nebo vlastní motory distribuovaného úložiště a TiFlash. TiKV ukládá data v řezaném formátu klíč/hodnota a je optimalizován pro úkoly zpracování transakcí (OLTP). TiFlash ukládá data ve sloupcích a umožňuje dosáhnout vyšší výkonnosti při řešení analytických úloh (OLAP).
- 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í.
V novém vydání:
- Ve výchozím nastavení je aktivován distribuovaný garbage collector Green GC, který výrazně zvyšuje rychlost sběru odpadu ve velkých clusterech a zvyšuje stabilitu provozu;
- Byla přidána podpora pro velké transakce, jejichž velikost je prakticky omezena velikostí fyzické paměti. Omezení velikosti jedné transakce bylo zvýšeno ze 100 MB na 10 GB;
- Byla přidána podpora příkazů BACKUP a RESTORE pro zálohování;
- Byla přidána možnost zamčení tabulek;
- Byl přidán mechanismus izolace transakcí kompatibilní s MySQL na úrovni čtení (READ COMMITTED);
- Byla přidána podpora výrazů LIKE a WHERE do příkazu 'ADMIN SHOW DDL JOBS';
- Byl přidán parametr oom-use-tmp-storage, který umožňuje používat dočasné soubory pro ukládání meziproduktů v podmínkách nedostatku operační paměti;
- Bylo přidáno klíčové slovo Random pro přiřazení náhodných hodnot atributům;
- V příkazu LOAD DATA se objevila možnost použití hexadecimálních a binárních výrazů;
- Bylo přidáno 15 parametrů pro řízení chování optimalizátoru;
- Byly přidány nástroje pro diagnostiku výkonu SQL dotazů. Byl přidán log pomalých dotazů, dostupný prostřednictvím systémových tabulek SLOW_QUERY / CLUSTER_SLOW_QUERY;
- Byla přidána podpora funkcí pro práci se sekvencemi;
- Byla přidána možnost dynamické změny parametrů konfigurace čtených z PD (Placement Driver, server správy clusteru). Přidána možnost použití výrazu 'SET CONFIG' pro změnu nastavení uzlů PD / TiKV.
- Bylo přidáno nastavení max-server-connections pro omezení maximálního počtu současných připojení k serveru (výchozí 4096);
- Byla zvýšena výkonnost v situacích, kdy jsou požadované sloupce zcela pokryty indexy;
- Byla přidána optimalizace dotazů na základě sloučení indexů;
- Byla zvýšena výkonnost operací s rozsahy hodnot;
- Bylo sníženo zatížení CPU díky ukládání výsledků přístupu k indexům do mezipaměti a odfiltrování duplicit;
- Byla přidána podpora nového formátu ukládání řetězců, který zvyšuje výkonnost tabulek s velkým počtem sloupců;
- Funkce GROUP_CONCAT nyní podporuje výraz 'ORDER BY';
- Byla přidána možnost vyhledávání dat z logu TiFlash pomocí SQL;
- V týmu „RECOVER TABLE byla zavedena podpora obnovení zkrácených tabulek;
- Byla přidána systémová tabulka DDLJobs pro dotazování podrobností o provádění DDL prací;
- Byla přidána možnost aplikace příkazu SHOW CONFIG pro zobrazení nastavení PD a TiKV;
- výchozí cache koprocesoru;
- Počet spoluprogramů (goroutine) ve fázi opakovaných pokusů o commit lze nyní řídit pomocí nastavení committer-concurrency;
- Byla přidána možnost zobrazení regionů tabulkového oddílu (table partition);
- Do tidb-server byla přidána možnost omezení velikosti dočasného úložiště;
- Byla přidána podpora operací „insert into tbl_name partition(partition_name_list)“ a „replace into tbl_name partition(partition_name_list)“;
- Do používaného pro sekcionování (partitioning) hashe byla přidána podpora filtrování podle kritéria „is null“;
- Pro sekcionované tabulky byla přidána podpora operací kontroly, čištění a obnovy indexů.
Zdroj: opennet.ru
