Dağıtılmış DBMS TiDB 3.0'ın piyasaya sürülmesi

Mevcut dağıtılmış bir DBMS'nin yayınlanması TiDB 3.0, Google teknolojilerinin etkisi altında geliştirildi İngiliz anahtarı и F1. TiDB, hem gerçek zamanlı işlemler (OLTP) sağlama hem de analitik sorguları işleme kapasitesine sahip hibrit HTAP (Hibrit İşlemsel/Analitik İşleme) sistemleri kategorisine aittir. Proje Go dilinde yazılmıştır ve tarafından dağıtıldı Apache 2.0 altında lisanslanmıştır.

TiDB'nin özellikleri:

  • MySQL için yazılan mevcut uygulamaların TiDB'ye uyarlanmasını kolaylaştıran ve aynı zamanda ortak istemci kitaplıklarının kullanımına olanak tanıyan, SQL desteği ve MySQL protokolüyle uyumlu bir istemci arayüzünün sağlanması. DBMS'ye erişmek için MySQL protokolüne ek olarak JSON tabanlı bir API ve Spark için bir bağlayıcı kullanabilirsiniz.
  • SQL özellikleri; dizinleri, toplama işlevlerini, GROUP BY, ORDER BY, DISTINCT ifadelerini, birleştirmeleri (LEFT JOIN / RIGHT JOIN / CROSS JOIN), görünümleri, pencere işlevlerini ve alt sorguları destekler. Sağlanan yetenekler, PhpMyAdmin gibi web uygulamaları için TiDB ile çalışmayı organize etmek için yeterlidir, Gogs ve WordPress;
  • Yatay ölçeklenebilirlik ve hata toleransı: Depolama boyutu ve işlem gücü, yalnızca yeni düğümlerin bağlanmasıyla artırılabilir. Veriler, yedeklilik ile düğümler arasında dağıtılır ve bireysel düğümlerin arızalanması durumunda operasyonun devam etmesine olanak tanır. Arızalar otomatik olarak ele alınır.
  • Sistem tutarlılığı garanti eder ve istemci yazılımı için büyük bir DBMS gibi görünür; buna rağmen aslında işlemi tamamlamak için birçok düğümden gelen veriler çekilir.
  • Для физического хранения данных на узлах могут применяться разные бэкенды, например, локальные движки хранения GoLevelDB и BoltDB или собственный движок распределённого хранилища TiKV.
  • Depolama şemasını eşzamansız olarak değiştirme yeteneği, devam eden işlemlerin işlenmesini durdurmadan anında sütun ve dizin eklemenize olanak tanır.

Ana yenilikler:

  • Проведена работа по увеличению производительности. В тесте Sysbench выпуск 3.0 опережает ветку 2.1 в 1.5 раза при выполнении операций select и update, а в тесте TPC-C в 4.5 раза. Оптимизации затронули различные виды запросов, включая подзапросы «IN», «DO» и «NOT EXISTS», операции слияния таблиц (JOIN), использование индексов и многое другое;
    Dağıtılmış DBMS TiDB 3.0'ın piyasaya sürülmesiDağıtılmış DBMS TiDB 3.0'ın piyasaya sürülmesi

  • Добавлен новый движок хранения TiFlash, позволяющий добиться более высокой производительности при решении аналитических задач (OLAP), благодаря хранению в привязке к столбцам. TiFlash дополняет собой ранее предлагаемое хранилище TiKV, хранящее данные в разрезе строк в формате ключ/значение и более опримальное для задач обработки транзакций (OLTP). TiFlash работает бок о бок с TiKV и данные продолжают как и раньше реплицироваться в TiKV с использоанием протокола Raft для определении консенсуса, но для каждой группы реплик Raft создаётся дополнительная реплика, которая используется в TiFlash. Подобный поход позволяет добиться лучшего разделения ресурсов между задачами OLTP и OLAP, а также делает данные транзакций мгновенно доступными для аналитических запросов;

    Dağıtılmış DBMS TiDB 3.0'ın piyasaya sürülmesi

  • Реализован распределённый сборщик мусора, позволяющий существенно повысить скорость сборки мусора в крупных кластерах и повысить стабильность работы;
  • Добавлена экспериментальная реализация системы разграничения доступа на основе ролей (RBAC). Также обеспечена возможность задания прав доступа для операций ANALYZE, USE, SET GLOBAL и SHOW PROCESSLIST;
  • Добавлена возможность использования выражений SQL для выблрки из лога медленных запросов;
  • Реализован механизм быстрого восстановления удалённых таблиц, позволяющий восстановить случайно удалённые данные;
  • Унифицирован формат записываемых логов;
  • Добавлена поддержка пессимистического режима блокировки, который делает обработку транзакций более близкой к MySQL;
  • Добавлена поддержка оконных функций (window-функции или аналитические функции), совместимых с MySQL 8.0. Оконные функции позволяют для каждой строки запроса выполнить вычисления, используя другие строки. В отличие от агрегатных функций, которые свёртывают сгруппированный набор строк в одну строку, оконные функции производят агрегирование на основе содержимого «окна», включающего одну или более строк из результирующего набора. Среди реализованных оконных функций:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE , LAST_VALUE, RANK, DENSE_RANK и ROW_NUMBER;

  • Добавлена экспериментальная поддержка представлений (VIEW);
  • Улучшена система секционирования (партицирования), добавлена возможность распределения данным по секциям на основании диапазона значений или хэшей;
  • Добавлен фреймворк для разработки плагинов, например, уже подготовлены плагины для использования белого списка IP или ведения лога аудита;
  • Обеспечена экспериментальная поддержка функции «EXPLAIN ANALYZE» для построения плана выполнения SQL-запроса (SQL Plan Management);
  • Добавлена команда next_row_id для получения идентификатора следующей строки;
  • Добавлены новые встроенные функции JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK ,COALESCE и NAME_CONST.

Kaynak: opennet.ru

Yorum ekle