TiDB 3.0 тархсан DBMS хувилбар

Боломжтой тархсан DBMS хувилбар TiDB 3.0Google технологийн нөлөөн дор хөгжсөн Спаннер и F1. TiDB нь бодит цагийн гүйлгээ (OLTP) болон аналитик асуулга боловсруулах чадвартай эрлийз HTAP (Hybrid Transactional/Analytical Processing) системийн ангилалд багтдаг. Төслийг Go and хэл дээр бичсэн тараасан Apache 2.0 дагуу лицензтэй.

TiDB-ийн онцлогууд:

  • SQL-ийн дэмжлэг, MySQL протоколд нийцсэн клиент интерфэйсийг хангах нь MySQL-д зориулж бичсэн одоо байгаа програмуудыг TiDB-д дасан зохицоход хялбар болгож, нийтлэг үйлчлүүлэгч номын санг ашиглах боломжийг олгодог. MySQL протоколоос гадна та DBMS-д хандахын тулд JSON-д суурилсан API болон Spark-ийн холбогчийг ашиглаж болно.
  • SQL-ийн онцлогуудаас индексүүд, нэгтгэх функцууд, БҮЛЭГЛЭХ, ЗАХИАЛАХ, DISTINCT илэрхийллүүд, нэгтгэх (LEFT JOIN / RIGHT JOIN / CROSS JOIN), харагдац, цонхны функцууд болон дэд хайлтуудыг дэмждэг. Өгөгдсөн боломжууд нь PhpMyAdmin зэрэг вэб програмуудын TiDB-тэй ажиллахад хангалттай юм. Гогууд болон WordPress;
  • Хэмжээг багасгах, тэсвэрлэх чадвар: Хадгалах болон боловсруулах хүчин чадлыг шинэ зангилаа нэмэх замаар л нэмэгдүүлэх боломжтой. Тус тусдаа зангилаа бүтэлгүйтсэн тохиолдолд үйл ажиллагааг үргэлжлүүлэх боломжийг олгохын тулд өгөгдлийг зангилаа даяар хуваарилдаг. Алдаа дутагдлыг автоматаар зохицуулдаг.
  • Энэхүү систем нь тогтвортой байдлыг баталгаажуулж, гүйлгээг дуусгахад олон зангилааны өгөгдлийг ашигладаг хэдий ч үйлчлүүлэгчийн програм хангамжийн хувьд нэг том DBMS шиг харагддаг.
  • Зангилаанууд дээр өгөгдлийг физик байдлаар хадгалахын тулд өөр өөр арын хэсгийг ашиглаж болно, жишээлбэл, локал хадгалах систем GoLevelDB болон BoltDB эсвэл бидний түгээсэн хадгалах систем TiKV.
  • Хадгалалтын схемийг асинхроноор өөрчлөх чадвар нь явагдаж буй үйл ажиллагааны боловсруулалтыг зогсоохгүйгээр шууд багана, индекс нэмэх боломжийг олгодог.

Үндсэн инноваци:

  • Бүтээмжийг нэмэгдүүлэх ажил хийгдсэн. Sysbench тестийн хувилбарын 3.0 хувилбар нь сонгох, шинэчлэх үйлдлийг гүйцэтгэх үед 2.1 салбараас 1.5 дахин, TPC-C тестэд 4.5 дахин хурдан байдаг. Оновчлол нь IN, DO болон NOT 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 хувилбар

  • Томоохон кластеруудад хог цуглуулах хурдыг эрс нэмэгдүүлж, тогтвортой байдлыг сайжруулах боломжтой хуваарилагдсан хог цуглуулагчийг хэрэгжүүлсэн;
  • Дүрд суурилсан хандалтын хяналтын (RBAC) туршилтын хэрэгжилт нэмэгдсэн. Мөн ШИНЖИЛГЭЭ, ХЭРЭГЛЭЭ, ГОЛБАЛЫН ТОХИРУУЛАХ, ҮЙЛЧИЛГЭЭНИЙ ЖАГСААЛТ ҮЗҮҮЛЭХ үйлдлүүдэд хандах эрхийг тохируулах боломжтой;
  • Бүртгэлээс удаан асуулга гаргаж авахын тулд 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 төлөвлөгөөний менежмент) бүтээхэд зориулсан "ШИНЖИЛГЭЭНИЙГ ТАЙЛБАРЛАХ" функцэд туршилтын дэмжлэг үзүүлсэн;
  • Дараагийн мөрний ID-г авахын тулд next_row_id командыг нэмсэн;
  • JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK , COALESCE болон NAME_CONST-г шинээр суулгасан функцуудыг нэмсэн.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх