در دسترس انتشار یک DBMS توزیع شده TiDB 4.0، تحت تأثیر فناوری های گوگل توسعه یافته است گیره и F1. TiDB به دسته سیستم های هیبریدی HTAP (پردازش تراکنش/تحلیلی ترکیبی) تعلق دارد که هم قادر به ارائه تراکنش های بلادرنگ (OLTP) و هم پردازش پرس و جوهای تحلیلی است. این پروژه به زبان Go نوشته شده است و توزیع شده توسط دارای مجوز Apache 2.0.
ویژگی های TiDB:
پشتیبانی SQL و ارائه یک رابط مشتری سازگار با پروتکل MySQL، که تطبیق برنامه های موجود برای MySQL را با TiDB ساده می کند و همچنین امکان استفاده از کتابخانه های مشتری رایج را فراهم می کند. علاوه بر پروتکل MySQL، می توانید از یک API مبتنی بر JSON و یک رابط برای Spark برای دسترسی به DBMS استفاده کنید.
ویژگی های SQL از نمایه ها، توابع انبوه، GROUP BY، ORDER BY، عبارات متمایز، ادغام (LEFT JOIN / RIGHT JOIN / CROSS JOIN)، نماها، توابع پنجره و سوالات فرعی پشتیبانی می کند. قابلیت های ارائه شده برای سازماندهی کار با TiDB برای برنامه های کاربردی وب مانند PhpMyAdmin کافی است، جوگ ها و وردپرس؛
مقیاس پذیری افقی و تحمل خطا: اندازه ذخیره سازی و قدرت پردازش را می توان به سادگی با اتصال گره های جدید افزایش داد. داده ها در بین گره ها با افزونگی توزیع می شوند و در صورت شکست تک تک گره ها، عملیات ادامه می یابد. شکست ها به طور خودکار رسیدگی می شوند.
سیستم ثبات را تضمین می کند و برای نرم افزار مشتری مانند یک DBMS بزرگ به نظر می رسد، علیرغم این واقعیت که در واقع، داده های بسیاری از گره ها برای تکمیل تراکنش جذب می شوند.
Для физического хранения данных на узлах могут применяться разные бэкенды, например, локальные движки хранения GoLevelDB и BoltDB или собственные движки распределённого хранилища TiKV и TiFlash. TiKV хранит данные в разрезе строк в формате ключ/значение и является более оптимальным для задач обработки транзакций (OLTP). TiFlash хранит данные в привязке к столбцам и позволяет добиться более высокой производительности при решении аналитических задач (OLAP).
امکان تغییر ناهمزمان طرح ذخیره سازی، به شما این امکان را می دهد که بدون توقف پردازش عملیات در حال انجام، ستون ها و نمایه ها را در لحظه اضافه کنید.
در نسخه جدید:
По умолчанию включён распределённый сборщик мусора Green GC, позволяющий существенно повысить скорость сборки мусора в крупных кластерах и повысить стабильность работы;
Добавлена поддержка больших транзакций, размер которых ограничены практически размером физической памяти. Ограничение размера одной транзакции увеличено со 100 МБ до 10ГБ;
Добавлена поддержка команд BACKUP и RESTORE для резервного копирования;
Добавлена возможность установки блокировки на таблицы;
Добавлен совместимый с MySQL механизм изоляции транзакций на уровне чтения (READ COMMITTED);
В команду «ADMIN SHOW DDL JOBS» добавлена поддержка выражений LIKE и WHERE;
Добавлен параметр oom-use-tmp-storage, позволяющий использовать временные файлы для кэширования промежуточных результатов в условиях нехватки оперативной памяти;
Добавлено ключевое слово Random для присвоения атрибутам случайных значений;
В команде LOAD DATA появилась возможность использования шестнадцатеричных и двоичных выражений;
Добавлено 15 параметров для управления поведением оптимизатора;
Добавлены средства для диагностики производительности SQL-запросов. Добавлен лог медленных запросов, доступный через системные таблицы SLOW_QUERY / CLUSTER_SLOW_QUERY;
Добавлена поддержка функций для работы с последовательностями;
Добавлена возможность динамического изменения параметров конфигурации, читаемых из PD (Placement Driver, сервер управления кластером). Добавлена возможность использования выражения «SET CONFIG» для изменения настроек узлов PD/TiKV.
Добавлена настройка max-server-connections для ограничения максимального числа одновременных соединений к серверу (по умолчанию 4096);
Увеличена производительность в ситуациях, когда запрошенные столбцы полностью покрываются индексами;
Добавлена оптимизация запросов на основе слияния индексов;
Повышена производительность операций с диапазонами значений;
Снижена нагрузка на CPU за счёт кэширования результатов обращения к индексам и отсеивания дубликатов;
Добавлена поддержка нового формата хранения строк, позволяющего увеличить производительность таблиц с большим числом столбцов;
В функции GROUP_CONCAT появилась поддержка выражения «ORDER BY»;
Добавлена возможность извлечения данных из лога TiFlash через SQL;
В команде «RECOVER TABLE реализована поддержка восстановления обрезанных таблиц;
Добавлена системная таблица DDLJobs для запроса деталей о выполнении работ DDL;
Добавлена возможность применения команды SHOW CONFIG для показа настроек PD и TiKV;