Kutolewa kwa DBMS TiDB 3.0 iliyosambazwa

Inapatikana kutolewa kwa DBMS iliyosambazwa TiDB 3.0, iliyotengenezwa chini ya ushawishi wa teknolojia za Google Spanner и F1. TiDB iko katika aina ya mifumo mseto ya HTAP (Uamala Mseto/Uchakataji wa Uchanganuzi), yenye uwezo wa kutoa miamala ya wakati halisi (OLTP) na kuchakata hoja za uchanganuzi. Mradi umeandikwa kwa lugha ya Go na kusambazwa na leseni chini ya Apache 2.0.

Vipengele vya TiDB:

  • Usaidizi wa SQL na utoaji wa kiolesura cha mteja kinachooana na itifaki ya MySQL, ambayo hurahisisha urekebishaji wa programu zilizopo zilizoandikwa kwa ajili ya MySQL hadi TiDB, na pia inaruhusu matumizi ya maktaba za wateja wa kawaida. Kando na itifaki ya MySQL, unaweza kutumia API ya JSON na kiunganishi cha Spark kufikia DBMS.
  • Vipengele vya SQL vinasaidia faharisi, utendakazi wa jumla, KUNDI KWA, KUAGIZA KWA, misemo TOFAUTI, miunganisho (KUJIUNGA KUSHOTO / KUJIUNGA KULIA / KUJIUNGA NA KUPANDA), mionekano, vitendakazi vya dirisha na hoja ndogo. Uwezo uliotolewa unatosha kupanga kazi na TiDB kwa programu tumizi za wavuti kama PhpMyAdmin, Nguruwe na WordPress;
  • Kuongezeka kwa usawa na uvumilivu wa makosa: saizi ya uhifadhi na nguvu ya usindikaji inaweza kuongezwa kwa kuunganisha nodi mpya tu. Data inasambazwa katika sehemu zote kwa kupunguzwa tena, kuruhusu uendeshaji kuendelea ikiwa nodi za kibinafsi zitashindwa. Kushindwa kunashughulikiwa kiotomatiki.
  • Mfumo unahakikisha uthabiti na kwa programu ya mteja inaonekana kama DBMS moja kubwa, licha ya ukweli kwamba kwa kweli, data kutoka kwa nodi nyingi huvutiwa kukamilisha shughuli.
  • Ili kuhifadhi data kwenye nodi, viambajengo tofauti vinaweza kutumika, kwa mfano, injini za uhifadhi za ndani GoLevelDB na BoltDB au injini yetu ya hifadhi iliyosambazwa. TiKV.
  • Uwezo wa kubadilisha schema ya uhifadhi kwa asynchronously, kukuwezesha kuongeza safu na indexes kwenye kuruka bila kuacha usindikaji wa shughuli zinazoendelea.

kuu ubunifu:

  • Kazi imefanywa ili kuongeza tija. Katika jaribio la Sysbench, toleo la 3.0 ni haraka mara 2.1 kuliko tawi la 1.5 wakati wa kufanya shughuli za kuchagua na kusasisha, na katika jaribio la TPC-C kwa mara 4.5. Uboreshaji umeathiri aina mbalimbali za hoja, ikiwa ni pamoja na IN, DO na NOT EXISTS, shughuli za kuunganisha jedwali (JIUNGE), matumizi ya faharasa na mengi zaidi;
    Kutolewa kwa DBMS TiDB 3.0 iliyosambazwaKutolewa kwa DBMS TiDB 3.0 iliyosambazwa

  • Imeongeza injini mpya ya hifadhi ya TiFlash ambayo inaruhusu utendakazi wa juu zaidi katika kutatua matatizo ya uchanganuzi (OLAP) shukrani kwa hifadhi ya safu. TiFlash inakamilisha hifadhi ya TiKV iliyotolewa hapo awali, ambayo huhifadhi data kulingana na safu mlalo katika umbizo la ufunguo/thamani na ni bora zaidi kwa kazi za uchakataji wa miamala (OLTP). TiFlash hufanya kazi bega kwa bega na TiKV na data inaendelea kunakiliwa kwa TiKV kama kabla ya kutumia itifaki ya Raft ili kubainisha makubaliano, lakini kwa kila kikundi cha nakala za Raft kunaundwa nakala ya ziada ambayo inatumika katika TiFlash. Mbinu hii inaruhusu ugavi bora wa rasilimali kati ya kazi za OLTP na OLAP, na pia hufanya data ya muamala ipatikane papo hapo kwa hoja za uchanganuzi;

    Kutolewa kwa DBMS TiDB 3.0 iliyosambazwa

  • Mtoza takataka iliyosambazwa imetekelezwa, ambayo inaweza kuongeza kwa kiasi kikubwa kasi ya ukusanyaji wa takataka katika makundi makubwa na kuboresha utulivu;
  • Utekelezaji wa majaribio wa Udhibiti wa Ufikiaji wa Wajibu (RBAC) umeongezwa. Pia inawezekana kuweka haki za ufikiaji kwa shughuli za CHANGANUA, MATUMIZI, WEKA GLOBAL na SHOW PROCESSLIST;
  • Imeongeza uwezo wa kutumia misemo ya SQL kutoa hoja polepole kutoka kwa kumbukumbu;
  • Utaratibu wa kurejesha haraka meza zilizofutwa umetekelezwa, kukuwezesha kurejesha data iliyofutwa kwa bahati mbaya;
  • Muundo wa kumbukumbu zilizorekodiwa umeunganishwa;
  • Usaidizi ulioongezwa kwa hali ya kukata tamaa ya kufunga, ambayo hufanya usindikaji wa shughuli ufanane zaidi na MySQL;
  • Usaidizi ulioongezwa kwa vitendaji vya dirisha (vitendaji vya dirisha au vitendaji vya uchanganuzi) vinavyoendana na MySQL 8.0. Vitendaji vya dirisha hukuruhusu kufanya hesabu kwa kila safu ya hoja kwa kutumia safu mlalo zingine. Tofauti na jumla ya chaguo za kukokotoa, ambazo hukunja seti ya safu mlalo iliyopangwa katika safu mlalo moja, chaguo za kukokotoa za dirisha hujumlishwa kulingana na maudhui ya "dirisha," ambayo inajumuisha safu mlalo moja au zaidi kutoka kwa seti ya matokeo. Miongoni mwa kazi za dirisha zilizotekelezwa:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE, LAST_VALUE, RANK, DENSE_RANK na ROW_NUMBER;

  • Imeongeza usaidizi wa majaribio kwa maoni (VIEW);
  • Mfumo wa kugawa umeboreshwa, uwezo wa kusambaza data katika sehemu kulingana na anuwai ya maadili au heshi umeongezwa;
  • Mfumo wa kutengeneza programu-jalizi umeongezwa, kwa mfano, programu-jalizi tayari zimetayarishwa kwa kutumia orodha iliyoidhinishwa ya IP au kudumisha kumbukumbu ya ukaguzi;
  • Usaidizi wa kimajaribio umetolewa kwa kipengele cha "FAFANUA UCHAMBUZI" kwa ajili ya kuunda mpango wa utekelezaji wa hoja ya SQL (Usimamizi wa Mpango wa SQL);
  • Imeongeza next_row_id amri ili kupata kitambulisho cha safu mlalo inayofuata;
  • Umeongeza utendakazi mpya uliojumuishwa ndani JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK ,COALESCE na NAME_CONST.

Chanzo: opennet.ru

Kuongeza maoni