TiDB 3.0 бөлүштүрүлгөн DBMS чыгаруу

Жеткиликтүү бөлүштүрүлгөн DBMS чыгаруу TiDB 3.0, Google технологияларынын таасири астында иштелип чыккан Гайка ачкычы и F1. TiDB реалдуу убакыт транзакцияларын (OLTP) камсыз кылууга жана аналитикалык суроо-талаптарды иштетүүгө жөндөмдүү гибриддик HTAP (Hybrid Transactional/Analytical Processing) системаларынын категориясына кирет. Долбоор Go тилинде жазылган жана жайылуу Apache 2.0 астында лицензияланган.

TiDB өзгөчөлүктөрү:

  • SQL колдоосу жана MySQL протоколуна шайкеш келген кардар интерфейсин камсыз кылуу, ал MySQL үчүн жазылган бар тиркемелерди TiDBге адаптациялоону жөнөкөйлөтөт, ошондой эле жалпы кардар китепканаларын колдонууга мүмкүндүк берет. MySQL протоколунан тышкары, сиз DBMSке кирүү үчүн JSON негизиндеги API жана Spark үчүн туташтыргычты колдоно аласыз.
  • SQL функциялары индекстерди, агрегаттык функцияларды, ГРУППАЦИЯ БОЮНЧА, ТАРТИП БОЙУНДА, ДИСТИНКТ туюнтмаларын, бириктирүүнү (СОЛ ЖАКШЫ / ОҢ ЖАКШЫ ЖОГОРУ / CROSS JOIN), көрүнүштөрдү, терезе функцияларын жана подсуроолорду колдойт. Берилген мүмкүнчүлүктөр PhpMyAdmin сыяктуу веб-тиркемелер үчүн TiDB менен иштөөнү уюштуруу үчүн жетиштүү, көз айнек жана WordPress;
  • Горизонталдык масштабдуулук жана каталарга чыдамдуулук: жаңы түйүндөрдү туташтыруу менен сактоо көлөмүн жана иштетүү күчүн көбөйтүүгө болот. Маалыматтар ашыкча түйүндөр боюнча бөлүштүрүлөт, бул жеке түйүндөр иштебей калса, операцияны улантууга мүмкүндүк берет. Мүчүлүштүктөр автоматтык түрдө чечилет.
  • Система ырааттуулукту кепилдейт жана кардар үчүн программалык камсыздоо үчүн ал бир чоң СБМ сыяктуу көрүнөт, бирок транзакцияны аягына чыгаруу үчүн көптөгөн түйүндөрдөн маалыматтар тартылат.
  • Түйүндөрдөгү маалыматтарды физикалык түрдө сактоо үчүн, ар кандай бэкенддерди колдонсо болот, мисалы, жергиликтүү сактоо кыймылдаткычтары GoLevelDB жана BoltDB же биздин бөлүштүрүлгөн сактагыч TiKV.
  • Сактоо схемасын асинхрондук түрдө өзгөртүү мүмкүнчүлүгү, сиз жүрүп жаткан операцияларды иштетүүнү токтотпостон, мамычаларды жана индекстерди тез арада кошууга мүмкүндүк берет.

негизги инновациялар:

  • Эмгек ендурумдуулугун жогорулатуу боюнча иштер жургузулду. Sysbench тестинде тандоо жана жаңыртуу операцияларын аткарууда 3.0 бутагына караганда 2.1 чыгаруу 1.5 эсе, ал эми TPC-C тестинде 4.5 эсе тезирээк. Оптимизациялар суроолордун ар кандай түрлөрүнө, анын ичинде IN, DO жана EM EXISTS подсуроолоруна, таблицаны бириктирүү (JOIN) операциялары, индекстерди колдонуу жана башка көптөгөн нерселерге таасирин тийгизди;
    TiDB 3.0 бөлүштүрүлгөн DBMS чыгарууTiDB 3.0 бөлүштүрүлгөн DBMS чыгаруу

  • Мамычалуу сактагычтын аркасында аналитикалык маселелерди чечүүдө (OLAP) жогорку көрсөткүчтөргө мүмкүндүк берүүчү жаңы TiFlash сактагыч кыймылдаткычы кошулду. TiFlash мурда сунушталган TiKV сактагычын толуктайт, ал ачкыч/маани форматында катар боюнча маалыматтарды сактайт жана транзакцияларды иштетүү тапшырмалары (OLTP) үчүн идеалдуураак. TiFlash TiKV менен жанаша иштейт жана маалыматтар консенсусту аныктоо үчүн Raft протоколун колдонгонго чейинкидей TiKVге репликацияланышын улантат, бирок Raft репликаларынын ар бир тобу үчүн TiFlashте колдонулган кошумча реплика түзүлөт. Бул ыкма OLTP жана OLAP тапшырмаларынын ортосунда ресурстарды жакшыраак бөлүштүрүүгө мүмкүндүк берет, ошондой эле транзакция маалыматтарын аналитикалык сурамдар үчүн заматта жеткиликтүү кылат;

    TiDB 3.0 бөлүштүрүлгөн DBMS чыгаруу

  • Бөлүштүрүлгөн таштанды жыйноочу ишке киргизилди, ал ири кластерлерде таштандыларды жыйноо ылдамдыгын бир топ жогорулатып, туруктуулукту жакшыртат;
  • 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 суроосу үчүн аткаруу планын түзүү үчүн "ТҮШҮНДҮРҮҮ ANALYZE" функциясына эксперименталдык колдоо көрсөтүлдү (SQL Plan Management);
  • Кийинки саптын идентификаторун алуу үчүн next_row_id буйругу кошулду;
  • Жаңы орнотулган JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK, COALESCE жана NAME_CONST функциялары кошулду.

Source: opennet.ru

Комментарий кошуу