TiDB 3.0 distribuita DBMS-eldono

Disponebla liberigo de distribuita DBMS TiDB 3.0, evoluigita sub la influo de Guglo-teknologioj Skanilo и F1. TiDB apartenas al la kategorio de hibridaj HTAP (Hibrida Transakcia/Analitika Pretigo) sistemoj, kapablaj kaj provizi realtempajn transakciojn (OLTP) kaj prilabori analizajn demandojn. La projekto estas skribita en lingvo Go kaj distribuita de licencita sub Apache 2.0.

Karakterizaĵoj de TiDB:

  • SQL-subteno kaj disponigo de klientinterfaco kongrua kun la MySQL-protokolo, kiu simpligas la adaptadon de ekzistantaj aplikoj skribitaj por MySQL al TiDB, kaj ankaŭ permesas la uzon de oftaj klientbibliotekoj. Krom la MySQL-protokolo, vi povas uzi JSON-bazitan API kaj konektilon por Spark por aliri la DBMS.
  • SQL prezentas subtenajn indeksojn, aldonitajn funkciojn, GROUP BY, ORDER BY, DISTINCT-esprimoj, kunfandoj (LEFT JOIN / RIGHT JOIN / CROSS JOIN), vidoj, fenestrofunkcioj kaj subdemandoj. La provizitaj kapabloj sufiĉas por organizi laboron kun TiDB por tiaj retejoj kiel PhpMyAdmin, okulvitroj kaj WordPress;
  • Horizontala skaleblo kaj faŭltoleremo: stoka grandeco kaj pretigpotenco povas esti pliigitaj per simple konekto de novaj nodoj. Datenoj estas distribuitaj trans nodoj kun redundo, permesante al operacio daŭri se individuaj nodoj malsukcesas. Fiaskoj estas traktataj aŭtomate.
  • La sistemo garantias konsistencon kaj por la klienta programaro ĝi aspektas kiel unu granda DBMS, malgraŭ tio, ke fakte, datumoj de multaj nodoj estas altiritaj por kompletigi la transakcion.
  • Por fizike stoki datumojn sur nodoj, malsamaj backends povas esti uzataj, ekzemple lokaj stokadmotoroj GoLevelDB kaj BoltDB aŭ nia propra distribuita stokadmotoro TiKV.
  • La kapablo nesinkrone ŝanĝi la stokadskemon, permesante al vi aldoni kolumnojn kaj indeksojn sur la flugo sen ĉesigi la prilaboradon de daŭrantaj operacioj.

Ĉefa novigoj:

  • Laboro estis farita por pliigi produktivecon. En la Sysbench-testo, eldono 3.0 estas 2.1 fojojn pli rapida ol la 1.5-branĉo dum plenumado de elektaj kaj ĝisdatigaj operacioj, kaj en la TPC-C-testo je 4.5 fojojn. Optimumigoj influis diversajn specojn de konsultoj, inkluzive de IN, DO kaj NE EKZISTAS subdemandoj, tabelkunfandi (JOIN) operacioj, la uzo de indeksoj kaj multe pli;
    TiDB 3.0 distribuita DBMS-eldonoTiDB 3.0 distribuita DBMS-eldono

  • Aldonita nova TiFlash-stokado-motoro kiu permesas pli altan rendimenton en solvado de analizaj problemoj (OLAP) danke al kolona stokado. TiFlash kompletigas la antaŭe ofertitan TiKV-stokadon, kiu stokas vic-saĝajn datumojn en ŝlosila/valorformato kaj estas pli ideala por transakciaj pretigaj taskoj (OLTP). TiFlash funkcias flank-al-flanke kun TiKV kaj datumoj daŭre estas reproduktitaj al TiKV kiel antaŭ ol uzi la Raft-protokolon por determini konsenton, sed por ĉiu grupo de Raft-kopioj kreiĝas kroma kopio, kiu estas uzata en TiFlash. Ĉi tiu aliro permesas pli bonan kundividon de rimedoj inter OLTP kaj OLAP-taskoj, kaj ankaŭ faras transakciajn datumojn tuj haveblaj por analizaj demandoj;

    TiDB 3.0 distribuita DBMS-eldono

  • Distribuita rubkolektilo estis efektivigita, kiu povas signife pliigi la rapidecon de rubkolekto en grandaj aretoj kaj plibonigi stabilecon;
  • Eksperimenta efektivigo de Role-Based Access Control (RBAC) estis aldonita. Eblas ankaŭ agordi alirrajtojn por la operacioj ANALYZE, USE, SET GLOBAL kaj SHOW PROCESSLIST;
  • Aldonita la kapablo uzi SQL-esprimojn por ĉerpi malrapidajn demandojn el la protokolo;
  • Mekanismo por rapide restarigi forigitajn tabelojn estis efektivigita, permesante al vi restarigi hazarde forigitajn datumojn;
  • La formato de registritaj protokoloj estis unuigita;
  • Aldonita subteno por pesimisma ŝlosa reĝimo, kiu faras transakcian prilaboradon pli simila al MySQL;
  • Aldonita subteno por fenestrofunkcioj (fenestrofunkcioj aŭ analizaj funkcioj) kongruaj kun MySQL 8.0. Fenestraj funkcioj permesas fari kalkulojn por ĉiu demanda vico uzante aliajn vicojn. Male al agregaj funkcioj, kiuj kolapsas grupigitan aron de vicoj en ununuran vicon, fenestraj funkcioj agregas surbaze de la enhavo de "fenestro", kiu inkluzivas unu aŭ plurajn vicojn de la rezultaro. Inter la efektivigitaj fenestrofunkcioj:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE, LAST_VALUE, RANK, DENSE_RANK kaj ROW_NUMBER;

  • Aldonita eksperimenta subteno por vidoj (VIEW);
  • La dispartigosistemo estis plibonigita, la kapablo distribui datumojn en sekciojn bazitajn sur gamo da valoroj aŭ hashoj estis aldonita;
  • Kadro por disvolvi kromaĵojn estis aldonita, ekzemple, aldonaĵoj jam estis preparitaj por uzi IP-blankliston aŭ konservi kontrolan protokolo;
  • Eksperimenta subteno estis disponigita por la funkcio "EXPLAIN ANALYZE" por konstrui ekzekutplanon por SQL-demando (SQL Plan Management);
  • Aldonita komando next_row_id por akiri la ID de la sekva vico;
  • Aldonitaj novaj enkonstruitaj funkcioj JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK, COALESCE kaj NAME_CONST.

fonto: opennet.ru

Aldoni komenton