Выпуск размеркаванай СКБД TiDB 3.0

даступны рэліз размеркаванай СКБД TiDB 3.0, якая развіваецца пад уражаннем ад тэхналогій Google гаечны ключ и F1. TiDB адносіцца да катэгорыі гібрыдных сістэм HTAP (Hybrid Transactional / Analytical Processing), здольных як забяспечваць выкананне транзакцый у рэальным часе (OLTP), так і выконваць апрацоўку аналітычных запытаў. Праект напісаны на мове Go і распаўсюджваецца пад ліцэнзіяй Apache 2.0.

Асаблівасці TiDB:

  • Падтрымка SQL і падаванне кліенцкага інтэрфейсу, сумяшчальнага з пратаколам MySQL, што спрашчае адаптацыю для TiDB існых прыкладанняў, напісаных для MySQL, а таксама дазваляе задзейнічаць распаўсюджаныя кліенцкія бібліятэкі. Акрамя пратаколу MySQL для звароту да СКБД можна выкарыстоўваць API на базе JSON і канектар для Spark.
  • З магчымасцяў SQL падтрымліваюцца азначнікі, агрэгатныя функцыі, выразы GROUP BY, ORDER BY, DISTINCT, зліцці (LEFT JOIN / RIGHT JOIN / CROSS JOIN), паданні, аконныя функцыі і подзапросы. Якія прадстаўляюцца магчымасцяў досыць для арганізацыі працы з TiDB такіх web-прыкладанняў, як PhpMyAdmin, Гогі і WordPress;
  • Магчымасць гарызантальнага маштабавання і забеспячэнні адмоваўстойлівасці: памер сховішчы і вылічальную магутнасць можна нарошчваць простым падлучэннем новых вузлоў. Дадзеныя размяркоўваюцца па вузлах з надмернасцю, якая дазваляе працягнуць працу ў выпадку збою асобных вузлоў. Збоі апрацоўваюцца аўтаматычна.
  • Сістэма гарантуе несупярэчлівасць і для кліенцкага ПА выглядае як адна вялікая СКБД, нягледзячы на ​​тое, што фактычна для выканання транзакцыі прыцягваюцца дадзеныя са мноства вузлоў.
  • Для фізічнага захоўвання дадзеных на вузлах могуць прымяняцца розныя бэкенды, напрыклад, лакальныя рухавічкі захоўвання GoLevelDB і BoltDB або ўласны рухавічок размеркаванага сховішча TiKV.
  • Магчымасць асінхроннай змены схемы захоўвання, якая дазваляе на лёце дадаваць слупкі і азначнікі без прыпынку апрацоўкі бягучых аперацый.

Асноўныя навіны:

  • Праведзена работа па павелічэнні прадукцыйнасці. У тэсце Sysbench выпуск 3.0 апярэджвае галінку 2.1 у 1.5 разы пры выкананні аперацый select і update, а ў тэсце TPC-C у 4.5 разы. Аптымізацыі закранулі розныя віды запытаў, у тым ліку подзапросы "IN", "DO" і "NOT EXISTS", аперацыі зліцця табліц (JOIN), выкарыстанне індэксаў і многае іншае;
    Выпуск размеркаванай СКБД TiDB 3.0Выпуск размеркаванай СКБД TiDB 3.0

  • Дададзены новы рухавічок захоўвання TiFlash, які дазваляе дамагчыся больш высокай прадукцыйнасці пры рашэнні аналітычных задач (OLAP), дзякуючы захоўванню ў прывязцы да слупкоў. TiFlash дапаўняе сабой раней прапанаванае сховішча TiKV, якое захоўвае дадзеныя ў разрэзе радкоў у фармаце ключ/значэнне і больш прымальнае для задач апрацоўкі транзакцый (OLTP). TiFlash працуе бок аб бок з TiKV і дадзеныя працягваюць па-ранейшаму рэпліцыравацца ў TiKV з выкарыстаннем пратаколу Raft для вызначэння кансэнсусу, але для кожнай групы рэплік Raft ствараецца дадатковая рэпліка, якая выкарыстоўваецца ў TiFlash. Падобны паход дазваляе дабіцца лепшага падзелу рэсурсаў паміж задачамі OLTP і OLAP, а таксама робіць дадзеныя транзакцый імгненна даступнымі для аналітычных запытаў;

    Выпуск размеркаванай СКБД TiDB 3.0

  • Рэалізаваны размеркаваны зборшчык смецця, які дазваляе істотна павысіць хуткасць зборкі смецця ў буйных кластарах і павысіць стабільнасць працы;
  • Дададзена эксперыментальная рэалізацыя сістэмы размежавання доступу на аснове роляў (RBAC). Таксама забяспечана магчымасць задання правоў доступу для аперацый ANALYZE, USE, SET GLOBAL і SHOW PROCESSLIST;
  • Дададзена магчымасць выкарыстання выразаў SQL для выблркі з лога павольных запытаў;
  • Рэалізаваны механізм хуткага аднаўлення выдаленых табліц, які дазваляе аднавіць выпадкова выдаленыя дадзеныя;
  • Уніфікаваны фармат запісваемых логаў;
  • Дададзена падтрымка песімістычнага рэжыму блакавання, які робіць апрацоўку транзакцый бліжэйшай да MySQL;
  • Дададзена падтрымка аконных функцый (window-функцыі ці аналітычныя функцыі), сумяшчальных з MySQL 8.0. Аконныя функцыі дазваляюць для кожнага радка запыту выканаць вылічэнні, выкарыстоўваючы іншыя радкі. У адрозненне ад агрэгатных функцый, якія згортваюць згрупаваны набор радкоў у адзін радок, аконныя функцыі вырабляюць агрэгавання на аснове змесціва «акна», які ўключае адну або больш радкоў з выніковага набору. Сярод рэалізаваных аконных функцый:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE , LAST_VALUE, RANK, DENSE_RANK і ROW_NUMBER;

  • Дададзена эксперыментальная падтрымка ўяўленняў (VIEW);
  • Палепшана сістэма секцыянавання (партыцыравання), дададзена магчымасць размеркавання дадзеных па секцыях на падставе дыяпазону значэнняў або хэшаў;
  • Дададзены фрэймворк для распрацоўкі плагінаў, напрыклад, ужо падрыхтаваны плагіны для выкарыстання белага спісу IP або вядзення лога аўдыту;
  • Забяспечана эксперыментальная падтрымка функцыі "EXPLAIN ANALYZE" для пабудовы плана выканання SQL-запыту (SQL Plan Management);
  • Дададзена каманда next_row_id для атрымання ідэнтыфікатара наступнага радка;
  • Дададзены новыя ўбудаваныя функцыі JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK ,COALESCE і NAME_CONST.

Крыніца: opennet.ru

Дадаць каментар