Բաշխված DBMS TiDB 3.0-ի թողարկում

Հասանելի է բաշխված DBMS-ի թողարկում TiDB 3.0, մշակվել է Google տեխնոլոգիաների ազդեցության տակ Ներկառուցված и F1. TiDB-ն պատկանում է հիբրիդային HTAP (Հիբրիդ գործարքների/վերլուծական մշակում) համակարգերին, որոնք կարող են ինչպես իրական ժամանակում գործարքներ ապահովել (OLTP), այնպես էլ վերլուծական հարցումներ մշակել: Նախագիծը գրված է Go and տարածվում է լիցենզավորված Apache 2.0-ի համաձայն:

TiDB-ի առանձնահատկությունները.

  • SQL աջակցություն և MySQL արձանագրության հետ համատեղելի հաճախորդի ինտերֆեյսի տրամադրում, որը հեշտացնում է MySQL-ի համար գրված առկա հավելվածների հարմարեցումը TiDB-ին, ինչպես նաև թույլ է տալիս օգտագործել սովորական հաճախորդի գրադարաններ: Բացի MySQL արձանագրությունից, DBMS մուտք գործելու համար կարող եք օգտագործել JSON-ի վրա հիմնված API և Spark-ի միակցիչ:
  • SQL-ն ունի աջակցության ինդեքսներ, ագրեգատ գործառույթներ, GROUP BY, ORDER BY, DISTINCT արտահայտություններ, միաձուլումներ (ՁԱԽ ՄԻԱՑՈՒՄ / ԱՋ ՄԻԱՑՈՒՄ/ԽԱՉ ՄԻԱՑՈՒՄ), դիտումներ, պատուհանի գործառույթներ և ենթհարցումներ: Տրամադրված հնարավորությունները բավարար են TiDB-ի հետ աշխատանքը կազմակերպելու համար այնպիսի վեբ հավելվածների համար, ինչպիսիք են PhpMyAdmin-ը, Գոգեր և WordPress;
  • Հորիզոնական մասշտաբայնություն և սխալների հանդուրժողականություն. պահեստավորման չափը և մշակման հզորությունը կարելի է ավելացնել՝ պարզապես միացնելով նոր հանգույցները: Տվյալները բաշխվում են ավելորդությամբ հանգույցների վրա, ինչը թույլ է տալիս շարունակել աշխատանքը, եթե առանձին հանգույցները ձախողվեն: Անհաջողությունները ինքնաբերաբար լուծվում են:
  • Համակարգը երաշխավորում է հետևողականությունը, և հաճախորդի ծրագրային ապահովման համար այն կարծես մեկ մեծ DBMS է, չնայած այն հանգամանքին, որ իրականում բազմաթիվ հանգույցներից տվյալներ են ներգրավվում գործարքն ավարտելու համար:
  • Հանգույցների վրա տվյալները ֆիզիկապես պահելու համար կարող են օգտագործվել տարբեր հետնամասեր, օրինակ՝ տեղական պահեստավորման շարժիչներ GoLevelDB և BoltDB կամ մեր սեփական բաշխված պահեստավորման շարժիչը: TiKV.
  • Պահպանման սխեման ասինխրոն փոխելու հնարավորությունը, որը թույլ է տալիս արագորեն ավելացնել սյունակներ և ինդեքսներ՝ առանց ընթացիկ գործողությունների մշակումը դադարեցնելու:

