TiDB 3.0 분산 DBMS 릴리스

사용 가능 분산 DBMS 릴리스 TiDB 3.0Google 기술의 영향으로 개발 스패너 и F1. TiDB는 실시간 트랜잭션(OLTP)을 제공하고 분석 쿼리를 처리할 수 있는 하이브리드 HTAP(Hybrid Transactional/Analytical Processing) 시스템 범주에 속합니다. 프로젝트는 Go로 작성되었으며 배포자 Apache 2.0에 따라 라이센스가 부여되었습니다.

TiDB 기능:

  • SQL 지원 및 MySQL 프로토콜과 호환되는 클라이언트 인터페이스 제공으로 MySQL용으로 작성된 기존 애플리케이션을 TiDB에 쉽게 적용할 수 있으며 공통 클라이언트 라이브러리도 사용할 수 있습니다. MySQL 프로토콜 외에도 JSON 기반 API와 Spark용 커넥터를 사용하여 DBMS에 액세스할 수 있습니다.
  • SQL의 기능 중 인덱스, 집계 함수, GROUP BY, ORDER BY, DISTINCT 표현식, 머지(LEFT JOIN / RIGHT JOIN / CROSS JOIN), 뷰, 윈도우 함수, 서브쿼리가 지원된다. 제공된 기회는 PhpMyAdmin과 같은 웹 응용 프로그램의 TiDB 작업을 구성하기에 충분합니다. Gogs 그리고 워드프레스;
  • 확장 및 복원력: 새 노드를 추가하기만 하면 스토리지 및 처리 능력을 확장할 수 있습니다. 데이터는 개별 노드에 장애가 발생해도 작업을 계속할 수 있도록 중복성을 갖춘 노드 전체에 분산됩니다. 실패는 자동으로 처리됩니다.
  • 시스템은 일관성을 보장하고 실제로 트랜잭션을 완료하기 위해 많은 노드의 데이터가 관련되어 있음에도 불구하고 클라이언트 소프트웨어에 하나의 큰 DBMS처럼 보입니다.
  • Для физического хранения данных на узлах могут применяться разные бэкенды, например, локальные движки хранения GoLevelDB и BoltDB или собственный движок распределённого хранилища TiKV.
  • 스토리지 체계를 비동기식으로 변경하는 기능을 통해 진행 중인 작업 처리를 중단하지 않고 즉시 열과 인덱스를 추가할 수 있습니다.

주요 혁신:

  • Проведена работа по увеличению производительности. В тесте Sysbench выпуск 3.0 опережает ветку 2.1 в 1.5 раза при выполнении операций select и update, а в тесте TPC-C в 4.5 раза. Оптимизации затронули различные виды запросов, включая подзапросы «IN», «DO» и «NOT EXISTS», операции слияния таблиц (JOIN), использование индексов и многое другое;
    TiDB 3.0 분산 DBMS 릴리스TiDB 3.0 분산 DBMS 릴리스

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

    TiDB 3.0 분산 DBMS 릴리스

  • Реализован распределённый сборщик мусора, позволяющий существенно повысить скорость сборки мусора в крупных кластерах и повысить стабильность работы;
  • Добавлена экспериментальная реализация системы разграничения доступа на основе ролей (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.

출처 : opennet.ru

코멘트를 추가