TiDB 3.0 jaettu DBMS-julkaisu

Saatavilla hajautettu DBMS-julkaisu TiDB 3.0kehitetty Googlen teknologioiden vaikutuksen alaisena ruuviavain и F1. TiDB kuuluu hybridi-HTAP (Hybrid Transactional/Analytical Processing) -järjestelmien luokkaan, joka pystyy tarjoamaan sekä reaaliaikaisia ​​tapahtumia (OLTP) että käsittelemään analyyttisiä kyselyjä. Projekti on kirjoitettu kielellä Go and jakelija lisensoitu Apache 2.0:lla.

TiDB:n ominaisuudet:

  • Tuki SQL:lle ja MySQL-protokollan kanssa yhteensopivan asiakasliittymän tarjoaminen, mikä helpottaa olemassa olevien MySQL:lle kirjoitettujen sovellusten mukauttamista TiDB:hen ja mahdollistaa myös yleisten asiakaskirjastojen käytön. MySQL-protokollan lisäksi voit käyttää JSON-pohjaista APIa ja Spark-liitintä DBMS:n käyttämiseen.
  • SQL:n ominaisuuksista tuetaan indeksejä, koontifunktioita, GROUP BY-, ORDER BY-, DISTINCT-lausekkeita, sulautuksia (LEFT JOIN / RIGHT JOIN / CROSS JOIN), näkymiä, ikkunatoimintoja ja alikyselyjä. Tarjotut mahdollisuudet riittävät järjestämään työskentelyä TiDB:n kanssa sellaisilla web-sovelluksilla kuin PhpMyAdmin, Gogs ja WordPress;
  • Skaalaus ja joustavuus: Tallennus- ja prosessointitehoa voidaan skaalata yksinkertaisesti lisäämällä uusia solmuja. Tiedot jaetaan solmujen kesken redundanssilla, jotta toiminnot voivat jatkua, jos yksittäiset solmut epäonnistuvat. Viat käsitellään automaattisesti.
  • Järjestelmä takaa johdonmukaisuuden ja näyttää asiakasohjelmistolle yhdeltä suurelta tietokantajärjestelmältä huolimatta siitä, että tapahtuman suorittamiseen liittyy itse asiassa dataa useista solmuista.
  • Tietojen fyysiseen tallentamiseen solmuihin voidaan käyttää erilaisia ​​taustaohjelmia, esimerkiksi paikallisia tallennusmoottoreita GoLevelDB ja BoltDB tai omaa hajautettua tallennusmoottoriamme TiKV.
  • Mahdollisuus muuttaa asynkronisesti tallennusmallia, jolloin voit lisätä sarakkeita ja indeksejä lennossa pysäyttämättä käynnissä olevien toimintojen käsittelyä.

Pääasiallinen innovaatioita:

  • Työtä on tehty tuottavuuden lisäämiseksi. Sysbench-testissä julkaisu 3.0 on 2.1 kertaa nopeampi kuin 1.5-haara valinta- ja päivitystoimintoja suoritettaessa ja TPC-C-testissä 4.5 kertaa nopeampi. Optimoinnit ovat vaikuttaneet erityyppisiin kyselyihin, mukaan lukien IN-, DO and NOT EXISTS -alikyselyt, taulukkojen yhdistämistoiminnot (JOIN), indeksien käyttö ja paljon muuta;
    TiDB 3.0 jaettu DBMS-julkaisuTiDB 3.0 jaettu DBMS-julkaisu

  • Lisätty uusi TiFlash-tallennusmoottori, joka mahdollistaa paremman suorituskyvyn analyyttisten ongelmien (OLAP) ratkaisemisessa pylväsmuistin ansiosta. TiFlash täydentää aiemmin tarjottua TiKV-tallennustilaa, joka tallentaa rivikohtaiset tiedot avain/arvo-muodossa ja sopii paremmin tapahtumankäsittelytehtäviin (OLTP). TiFlash toimii rinnakkain TiKV:n kanssa, ja tietojen replikointi jatkuu TiKV:lle kuten ennen Raft-protokollaa konsensuksen määrittämiseen, mutta jokaiselle Raft-kopioiden ryhmälle luodaan lisäkopio, jota käytetään TiFlashissa. Tämä lähestymistapa mahdollistaa paremman resurssien jakamisen OLTP- ja OLAP-tehtävien välillä, ja myös tapahtumatiedot ovat välittömästi käytettävissä analyyttisiä kyselyjä varten.

    TiDB 3.0 jaettu DBMS-julkaisu

  • Hajautettu roskakeräin on toteutettu, mikä voi merkittävästi nopeuttaa jätteiden keräämistä suurissa klusteissa ja parantaa vakautta;
  • Role-Based Access Controlin (RBAC) kokeellinen toteutus on lisätty. On myös mahdollista asettaa käyttöoikeudet ANALYSOI-, KÄYTTÖ-, SET GLOBAL- ja SHOW PROCESSLIST -toimintoihin;
  • Lisätty mahdollisuus käyttää SQL-lausekkeita hitaiden kyselyjen poimimiseen lokista;
  • On otettu käyttöön mekanismi poistettujen taulukoiden nopeaan palauttamiseen, jonka avulla voit palauttaa vahingossa poistetut tiedot;
  • Tallennettujen lokien muoto on yhtenäistetty;
  • Lisätty tuki pessimistiselle lukitustilalle, mikä tekee tapahtumien käsittelystä enemmän samanlaista kuin MySQL;
  • Lisätty tuki MySQL 8.0:n kanssa yhteensopiville ikkunatoiminnoille (ikkunatoiminnot tai analyyttiset toiminnot). Ikkunatoimintojen avulla voit suorittaa laskutoimituksia kyselyn jokaiselle riville käyttämällä muita rivejä. Toisin kuin koostefunktiot, jotka kutistavat ryhmitellyn rivijoukon yhdeksi riviksi, ikkunafunktiot aggregoivat "ikkunan" sisällön perusteella, joka sisältää yhden tai useamman rivin tulosjoukosta. Toteutettujen ikkunatoimintojen joukossa:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE, LAST_VALUE, RANK, DENSE_RANK ja ROW_NUMBER;

  • Lisätty kokeellinen tuki näkymille (VIEW);
  • Osiointijärjestelmää on parannettu, lisätty mahdollisuus jakaa tietoja osiin arvoalueen tai hajautusarvon perusteella;
  • Lisäosien kehittämiseen on lisätty viitekehys, esim. laajennuksia on jo valmisteltu IP whitelistin käyttöä tai auditointilokin ylläpitoa varten;
  • "EXPLAIN ANALYZE" -funktiolle on tarjottu kokeellista tukea SQL-kyselyn suoritussuunnitelman luomiseen (SQL Plan Management);
  • Lisätty next_row_id-komento seuraavan rivin tunnuksen saamiseksi;
  • Lisätty uudet sisäänrakennetut toiminnot JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK, COALESCE ja NAME_CONST.

Lähde: opennet.ru

Lisää kommentti