Հիմնական նորամուծություններ:

  • Աշխատանքներ են տարվել արտադրողականության բարձրացման ուղղությամբ։ Sysbench-ի թեստում 3.0-ի թողարկումը 2.1 անգամ ավելի արագ է, քան 1.5 ճյուղը ընտրելու և թարմացնելու գործողություններ կատարելիս, իսկ TPC-C թեստում՝ 4.5 անգամ: Օպտիմալացումները ազդել են հարցումների տարբեր տեսակների վրա, այդ թվում՝ IN, DO և NOT EXISTS ենթհարցումները, աղյուսակների միաձուլման (JOIN) գործողությունները, ինդեքսների օգտագործումը և շատ ավելին;
    Բաշխված DBMS TiDB 3.0-ի թողարկումԲաշխված DBMS TiDB 3.0-ի թողարկում

  • Ավելացվեց նոր TiFlash պահեստավորման շարժիչ, որը թույլ է տալիս ավելի բարձր արդյունավետություն լուծել վերլուծական խնդիրներ (OLAP) սյունակային պահպանման շնորհիվ: TiFlash-ը լրացնում է նախկինում առաջարկված TiKV պահեստը, որը պահպանում է տողերի համաձայն տվյալները բանալի/արժեք ձևաչափով և ավելի իդեալական է գործարքների մշակման առաջադրանքների համար (OLTP): TiFlash-ն աշխատում է TiKV-ի հետ կողք կողքի, և տվյալները շարունակում են վերարտադրվել TiKV-ին, ինչպես նախկինում օգտագործելով Raft արձանագրությունը՝ կոնսենսուսը որոշելու համար, սակայն Raft-ի կրկնօրինակների յուրաքանչյուր խմբի համար ստեղծվում է լրացուցիչ կրկնօրինակ, որն օգտագործվում է TiFlash-ում: Այս մոտեցումը թույլ է տալիս ռեսուրսների ավելի լավ փոխանակում OLTP-ի և OLAP-ի առաջադրանքների միջև, ինչպես նաև գործարքների տվյալները ակնթարթորեն հասանելի է դարձնում վերլուծական հարցումների համար.

    Բաշխված DBMS TiDB 3.0-ի թողարկում

  • Իրականացվել է բաշխված աղբահավաք, որը կարող է զգալիորեն մեծացնել աղբահանության արագությունը խոշոր կլաստերներում և բարելավել կայունությունը.
  • Ավելացվել է Role-based Access Control (RBAC) փորձարարական իրականացում: Հնարավոր է նաև մուտքի իրավունքներ սահմանել ANALYZE, USE, SET GLOBAL և SHOW PROCESSLIST գործողությունների համար.
  • Ավելացրել է SQL արտահայտություններ օգտագործելու հնարավորությունը՝ մատյանից դանդաղ հարցումներ հանելու համար.
  • Գործարկվել է ջնջված աղյուսակների արագ վերականգնման մեխանիզմ, որը թույլ է տալիս վերականգնել պատահաբար ջնջված տվյալները.
  • Միավորված է գրանցված տեղեկամատյանների ձևաչափը.
  • Ավելացվել է հոռետեսական կողպման ռեժիմի աջակցություն, ինչը գործարքների մշակումն ավելի նման է դարձնում MySQL-ին;
  • Ավելացվեց պատուհանի գործառույթների (պատուհանի գործառույթներ կամ վերլուծական գործառույթներ) աջակցություն, որոնք համատեղելի են MySQL 8.0-ի հետ: Պատուհանների գործառույթները թույլ են տալիս կատարել հաշվարկներ յուրաքանչյուր հարցման տողի համար՝ օգտագործելով այլ տողեր: Ի տարբերություն ագրեգատային ֆունկցիաների, որոնք տողերի խմբավորված շարքը մեկ տողի մեջ փլուզում են, պատուհանի ֆունկցիաները համախմբվում են «պատուհանի» բովանդակության հիման վրա, որը ներառում է արդյունքների հավաքածուից մեկ կամ մի քանի տող: Իրականացված պատուհանի գործառույթներից.
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE, LAST_VALUE, RANK, DENSE_RANK և ROW_NUMBER;

  • Ավելացված է փորձնական աջակցություն դիտումների համար (VIEW);
  • Բարելավվել է բաժանման համակարգը, ավելացվել է մի շարք արժեքների կամ հեշերի վրա հիմնված տվյալների բաժիններ բաշխելու հնարավորությունը.
  • Ավելացվել է պլագինների մշակման շրջանակ, օրինակ՝ պլագիններ արդեն պատրաստվել են IP սպիտակ ցուցակ օգտագործելու կամ աուդիտի մատյան պահելու համար.
  • Փորձարարական աջակցություն է տրամադրվել «ԲԱՑԱՏՐԵԼՈՒ ՎԵՐԼՈՒԾՈՒՄ» ֆունկցիայի համար՝ SQL հարցման կատարման պլան կառուցելու համար (SQL Plan Management);
  • Ավելացվեց next_row_id հրամանը՝ հաջորդ տողի ID-ն ստանալու համար;
  • Ավելացվեցին նոր ներկառուցված գործառույթներ JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK, COALESCE և NAME_CONST:

Source: opennet.ru

Добавить комментарий