Выпуск версии
Примечания!
Экспериментальные функции — это функции, присутствующие в определённой версии, но ещё не официально выпущенные. Их синтаксис или реализация может быть изменён или удалён без предварительного уведомления. Пожалуйста, используйте их с осторожностью.
Заметки к выпуску 4.8.12
Исправления ошибок
- Движок хранения:
- Исправлена проблема, при которой возраст таблицы MARS2 не мог быть заморожен (#IAI8EF).
Заметки к выпуску 4.8.11
Исправления ошибок
- Движок хранения:
- Исправлен сбой при наличии нескольких arraykeys с одинаковым attno в индексе mars2_btree. (#7306)
- Исправлена ошибка сопоставления при передаче brinkey оператора like в MARS2. (#7252)
- Исправлена проблема, при которой MARS2 возвращал неверные результаты после передачи оператора BRINKEY в режиме UniqueMode. (#7225)
- Оптимизатор:
- Исправлена проблема, при которой оптимизатор выдавал ошибку при преобразовании подзапроса в оператор JOIN для выполнения. (#6524)
Заметки к выпуску 4.8.10
Исправления ошибок
- Движок хранения:
- Исправлена проблема, при которой индекс mars2_btree возвращал данные, не соответствующие условиям запроса, когда условия запроса повторялись. (#6632)
- Исправлена проблема, при которой индекс mars2_btree возвращал неверные результаты для определённых запросов из-за неполной логики поиска дублирующих ключей сортировки. (#7041)
Заметки к выпуску 4.8.9
Улучшения и дополнения
Enhancements and Improvements
- MatrixGate:
- Поддержка включения или отключения автоматической настройки количества слотов для указанных задач, а также поддержка запроса статуса настройки всех задач или указанных задач. (Документация)
- Введён параметр --abort-by-pause-timeout в категории [writer.stream]. Поддерживает отказ от данных, накопленных в памяти, когда задача (Job) переходит в состояние паузы, на основе тайм-аута, указанного этим параметром. (Документация)
- Поддержка пакетной записи данных типа JSON через HTTP. (Документация)
Исправления ошибок
- MatrixGate:
- Исправлена проблема, при которой миграция данных завершалась неудачей и прекращалась, когда количество соединений каналов данных превышало количество сегментов в исходном кластере в режиме миграции. (#6800)
- Исправлена проблема, при которой MatrixGate (mxgate) не реагировал на изменения языка определения данных (DDL) и не обновлял задачи автоматически после отказа основного узла (Master) и автоматического переключения на резервный узел (Standby) во время отказоустойчивого переключения. (#6850)
- Исправлена проблема, при которой служба mxgate, настроенная через функцию потока данных Kafka в MatrixUI, многократно перезапускалась процессом supervisor, если целевая таблица не существовала. (#6928-1)
- Исправлена проблема, при которой одновременный запуск нескольких потоков данных Kafka в нескольких окнах браузера мог вызвать конфликт порта mxgate на стороне сервера. (#6928-2)
- Исправлена проблема, при которой MatrixGate мог не продолжить извлечение данных из consumer-group после перезапуска/сбоя базы данных при использовании режима consumer-group с источником данных Kafka. (#6848)
- Улучшена семантика сопоставления JSON: ввод { “key”: null } теперь сопоставляет ключ со значением NULL в базе данных. (#6536)
- Исправлена проблема, при которой после приостановки задачи с помощью команды mxgate pause (без параметра -X) mxgate не мог быть остановлен с помощью mxgate stop или Ctrl+C. (#6519)
- Исправлена проблема конфликта между изменением DDL таблицы данных, попыткой функции автоматической настройки слотов изменить статус задачи и состоянием приостановленной задачи. (#6436)
- При сопоставлении строк данных с JSON, если для каждого столбца, требующего сопоставления, в текущей строке данных не найдено соответствующего ключа, строка помечается как недействительная, и пустая строка не вставляется в базу данных. (#6488)
- Улучшены производительность и использование памяти компонента ведения журналов mxgate. (#6242)
- Исправлена проблема, при которой mxgate не мог автоматически создать расширение matrixts, если путь поиска по умолчанию базы данных не был установлен в «public». (#6430)
- Исправлена проблема, при которой отчёты метрик от mxgate watch становились неясными при использовании нескольких процессов mxgate в одной базе данных. (#5848)
- Оптимизировано время освобождения пула памяти в компоненте plain transform, что снизило использование памяти процессом mxgated. (#6071)
- Оптимизирован цикл освобождения памяти для обработчиков сжатия zstd, что снизило использование памяти процессом mxgated. (#6299)
- Исправлена проблема, при которой сеансы базы данных, установленные MatrixGate, не могли обновляться периодически, когда в кластере был резервный узел. (#6308)
- Графический интерфейс:
- Исправлена проблема, при которой страница не отображалась из-за ошибки JavaScript при поиске на странице потока данных. Затронутые версии — 4.8.7 и 4.8.8. (#6977-1)
- Исправлена проблема взаимодействия, при которой страница автоматически обновлялась и переходила в начало страницы после ручной прокрутки, вместо того чтобы оставаться в исходной позиции прокрутки. (#6977-2)
Заметки к выпуску 4.8.8
Исправления ошибок
- Ядро запросов:
- Исправлена проблема, при которой выполнение оператора WITH в определённых сценариях приводило к сбою кластера.
Заметки к выпуску 4.8.7
Исправления ошибок
- Межсоединение:
- Исправлен сбой, вызванный некорректным освобождением TCP-соединений при определённых условиях.
- Инструменты:
- Исправлена проблема недостаточных прав доступа к инструменту mxpacklogs в некоторых системах.
Заметки к выпуску 4.8.6
Исправления ошибок
- MatrixGate:
- Исправлена проблема, при которой MatrixGate не мог возобновить задачи из-за внутренних тайм-аутов во время автоматического секционирования таблиц данных, что приводило к сбоям при вводе данных. (#6165)
- База данных YMatrix:
- Исправлена проблема, при которой освобождение соединений приводило к чрезмерному использованию памяти базой данных. (#5826)
Заметки к выпуску 4.8.5
Исправления ошибок
- MatrixGate:
- Исправлена проблема, при которой все таблицы становились недоступными для записи после активации MatrixGate автоматического управления секциями.
- Ядро выполнения:
- Исправлены ошибки запросов, вызванные некорректными настройками типа оператора.
Заметки к выпуску 4.8.4
Исправления ошибок
- Движки хранения:
- Исправлена проблема сбоев, вызванная движком хранения AOCS во время сканирования индексов.
- Исправлена проблема сбоев, вызванная определением более чем 32 индексов minmax в движке хранения MARS2.
- MatrixGate:
- Исправлена проблема чрезмерного использования памяти MatrixGate при запуске сжатия.
- Исправлена внутренняя логическая ошибка, вызванная тайм-аутами соединений в MatrixGate.
- MatrixManager:
- Исправлено чрезмерное использование памяти, вызванное тем, что MatrixMgr долгое время не освобождал соединения.
- Инструменты:
- Исправлена ошибка, возникающая при выполнении операций экспорта DDL в mxshift.
Заметки к выпуску 4.8.3
Выпуск функций
- Улучшения функциональности mxshift (документация):
- В категорию [database.source] файла конфигурации добавлен параметр
install-dir. Этот параметр заменяет исходный параметр gphome в категории [scope] и используется для настройки пути установки базы данных.
- В категорию [database.source] файла конфигурации добавлена новая опция конфигурации
hostname-to-ip, поддерживающая указание IP-адреса, соответствующего имени хоста.
Исправления ошибок
- Ядро выполнения:
- Исправлен сбой, вызванный обработкой логики группировки функцией скользящего окна.
- Инструменты:
- Исправлена ошибка разбора, вызванная специальными символами в pgbench.
- MatrixGate:
- Исправлена проблема, при которой MatrixGate блокировал вставку данных в другие таблицы при блокировке таблицы.
Заметки к выпуску 4.8.2
Выпуск функций
- Обновление MatrixGate:
- Поддержка наблюдения за полным процессом записи данных, используется для отладки производительности передачи данных от MatrixGate к Segment. (Документ)
- Поддержка горячего обновления уровней логирования MatrixGate. (Документ)
- [Экспериментальные функции] Предоставлена поддержка разбора и сопоставления данных в формате JSON для всех типов источников данных (http/stdin/kafka/transfer/grpc) в параметре --source. (Документ)
- [Экспериментальные функции] Параметр --dml-template поддерживает прием данных в формате TEXT/CSV. (Документ)
- После ручного переключения Master на Standby, информация метрик, записываемая в MatrixGate, будет переключена на Standby.
- Скорость значительно увеличилась при транзакции, не выполняющей операцию записи данных.
- Улучшение функций mxshift (документ):
- Реализация миграции DDL таблиц данных в единицах базы данных, с возможностью выбора миграции только DDL.
- [Экспериментальные функции] Поддержка экспорта DDL таблиц данных в файлы.
- [Экспериментальные функции] Поддержка прямого импорта файлов DDL таблиц данных или их модификации с последующим параллельным импортом в базу данных.
- Обновление графического интерфейса:
- Страница развертывания полностью обновлена, шаги стали проще. (Документ)
- Страница расширения полностью обновлена, шаги стали легче. (Документ)
- Добавлена функция проверки статуса высокой доступности Segment. (Документ)
- Обновление страницы мониторинга состояния для оптимизации внешнего вида страницы. (Документ)
- Обновление документации для быстрого старта, добавлены страницы тестов записи и запросов. (Документ)
- Улучшение мониторинга:
- Поддержка пользовательских скриптов мониторинга: позволяет пользователям изменять скрипты мониторинга при развертывании Grafana/Prometheus через mxmgr_init_local() или mxmgr_init_exporter() для самостоятельной разработки проектов мониторинга. (Документ)
Исправление ошибок
- Движок хранения:
- Исправлена проблема, при которой движок хранения MARS2 работал некорректно при обработке ключей сортировки типа text.
- Исправлена проблема, при которой сжатие движка хранения AOCO вызывало ошибки памяти.
- Исправлена ошибка, при которой диагностический инструмент хранения datainspect завершался сбоем.
- Исправлена проблема переполнения xid в движке хранения MARS2.
- Цилиндр:
- Исправлена ошибка, при которой скользящее окно не могло срабатывать.
- Исправлена ошибка, при которой инструкции APM/TBS/SV не могли срабатывать после расширения и перераспределения данных с определённой вероятностью.
- MatrixGate:
- Исправлена проблема, при которой некоторые HTTP-запросы, вставляющие данные в базу данных в MatrixGate, не отвечали при перезапуске или возобновлении YMatrix.
- Исправлена проблема, при которой очередь записи MatrixGate блокировалась при удалении или изменении пользователем целевой таблицы, что приводило к зависанию поступления других транзакций.
- Исправлена проблема, при которой MatrixGate не сообщал об ошибке при разборе неверных данных JSON вида "1,2,3".
- MatrixManager:
- Исправлена проблема, при которой перезапуск mxstat завершался неудачей.
- Исправлена проблема, при которой mxstat иногда завершался аварийно при выходе процесса.
- Ядро запросов:
- Исправлена проблема, при которой настройки кодировки клиента были некорректны в режиме прямой маршрутизации.
- Исправлена проблема, при которой операторы COPY некорректно обрабатывали недопустимые параметры.
Заметки к выпуску 4.8.1
Выпуск функций
- Добавлен новый диагностический инструмент хранения Datainspect. Этот инструмент доступен только для таблиц MARS2. (Документ)
- Улучшены функции JAVA SDK MatrixGate, значительно повышена производительность записи. (Документ)
- Обновление графического интерфейса:
- На странице мониторинга запросов добавлена функция мониторинга блокирующих сеансов. (Документ)
- Страница управления кластером полностью обновлена, разделена на три секции: просмотр показателей, просмотр экземпляров и просмотр списка. (Документ)
Исправление ошибок
- Движок хранения:
- При участии таблицы MARS2 в соединении nestloop результат был неверным из-за неполной передачи параметров сканирования индекса.
- Группы ресурсов:
- Исправлена проблема, при которой группы ресурсов аварийно завершались при обработке SIGTERM.
- Оптимизатор:
- Исправлена проблема сбоев CTE из-за отсутствия параллельного выполнения.
- Исправлена ошибка при некорректной обработке вычислений подпланов при запуске ORCA.
- Ядро выполнения:
- Исправлена проблема, при которой Share CTE приводил к зависанию операции из-за некорректной обработки Direct Dispatch.
Заметки к выпуску 4.8.0
Выпуск функций
- Обновление MatrixGate:
- Поддержка передачи сжатых данных ZSTD в Segment. (Документ)
- Поддержка упрощённого кода записи данных через интегрированный JAVA SDK. (Документ)
- Новый графический интерфейс:
- Интерфейс мониторинга состояния, позволяет своевременно получать письма с оповещениями, настроив свой адрес электронной почты. (Документ)
- Функция тёплого обновления, поддерживает отдельное обновление графических интерфейсов. (Документ)
- mxbackup поддерживает плагин объектного хранилища S3 для загрузки данных в объектное хранилище S3. (Документ)
- Улучшение функций mxshift. (Документ)
- Добавлены инструменты сбора и упаковки журналов mxpacklogs. (Документ)
- Поддержка платформы Ubuntu20. (Документ)
- Улучшение элементов мониторинга Grafana. (Документ)
Исправление ошибок
- Оптимизатор:
- Исправлены ошибки, вызванные обработкой повторяющихся сканирований в плане параметризованного пути соединения nestloop.
Заметки к выпуску 4.7.5
Исправление ошибок
- MatrixManager:
- Исправлена проблема неточного времени фактического выполнения SQL при получении медленных запросов.
Заметки к выпуску 4.7.4
Исправление ошибок
- Оптимизатор:
- Исправлена ошибка, возникающая, когда ключ распределения Redistration Motion содержит Param в плане запроса.
Заметки к выпуску 4.7.3
Исправление ошибок
- Движок хранения:
- Исправлена проблема, при которой таблица MARS2 на зеркальном узле не полностью удаляла требуемые файлы при обработке vacuum.
Заметки к выпуску 4.7.2
Исправление ошибок
- Оптимизатор:
- Исправлена ошибка, связанная с константными значениями при выполнении Redistration Motion.
4.7.1 Примечания к выпуску
Исправление ошибок
- MatrixManager:
- Исправлена ошибка, при которой сбой mxstat приводил к аварийному завершению операции при сохранении снимков.
Примечания к выпуску 4.7.0
Новый функционал
- Поддержка синтаксиса CREATE INDEX CONCURRENTLY. (Документация)
- Добавлен новый инструмент миграции данных — mxshift. (Документация)
Исправление ошибок
- Ядро выполнения:
- Исправлена проблема, при которой операция Copy некорректно обрабатывала прерывание, что приводило к зависанию.
- Исправлены проблемы переполнения памяти при создании большого количества секционированных таблиц.
- Движок хранения:
- Исправлена проблема неточных оценок размера relsize для таблиц AOCS только на мастер-узле.
- Инструменты:
- Исправлена ошибка, при которой Analyze неправильно обрабатывал специальные символы.
- Оптимизатор:
- Исправлена ошибка, при которой рекурсивный CTE формировал неверный план запроса в условиях использования Merge Join.
Примечания к выпуску 4.6.1
- Обновление MatrixGate:
- Для JSON-данных, подключённых через Kafka, добавлена поддержка пользовательского сопоставления полей JSON с колонками данных с помощью параметра dml-template.
- Добавлен механизм аутентификации Kafka. Реализована поддержка SCRAM через фреймворк SASL.
- Исправлены известные ошибки.
Примечания к выпуску 4.6.0
- Производительность агрегирующих запросов в хранилище MARS2 значительно оптимизирована.
- Полное обновление графического интерфейса:
- Обновлён внешний вид, улучшен визуальный опыт.
- Добавлена удобная функция однократного запуска типовых бизнес-сценариев. (Документация)
- Запись потока данных из Kafka поддерживает автоматическое создание таблиц MARS2. (Документация)
- Добавлено расширение графического интерфейса. (Документация)
- Обновление MatrixGate:
- Добавлена возможность параллельного изменения параметров записи без остановки сервиса. (Документация)
- Добавлена возможность обновления структуры таблицы без остановки сервиса. (Документация)
- Режим миграции больше не требует большого количества последовательных портов.
- Поддержка вызова внутри UDF.
- Обновление страницы мониторинга Grafana, добавлена поддержка мониторинга данных Prometheus. (Документация)
- Поддержка отечественных платформ: операционная система Galaxy Kirin V10 + платформа ARM.
- Исправлены известные ошибки.
Примечания к выпуску 4.5.0
- Официальный выпуск движка хранения MARS2, значительная оптимизация сценария UPSERT, фоновое автоматическое сжатие, исключён процесс ротации таблиц. (Документация)
- Добавлен компонент статистики запросов, позволяющий отслеживать время выполнения и потребление ресурсов. (Документация)
- Обновление MatrixGate (документация):
- Поддержка преобразования произвольных столбцов в timestamp.
- Добавлена функция просмотра метрик в реальном времени и за исторический период для данных, записываемых через MatrixGate.
- Поддержка типа boolean в операциях UPSERT.
- Обновление mxbench: пользователи могут гибко настраивать типы показателей, частоту сбора, долю NULL-значений, степень случайности и т.д. (Документация)
- Добавлена поддержка скользящего окна для потоковых вычислений, анализа и мониторинга потоковых данных, включая подписку и публикацию. (Документация)
- Поддержка Kubernetes: кластеры MatrixDB теперь можно развернуть на k8s. (Документация)
Примечания к выпуску 4.4.0
- Обновление MatrixGate (документация)
- Поддержка дедупликации в операциях UPSERT.
- Добавлены параметры
--insert-timeout и --request-timeout для управления таймаутами, предотвращающими лавинообразные сбои при высокой нагрузке.
- Переработан процесс доступа к данным Kafka, добавлена поддержка двух форматов данных и настройка соответствия полей: CSV и JSON. (Документация)
- Обновление страницы автоматического управления секциями. (Документация)
- Оператор
INSERT INTO SELECT поддерживает параллельное сканирование.
- Обновлена страница мониторинга Grafana: панель разделена на системную и базовую, добавлены описания на китайском языке. (Документация)
- PXF обновлён до версии 6.2.1, пропускная способность увеличилась в 2–5 раз при работе с большим количеством мелких файлов.
Примечания к выпуску 4.3.10
В версии 4.3.10 исправлены следующие ошибки:
- Проблема невозможности запуска зеркала после сбоя Segment.
- В некоторых случаях доступ UDF к каталогу приводит к сбою QD.
- Сбой при добавлении фильтра при доступе PXF к Hive ORC.
Примечания к выпуску 4.3.0
- Непрерывная агрегация
- Непрерывная агрегация в режиме реального времени синхронизирует данные исходной таблицы через материализованные представления, выполняя сортировку и слияние, что делает агрегирующие запросы более эффективными. (См. Документацию)
- Поддержка пространственных типов данных
- Разработана усовершенствованная версия компонента PostGIS, обеспечивающая полноценную поддержку хранения и обработки пространственных данных. (См. Документацию)
- Обновление MatrixGate
- Улучшен механизм отказоустойчивости при доступе к данным: единичная ошибка формата данных не влияет на остальные данные в пакете. (См. Документацию)
- Управление журналами MatrixGate: поддержка автоматического архивирования и очистки.
- Добавлен режим миграции для эффективной синхронизации таблиц из других кластеров Greenplum5, Greenplum6 и YMatrix Database. (См. Документацию)
- Визуализация таблиц данных
- На странице управления добавлен визуальный раздел таблиц данных, позволяющий легко просматривать состояние баз данных и таблиц кластера. (См. Документацию)
- Графическое управление автоматическим секционированием
- Возможность настройки секционированных таблиц и стратегий автоматического управления через графический интерфейс. (См. Документацию)
- Обновление движка хранения MARS
- tag_id поддерживает дополнительные типы данных: text, varchar, name и numeric, помимо целочисленных; поддерживается несколько ключей группировки, то есть использование нескольких столбцов в качестве tag_id.
- Движок MARS поддерживает операцию merge scan, позволяя обновлять существующие данные через слияние.
Примечания к выпуску 4.2.0
- Оптимизация движка MARS
- Введён интеллектуальный алгоритм сжатия, который определяет необходимость сжатия на основе типа и характеристик данных. После применения нового кодирования и сжатия объём хранилища сократился на 70%.
- Повышена производительность запросов: для запросов, отсортированных по временным меткам, задержка сократилась в тысячи раз — с уровня секунд до миллисекунд.
- Значительно снижено потребление памяти при выполнении запросов: использование памяти в операторе
SELECT снизилось на 90%.
- MatrixGate поддерживает UPSERT, что актуально для следующих сценариев (см. Документацию):
- Устройства могут повторно отправлять данные или корректировать временные метки с ошибками.
- Пакетная отправка данных разных категорий с возможностью автоматического объединения.
- Поддержка слияния и сжатия при переходе между «горячими» и «холодными» уровнями: для упрощения конвертации «горячих» данных в «холодные» в секционированных таблицах возможно объединение нескольких секций. Это снижает нагрузку на управление секциями и упрощает администрирование. См. Документацию
- Впервые представлены инструменты параллельного резервного копирования и восстановления: YMatrix Database представляет два новых инструмента — mxbackup и mxrestore. По сравнению с pg_dump и pg_restore из PostgreSQL они поддерживают параллельную обработку и обеспечивают более высокую эффективность резервного копирования и восстановления. См. Документацию
Примечания к выпуску
- Добавлен пользовательский тип данных mxkv для хранения пар «ключ-значение», что упрощает расширение дополнительных полей и обеспечивает лучшую производительность по сравнению с типом JSON.
- Поддержка доступа к данным Kafka и графического интерфейса управления.
- Предоставлены функции автоматического управления секциями. Пользователи могут настраивать политики секционирования, а фоновые процессы автоматически выполняют управление секциями.
Примечания к выпуску 4.0.3
- Добавлена визуальная установка многомашинного кластера.
- Исправлена ошибка MARS при увеличении числа секций.
Примечания к выпуску 4.0.2
- Сжатие MARS включено по умолчанию.
- Обеспечен плавный переход файла supervisor.conf после обновления.
- Параллельная оптимизация gapfill.
Примечания к выпуску 4.0.1
- Исправлена ошибка, связанная с отсутствием экранирования имён столбцов в функции building_timeseries_table.
- Оптимизация движка MARS.
Примечания к выпуску 4.0.0
YMatrix Database 4.0.0 официально выпущен. Новая версия включает следующие новые функции:
- Движок MARS
MARS — это собственный движок хранения, обладающий следующими возможностями:
- Хранение в столбцах
- Кодирование и сжатие данных
- Оптимизация push-down агрегаций
- Оптимизация сканирования без индексов
Подходит для хранения исторических «холодных» данных в сценариях работы с временными рядами, обеспечивая чрезвычайно высокую производительность агрегирующих запросов по временным меткам.
На данный момент MARS поддерживает только операции вставки, обновление и удаление не поддерживаются.
- Автоматическое развёртывание многонодового кластера
На основе автоматического развёртывания однодоменного кластера YMatrix Database 3 реализовано автоматическое развёртывание многонодового кластера. Включает:
- Добавление узлов кластера
- Настройку количества сегментов на каждом узле
- Настройку включения автоматического зеркалирования данных
Развёртывание кластера занимает менее 5 минут.
Подробности см. в Развертывание кластера YMatrix Database 4. 3. UDF для горячего и холодного хранения
Для упрощения создания секций для таблиц временных рядов, управления ими и конвертации «горячих» и «холодных» данных реализован полный набор интерфейсов управления: создание шаблонов секций, создание секций, замена «горячих» и «холодных» секций.
Подробности см. в Горячее и холодное раздельное хранение.
- time_bucket_gapfill
В компоненте временных рядов MatrixTS добавлена функция time_bucket_gapfill, основанная на time_bucket. Позволяет заполнять пропущенные временные интервалы по заданным правилам.
Поддерживаются два правила заполнения:
- locf: заполнение значениями, которые встречались ранее в группе агрегации.
- interpolate: линейная интерполяция пропущенных значений.