Izdaja porazdeljene DBMS TiDB 3.0

Na voljo izdaja porazdeljene DBMS TiDB 3.0razvil pod vplivom Googlovih tehnologij Spanner и F1. TiDB spada v kategorijo hibridnih sistemov HTAP (Hybrid Transactional/Analytical Processing), ki so zmožni zagotavljati transakcije v realnem času (OLTP) in obdelovati analitične poizvedbe. Projekt je napisan v Go and distributer licenciran pod Apache 2.0.

Lastnosti TiDB:

  • Podpora za SQL in zagotavljanje odjemalskega vmesnika, združljivega s protokolom MySQL, kar olajša prilagajanje obstoječih aplikacij, napisanih za MySQL, v TiDB, poleg tega pa vam omogoča uporabo običajnih odjemalskih knjižnic. Poleg protokola MySQL lahko za dostop do DBMS uporabite API, ki temelji na JSON, in konektor za Spark.
  • Od funkcij SQL so podprti indeksi, združevalne funkcije, GROUP BY, ORDER BY, DISTINCT izrazi, združevanja (LEFT JOIN / RIGHT JOIN / CROSS JOIN), pogledi, okenske funkcije in podpoizvedbe. Zagotovljene možnosti so dovolj za organizacijo dela s TiDB takih spletnih aplikacij, kot je PhpMyAdmin, Gogs in WordPress;
  • Prilagodljivost in odpornost: Moč shranjevanja in obdelave je mogoče povečati preprosto z dodajanjem novih vozlišč. Podatki so porazdeljeni po vozliščih z redundanco, da se omogoči nadaljevanje operacij, če posamezna vozlišča odpovejo. Napake se obravnavajo samodejno.
  • Sistem zagotavlja doslednost in je za odjemalsko programsko opremo videti kot en velik DBMS, kljub dejstvu, da so za dokončanje transakcije dejansko vključeni podatki iz številnih vozlišč.
  • Za fizično shranjevanje podatkov na vozliščih se lahko uporabljajo različna zaledja, na primer lokalna mehanizma za shranjevanje GoLevelDB in BoltDB ali naš lastni mehanizem za porazdeljeno shranjevanje. TiKV.
  • Možnost asinhronega spreminjanja sheme shranjevanja, kar vam omogoča sprotno dodajanje stolpcev in indeksov, ne da bi ustavili obdelavo tekočih operacij.

Glavni inovacije:

  • Opravljeno je bilo delo za povečanje produktivnosti. V testu Sysbench je različica 3.0 2.1-krat hitrejša od veje 1.5 pri izvajanju operacij izbire in posodobitve, v testu TPC-C pa 4.5-krat. Optimizacije so vplivale na različne vrste poizvedb, vključno s podpoizvedbami IN, DO in NOT EXISTS, operacijami združevanja tabel (JOIN), uporabo indeksov in še veliko več;
    Izdaja porazdeljene DBMS TiDB 3.0Izdaja porazdeljene DBMS TiDB 3.0

  • Dodan nov mehanizem za shranjevanje TiFlash, ki omogoča višjo zmogljivost pri reševanju analitičnih problemov (OLAP) zahvaljujoč stolpčnemu shranjevanju. TiFlash dopolnjuje predhodno ponujeno shrambo TiKV, ki shranjuje podatke po vrsticah v obliki ključ/vrednost in je bolj idealna za naloge obdelave transakcij (OLTP). TiFlash deluje vzporedno s TiKV in podatki se še naprej replicirajo v TiKV kot prej z uporabo protokola Raft za določanje soglasja, vendar se za vsako skupino replik Raft ustvari dodatna replika, ki se uporablja v TiFlash. Ta pristop omogoča boljšo skupno rabo virov med nalogami OLTP in OLAP, poleg tega pa omogoča takojšnjo dostopnost transakcijskih podatkov za analitične poizvedbe;

    Izdaja porazdeljene DBMS TiDB 3.0

  • Implementiran je porazdeljeni zbiralnik smeti, ki lahko bistveno poveča hitrost zbiranja smeti v velikih gručih in izboljša stabilnost;
  • Dodana je bila eksperimentalna izvedba nadzora dostopa na podlagi vlog (RBAC). Možno je tudi nastaviti pravice dostopa za operacije ANALIZA, UPORABA, NASTAVITEV GLOBALNEGA in PRIKAŽI SEZNAM PROCESOV;
  • Dodana možnost uporabe izrazov SQL za pridobivanje počasnih poizvedb iz dnevnika;
  • Implementiran je mehanizem za hitro obnovitev izbrisanih tabel, ki vam omogoča obnovitev pomotoma izbrisanih podatkov;
  • Format zapisanih dnevnikov je poenoten;
  • Dodana podpora za pesimistični način zaklepanja, zaradi česar je obdelava transakcij bolj podobna MySQL;
  • Dodana podpora za okenske funkcije (okenske funkcije ali analitične funkcije), združljive z MySQL 8.0. Okenske funkcije vam omogočajo izvajanje izračunov za vsako vrstico poizvedbe z uporabo drugih vrstic. Za razliko od agregatnih funkcij, ki strnejo združen niz vrstic v eno vrstico, se okenske funkcije združijo na podlagi vsebine »okna«, ki vključuje eno ali več vrstic iz nabora rezultatov. Med implementiranimi funkcijami oken:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE, LAST_VALUE, RANK, DENSE_RANK in ROW_NUMBER;

  • Dodana eksperimentalna podpora za poglede (VIEW);
  • Sistem particioniranja je bil izboljšan, dodana je bila možnost porazdelitve podatkov v odseke na podlagi obsega vrednosti ali zgoščenj;
  • Dodano je bilo ogrodje za razvoj vtičnikov, na primer vtičniki so že pripravljeni za uporabo seznama dovoljenih IP ali vzdrževanje revizijskega dnevnika;
  • Zagotovljena je bila eksperimentalna podpora za funkcijo »EXPLAIN ANALYZE« za izdelavo izvedbenega načrta za poizvedbo SQL (SQL Plan Management);
  • Dodan ukaz next_row_id za pridobitev ID-ja naslednje vrstice;
  • Dodane nove vgrajene funkcije JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK, COALESCE in NAME_CONST.

Vir: opennet.ru

Dodaj komentar