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.
  • Можливість асинхронного зміни схеми зберігання, що дозволяє на льоту додавати стовпці і індекси без зупинки обробки поточних операцій.

Примітки

Посилання