TiDB

TiDB — розподілена система керування базами даних, що розвивається під враженням від технологій Google Spanner[1] і F1[2]. 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 таких вебзастосунків, як PhpMyAdmin, Gogs і Wordpress.
  • Можливість горизонтального масштабування і забезпечення відмовостійкості: розмір сховища і обчислювальну потужність можна нарощувати простим підключенням нових вузлів, дані розподіляються по вузлах з надмірністю, що дозволяє продовжити роботу в разі збою окремих вузлів. Збої обробляються автоматично.
  • Система гарантує несуперечність і для клієнтського ПЗ виглядає як одна велика СКБД, попри те, що фактично для виконання транзакції залучаються дані з множини вузлів.
  • Для фізичного зберігання даних на вузлах можуть застосовуватися різні бекенди, наприклад, локальні рушії зберігання GoLevelDB і BoltDB або власний рушій для розподілених сховищ TiKV.
  • Можливість асинхронної зміни схеми зберігання, що дозволяє на льоту додавати стовпці і індекси без зупинки обробки поточних операцій.

Примітки

  1. Spanner: Google's Globally-Distributed Database. Архів оригіналу за 6 травня 2018. Процитовано 1 травня 2018.
  2. F1 - The Fault-Tolerant Distributed RDBMS Supporting Google's Ad Business. Архів оригіналу за 9 червня 2017. Процитовано 1 травня 2018.

Посилання

  • Офіційний сайт
  • tidb на GitHub