The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск распределённой СУБД TiDB 2.0

29.04.2018 17:20

Состоялся релиз распределённой СУБД TiDB 2.0, развиваемой под впечатлением от технологий Google Spanner и F1. 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 таких web-приложений, как PhpMyAdmin, Gogs и Wordpress.
  • Возможность горизонтального масштабирования и обеспечения отказоустойчивости: размер хранилища и вычислительную мощность можно наращивать простым подключением новых узлов, данные распределяются по узлам с избыточностью, позволяющей продолжить работу в случае сбоя отдельных узлов. Сбои обрабатываются автоматически.
  • Система гарантирует непротиворечивость и для клиентского ПО выглядит как одна большая СУБД, несмотря на то, что фактически для выполнения транзакции привлекаются данные со множества узлов.
  • Для физического хранения данных на узлах могут применяться разные бэкенды, например, локальные движки хранения GoLevelDB и BoltDB или собственный движок для распределённых хранилищ TiKV.
  • Возможность асинхронного изменения схемы хранения, позволяющая на лету добавлять столбцы и индексы без остановки обработки текущих операций.

Ключевые улучшения в TiDB 2.0:

  • Внесён большой набор улучшений в оптимизатор SQL-запросов:
    • Для сокращения потребления памяти для хранения статистики задействованы более компактные структуры данных.
    • Ускорена загрузка статистики при запуске сервера.
    • Добавлена возможность динамического обновления статистики.
    • Оптимизирована модель вычисления веса запроса.
    • Улучшен анализ сложных запросов на предмет возможности применения индексов.
    • Добавлена возможность ручного определения порядка слияния таблиц при помощи конструкции STRAIGHT_JOIN.
    • Увеличена производительность выполнения запросов с пустым "GROUP BY".
    • Добавлена поддержка использования индексов для функций MAX/MIN;
    • Улучшена оптимизация подзапросов и их преобразования в слияния "LEFT OUTER JOIN".
  • В движке обработки SQL-запросов:
    • Добавлена поддержка TLS;
    • Расширена поддержка синтаксиса SQL, улучшена совместимость с MySQL, добавлена поддержка дополнительных типов данных и функций;
    • Добавлена поддержка протокола Proxy;
    • Расширено число предоставляемых метрик для мониторинга;
    • Добавлена проверка корректности файлов конфигурации;
    • Добавлена возможность получения настроек через HTTP API;
    • Добавлена поддержка многопоточной сборки мусора. Ускорен процесс сборки мусора и оптимизировано выставление блокировок при пакетном выполнении операций (Batch mode);
    • Проведён рефакторинг всех операторов с использованием архитектуры Chunk, увеличена производительность аналитических запросов и сокращено потребление памяти. Существенно улучшены результаты прохождения тестов TPC-H;
    • Добавлена поддержка операторов потокового агрегирования данных;
    • Более чем в 10 раз увеличена скорость загрузки данных оператором "LOAD", операций "INSERT .. IGNORE" и обновления данных с дублирующимися ключами;
    • Предложена возможность ограничения размера памяти, которая может быть израсходована в процессе обработке одного SQL-запроса;
  • Улучшена совместимость с инструментом управления СУБД Navicat;
  • Улучшена совместимость с JDBC;
  • Добавлена поддержка дополнительных режимов работы SQL;
  • Оптимизирована производительность операции добавления индекса и предоставлена возможность добавления индекса в низкоприоритетном режиме, минимизирующем влияние на другие операции;
  • Реализована возможность восстановления данных индекса при помощи команды "ADMIN RECOVER INDEX";
  • Появилась возможность изменения опций таблицы при помощи выражения ALTER.


  1. Главная ссылка к новости (https://github.com/pingcap/tid...)
  2. OpenNews: Первый стабильный выпуск распределённой СУБД TiDB
  3. OpenNews: Выпуск отказоустойчивой СУБД CockroachDB 2.0
  4. OpenNews: Доступна распределённая СУБД CitusDB 7.3
  5. OpenNews: Стабильный релиз СУБД MySQL 8.0
  6. OpenNews: Компания Apple открыла код распределённой СУБД FoundationDB
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/48511-tidb
Ключевые слова: tidb, database
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (8) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.4, Вареник (?), 17:57, 29/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Так чем она отличается от десятка таких же?
     
     
  • 2.5, Crazy Alex (ok), 18:48, 29/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    ну, кластерность плюс мускульный протокол - уже не так уж плохо. Понятно, что чем-то за это заплатить придётся, но кое-где очень хорошо сядет
     
  • 2.15, Аноним (-), 17:17, 01/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Можно перечислить весь десяток?
     

  • 1.9, ГН (?), 00:24, 30/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Увеличена производительность выполнения запросов с пустым "GROUP BY".

    Наконец-то! Ждали всем шреддером!

    > Особенности TiDB:
    > Возможность асинхронного изменения схемы хранения, позволяющая на лету добавлять столбцы и индексы без остановки обработки текущих операций.

    А в каких СУРБД сегодня существует такая проблема?

     
     
  • 2.10, angra (ok), 01:18, 30/04/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > А в каких СУРБД сегодня существует такая проблема?

    Например в мускуле.

     
  • 2.12, Anonim (??), 17:15, 30/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А в каких базах данных это сделано не как обычный блоб?
     
     
  • 3.13, funny.falcon (?), 11:06, 01/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    В PostgreSQL можно свободно добавлять столбцы (если у них дефолт NULL). И это было уже больше пятнадцати лет, и к json отношения не имеет.
     
  • 2.14, KonstantinB (ok), 16:51, 01/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > А в каких СУРБД сегодня существует такая проблема?

    В той или иной мере во всех. Для версионника это нетривиальная операция. В том же postgresql CREATE INDEX CONCURRENTLY появился относительно недавно и имеет ряд ограничений.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру