TiDB

TiDB
Utvecklare PingCAP Inc.
Initial release 15 oktober 2017 ; 5 år sedan ( 2017-10-15 )
Stabil frisättning
Edit this on Wikidata 6.6.0 / 20 februari 2023 ; 22 dagar sedan ( 20 februari 2023 )
Förvar
Skrivet i Go (TiDB), Rust (TiKV)
Tillgänglig i engelska, kinesiska
Typ NewSQL
Licens Apache 2.0
Hemsida sv .pingcap .com /tidb /  Edit this on Wikidata

TiDB (/'taɪdiːbi:/, "Ti" står för Titanium) är en NewSQL- databas med öppen källkod som stöder HTAP -arbetsbelastningar (Hybrid Transactional and Analytical Processing). Den är MySQL- kompatibel och kan ge horisontell skalbarhet, stark konsekvens och hög tillgänglighet. Det utvecklas och stöds främst av PingCAP , Inc. och licensieras under Apache 2.0. TiDB hämtade sin första designinspiration från Googles Spanner- och F1-papper.

Releasehistorik

Se alla TiDB release notes .

Huvuddrag

Horisontell skalbarhet

TiDB kan utöka både SQL-bearbetnings- och lagringskapacitet genom att lägga till nya noder. Detta gör skalning av infrastrukturkapacitet enklare och mer flexibel jämfört med traditionella relationsdatabaser som endast skalas vertikalt.

MySQL-kompatibilitet

TiDB fungerar som om det är en MySQL 5.7-server för applikationer. En användare kan fortsätta att använda alla befintliga MySQL-klientbibliotek. Eftersom TiDBs SQL-bearbetningslager är byggt från grunden, inte en MySQL-gaffel, är dess kompatibilitet inte 100 %, och det finns kända beteendeskillnader mellan MySQL och TiDB.

Distribuerade transaktioner med stark konsekvens

TiDB skär internt en tabell i små intervallbaserade bitar som kallas "Regioner". Varje region har som standard cirka 100 MB i storlek, och TiDB använder en tvåfasig commit internt för att säkerställa att regioner upprätthålls på ett transaktionellt konsekvent sätt.

Molninfödd

TiDB är designat för att fungera i molnet för att göra distribution, provisionering, drift och underhåll flexibelt. Lagringsskiktet i TiDB, kallat TiKV, blev ett Cloud Native Computing Foundation (CNCF)-medlemsprojekt i augusti 2018, som ett projekt på sandlådenivå, och blev ett värdprojekt på inkubationsnivå i maj 2019. TiKV tog examen från CNCF i september 2020. Arkitekturen för TiDB-plattformen tillåter också att SQL-bearbetning och lagring skalas oberoende av varandra.

HTAP i realtid

TiDB kan stödja både online transaktionsbearbetning ( OLTP ) och online analytisk bearbetning ( OLAP ) arbetsbelastningar. TiDB har två lagringsmotorer: TiKV, en radbutik och TiFlash, en kolumnbutik. Data kan replikeras från TiKV till TiFlash i realtid för att säkerställa att TiFlash bearbetar den senaste datan.

Hög tillgänglighet

TiDB använder Raft-konsensusalgoritmen för att säkerställa att data är högst tillgänglig och säkert replikeras genom hela lagringen i Raft-grupper. I händelse av misslyckande kommer en flottgrupp automatiskt att välja en ny ledare för den misslyckade medlemmen och självläka TiDB-klustret utan någon manuell inblandning. Misslyckande och självläkande operationer är transparenta för applikationerna.

Implementeringsmetoder

Kubernetes med operatör

TiDB kan distribueras i en Kubernetes -aktiverad molnmiljö genom att använda TiDB Operator. En operatör är en metod för att paketera, distribuera och hantera en Kubernetes-applikation. Den är designad för att köra tillståndsfulla arbetsbelastningar och introducerades först av CoreOS 2016. TiDB Operator utvecklades ursprungligen av PingCAP och öppnades i augusti 2018. TiDB Operator kan användas för att distribuera TiDB på en bärbar dator, Google Cloud Platforms Google Kubernetes Engine och Amazon Web Services Elastic Container Service för Kubernetes.

TiUP

TiDB 4.0 introducerar TiUP , ett klusterdrift- och underhållsverktyg. Det hjälper användare att snabbt installera och konfigurera ett TiDB-kluster med några få kommandon.

TiDB Ansible

TiDB kan distribueras med Ansible genom att använda en TiDB Ansible-spelbok (rekommenderas inte).

Hamnarbetare

Docker kan användas för att distribuera TiDB i en containermiljö på flera noder och flera maskiner, och Docker Compose kan användas för att distribuera TiDB med ett enda kommando för teständamål.

Verktyg

TiDB har en serie öppen källkodsverktyg byggda runt det för att hjälpa till med datareplikering och migrering för befintliga MySQL- och MariaDB- användare.

TiDB Data Migration (DM)

TiDB Data Migration (DM) lämpar sig för att replikera data från redan fragmenterade MySQL- eller MariaDB-tabeller till TiDB. Ett vanligt användningsfall för DM är att ansluta MySQL- eller MariaDB-tabeller till TiDB, behandla TiDB nästan som en slav, och sedan köra analytiska arbetsbelastningar direkt på detta TiDB-kluster i nästan realtid.

Säkerhetskopiera och återställa

Backup & Restore (BR) är ett distribuerat verktyg för säkerhetskopiering och återställning för TiDB-klusterdata. Det erbjuder höga säkerhets- och återställningshastigheter för storskaliga TiDB-kluster.

Klimp

Dumpling är ett dataexportverktyg som exporterar data lagrad i TiDB eller MySQL. Det låter användare göra logiska fullständiga säkerhetskopior eller fullständiga dumpningar från TiDB eller MySQL.

TiDB Lightning

TiDB Lightning är ett verktyg som stöder höghastighets-fullimport av en stor MySQL-dump till ett nytt TiDB-kluster, vilket ger en snabbare importupplevelse än att köra varje SQL-sats. Detta verktyg används för att snabbt fylla ett initialt tomt TiDB-kluster med mycket data, för att påskynda testning eller produktionsmigrering. Förbättringen av importhastigheten uppnås genom att analysera SQL-satser till nyckel-värdepar och sedan generera sorterade strängtabeller (SST) direkt till RocksDB .

TiDB Binlog

TiDB Binlog är ett verktyg som används för att samla in de logiska ändringar som gjorts i ett TiDB-kluster. Den används för att tillhandahålla inkrementell säkerhetskopiering och replikering, antingen mellan två TiDB-kluster, eller från ett TiDB-kluster till en annan nedströmsplattform.

Den liknar funktionaliteten till MySQL primär-sekundär replikering. Den huvudsakliga skillnaden är att eftersom TiDB är en distribuerad databas, måste binloggen som genereras av varje TiDB-instans slås samman och sorteras efter tidpunkten för transaktionsbekräftelsen innan den konsumeras nedströms.

Upplagor

TiDB finns i tre versioner: Enterprise, cloud on premise och open source-versionen licensierad under Apache 2.0-licensen.

Se även