Релизы YMatrix 5
5.3.11
Дата: 2025-09-23
Исправления ошибок
- Исправлены некоторые известные проблемы
5.3.10
Дата: 2025-09-10
Исправления ошибок
- Исправлены некоторые известные проблемы
5.3.9
Дата: 2025-05-22
Исправления ошибок
- Исправлены некоторые известные проблемы
5.3.8
Дата: 2024-12-30
Доработки и улучшения
- Движок хранения
- Добавлена логика проверки RangeFile для ColumnStore (#IB7V4S)
- MatrixShift
- При наличии дублирующихся таблиц или родительских таблиц, когда некоторые дочерние таблицы указаны в списке таблиц в секции [scope] конфигурационного файла, реализована возможность автоматического удаления дубликатов с выдачей предупреждений (#72ffcea)
- Введена более строгая проверка конфигурационного файла: при запуске mxshift будут выдаваться сообщения об ошибках и подсказки при некорректном указании параметров. Например, параметр disable-connector=true должен находиться в секции [scope]; если он указан в других секциях, будет выдана ошибка (#IB5002)
- MatrixGate
- По умолчанию отключено сжатие при передаче данных между mxgate и сегментами для экономии памяти. Ранее значение по умолчанию — включённое сжатие (#IBD0PW)
- В режиме передачи разрешено перемещение данных с зеркального узла, находящегося в состоянии Down (#IBCQPB)
- MatrixUI
- При установке или расширении новой машины проверяется наличие в файле
/etc/ssh/sshd_config параметров AllowUsers/AllowGroups/DenyUsers/DenyGroups, которые могут привести к сбою операции настройки взаимного доверия по SSH между узлами кластера, и выводится конкретная информация об ошибке и рекомендации по исправлению (#IB80HF)
- mxbox
- При использовании mxrecover для выполнения операции перебалансировки кластера время простоя базы данных сокращено за счёт добавления CHECKPOINT. В то же время добавлен параметр
--skip-checkpoint для пропуска этого поведения (#IBCVOL)
- Улучшен вывод команды в консоли при использовании mxrecover для перебалансировки кластера (#IBCVOS)
- В mxrecover добавлен параметр
--prepare-timeout. При запуске mxrecover время ожидания сбора информации о состоянии кластера через etcd по умолчанию составляет 1 минуту (#IBCVOS)
- Время ожидания по умолчанию для mxstart увеличено с 1 до 5 минут, при этом по-прежнему поддерживается возможность пользовательской настройки через параметр
-t (#9ab2957c)
- Поддержка пользовательских переменных окружения при запуске процесса postmaster (#39575ad3)
- При двойном отказе в кластере разрешён запуск ближайшего первичного узла путём перезапуска базы данных (#IBCF5U)
- Высокая доступность
- В новом развернутом кластере при запуске supervisor параметр etcd исключает опцию
--enable-pprof, что повышает стабильность крупных многонодовых кластеров (#44edf1e)
- После установки YMatrix supervisor может нормально запускаться даже в случае, если запись localhost была намеренно удалена из файла
/etc/hosts пользователя (#10435b7)
- При перезагрузке хоста или первом запуске YMatrix автоматически создаются необходимые пути, от которых зависит cgroup групп ресурсов (#IB5G9O)
- Увеличено максимальное количество открытых файлов для службы supervisor и процесса etcd, решена проблема частых ошибок «слишком много открытых файлов» в очень крупных кластерах (#6ca5293dcd0)
Исправления ошибок
- Исправлены некоторые известные проблемы
5.3.7
Дата: 2024-11-27
Доработки и улучшения
- Движок хранения
- Исправлена ошибка, при которой mars3 freeze некорректно обрабатывал транзакции индекса (#IB51MP)
- Исправлена ошибка, при которой mars3 freeze не мог заморозить слишком большой RUN
- Исправлена проблема с нарушением порядка утилизации RUN в mars3 (#IB5CR4)
- Исправлена ошибка, при которой AlteredTableInfo не мог быть корректно десериализован (#IB6980)
- Добавлен GUC-параметр mars3_orderkey_contain_partkey, позволяющий использовать ключи партиционирования в уникальном режиме без их включения в ключ сортировки (#IALONR)
- Исправлена ошибка, при которой атрибут NOT NULL первого ключа сортировки можно было изменить в уникальном режиме (#IAMQGP)
- Разрешены операции добавления первичного ключа на одном узле (#IALONR)
- MatrixGate
- Оптимизация mxgate: поддержка настройки таймаута соединения сегментов как конфигурируемого GUC-параметра (#IB25VC)
- MatrixShift
- Оптимизация mxshift: при отсутствии прав используется каталог данных вместо /tmp (#IB0UY1)
- Оптимизация mxshift: при миграции данных из gp6 можно пропустить внешние таблицы (#IB0IUE)
- Оптимизация mxshift: при автоматическом отображении compresstype из zlib в zstd параметр compresslevel принудительно устанавливается в 1 (#IB0GA9)
- mxbox
- Исправлена ошибка, при которой кэширование приводило к необновлению статуса сегмента
- Исправлена обработка ситуации, когда компактизация etcd приводит к удалению текущей версии метаинформации
- Исправлена ошибка, при которой первичный узел в аварийном состоянии не останавливался своевременно после восстановления сетевого разделения
- Инструменты moveseg/initstandby проверяют, добавлен ли хост с помощью подкоманды --add, уже присутствует ли он в физическом кластере, и выводят сообщение об ошибке
- MatrixUI
- На странице нагрузки запросов суммирование значений calls_end после 0 вызывает ошибку запроса (#IAMZI0)
5.3.6
Дата: 2024-11-01
Доработки и улучшения
-
Движок выполнения
- Оптимизирована логика выбора RUN в TableCleanJob
Исправления ошибок
- Исправлены некоторые известные проблемы
5.3.5
Дата: 2024-09-05
Доработки и улучшения
- Движок хранения:
- Исправлена проблема бесконечного цикла при вставке в rowstore в uniquemode (#IAFOX2)
- Исправлена ошибка компоновки heap tuple в rowstore в uniquemode
- Исправлены проблемы совместимости со старыми версиями для ColumnStore
- Исправлена ошибка, при которой mars3 worker не завершал работу при dropdb
- Исправлена проблема с результатами mars3 btree из-за усечения ключа в uniquemode
- mars3: исправлена ошибка сбоя, вызванная тем, что fullmatch не учитывал qual
- mars3: добавлен механизм автоматического зондирования для автоматического сжатия исторического уровня
- mars3: исправлена ошибка, при которой компактизация выводила пустой RUN
5.3.4
Дата: 2024-07-19
Улучшения и исправления
- Движок хранения:
- Исправлена ошибка сбоев при повторном сканировании в mars3 (#IA4SAA)
- Исправлена ошибка сбоя при использовании VindexScan в mars3 в случае условного индекса (#IA4YOQ)
- Исправлена ошибка сбоя при использовании BitmapScan в mars3 в случае BitmapAnd (#IA7A16)
- Движок выполнения:
- Исправлена поддержка именованных курсоров в быстром дистрибьюторе в расширенном режиме (#7536)
- Исправлена ошибка индекса hnsw в плагине pgvector, из-за которой он был неработоспособен (#7547)
- Оптимизировано преобразование строковых данных в столбцовые данные в движке хранения mars3 (#7515)
- Исправлены утечки памяти при работе векторизованных агрегирующих операторов с частичными типами (#7503)
- Исправлена ошибка, при которой векторизованные операторы сканирования могли аварийно завершаться при загрузке текстовых столбцов в aocs (#IA5N8H)
- Исправлена обработка значений NULL в векторизованных выражениях IS DISTINCT FROM (#IA5APT)
- Исправлена обработка проекции по ключам группировки в векторизованном хэш-агрегирующем операторе версии v1 (#IA5OL6)
- Исправлена ошибка использования выравнивания при добавлении столбца через ALTER TABLE в движке хранения mars3 (#IA4RPX)
- Исправлена ошибка использования типа при десериализации векторизованного хэш-агрегирующего оператора версии v2 (#IAA9QI)
- Добавлена поддержка сценариев, в которых векторизованные фильтры содержат пустые суммы (IA4R4Z)
- Оптимизирован процесс векторизованного пути seqscan (IA4R4Z)
- Улучшена проверка векторизованного motion (#IA4RPK)
- Исправлена ошибка kv в выражении десериализации mxkv2 (#IA95IP)
- Исправлена ошибка при наличии дублирующихся ключей в строке входных данных mxkv2 (#IA9OW3)
- Исправлена ошибка, при которой узел Subquery не мог быть векторизован (IAAXTQ)
- Исправлена ошибка оценки выражений при откате векторизованного исполнителя (#IA9ZXC, IAAISQ)
- Оптимизирована проверка векторизованного исполнителя на поддержку выражений (#IAA5FL)
- Исправлена ошибка выбора хэш-условия для векторизованной хэш-агрегации (#IAA5FL)
- Исправлена ошибка распознавания типа соединения: 10 (#IA9Z4J)
- Исправлена ошибка, при которой агрегация DISTINCT в партиционированной таблице могла выдать ошибку «переменная не найдена в списке целей подзапроса» (#IAAWE4)
- Исправлена ошибка отправки Motion на неверный узел или сбой при обновлении таблицы с установленным segment_set (#IACDGV, IAD7W9)
- Исправлена CVE-2024-0985: неконтролируемое выполнение произвольного SQL при вызове REFRESH MATERIALIZED VIEW CONCURRENTLY пользователем без прав владельца (#IA6KD7)
- Исправлена CVE-2023-39417: подстановки @substitutions@ в скриптах расширений внутри кавычек позволяют SQL-инъекцию (#IA6KCP)
- Исправлена CVE-2023-5870: роль "pg_signal_backend" может отправлять сигналы определённым процессам суперпользователя (#IA6KC9)
- Исправлена CVE-2023-5869: переполнение буфера из-за переполнения целого числа при модификации массива (#IA6KBU)
- Исправлена CVE-2023-5868: раскрытие памяти при вызове агрегатных функций (#IA6KBE)
- Исправлена CVE-2023-2455: политики безопасности строк игнорируют изменение идентификатора пользователя после встраивания (#IA6KA6)
- Исправлена CVE-2023-2454: CREATE SCHEMA ... schema_element обходит защищённые изменения search_path (#IA6K9X)
- Исправлена CVE-2022-2625: скрипты расширений заменяют объекты, не принадлежащие расширению (#IA6K8P)
- Исправлена CVE-2021-32029: раскрытие памяти в операциях UPDATE ... RETURNING для партиционированных таблиц (#IA6K7G)
- Исправлена CVE-2021-32028: раскрытие памяти в INSERT ... ON CONFLICT ... DO UPDATE (#IA6K76)
- Исправлена CVE-2021-32027: переполнение буфера из-за переполнения целого числа при вычислении индексов массива (#IA6K6K)
- Исправлена CVE-2021-23222: libpq обрабатывает незашифрованные байты от атакующего посередине (#IA6K5Z)
- Исправлена CVE-2021-23214: сервер обрабатывает незашифрованные байты от атакующего посередине (#IA6K5D)
- Исправлена CVE-2021-3677: раскрытие памяти в определённых запросах (#IA6K4Z)
- Исправлена CVE-2021-3393: ошибки нарушения ограничений партиционирования раскрывают значения запрещённых столбцов (#IA6JTZ)
- Исправлена CVE-2020-14350: неконтролируемый элемент пути поиска в CREATE EXTENSION (#IA6JQD)
- Исправлена CVE-2020-14349: неконтролируемый элемент пути поиска в логической репликации (#IA6JPP)
- Исправлена CVE-2020-1720: в ALTER ... DEPENDS ON EXTENSION отсутствуют проверки авторизации (#IA6JOV)
- MatrixUI
- Исправлена ошибка отображения времени метрик кластера на странице Dashboard (#IABL52)
- Исправлена ошибка сохранения конфигурации сбора данных на странице анализа нагрузки в Ubuntu20 (#IAAFSS)
- Исправлена ошибка автоматической проверки некоторых отчётов shell-скриптов в Ubuntu20 (#IA9SZW)
- Исправлена уязвимость безопасности зависимостей среды выполнения UI (#IAD077)
- MatrixGate
- Исправлены утечки памяти процессов в версиях после 5.2.2 (#IAD077)
5.3.3
Дата: 2024-06-14
Улучшения и исправления
- Инструменты
- В режиме передачи при подключении mxgate к исходной базе данных установлено значение idle_in_transaction_session_timeout = 0, чтобы предотвратить сбой всей передачи данных из-за тайм-аута неактивного соединения, которое уже завершило передачу данных. (#7506)
- Добавлено автоматическое партиционирование для таблиц каталога вставок и таблиц журнала ошибок вставок для различных источников данных. (#7499)
- Движок хранения
- MARS3 добавил новый режим вставки «single» для снижения задержки вставки.
- Оптимизировано создание CV с долгосрочными проблемами блокировки при операции Insert. (#7266)
- Оптимизировано время удержания мьютексов в ParallelScan в MARS3.
- Движок выполнения
- Расширена поддержка векторизованного оконного оператора, добавлена поддержка большинства оконных функций и характеристик окон. (#6751)
- Оптимизирована производительность векторизованного оконного оператора. (#6751)
- Расширена поддержка векторизованного агрегирующего оператора для типов INTERNAL. (#6881)
- Улучшена поддержка фильтров времени выполнения. (#7049)
- Расширена поддержка таблиц с распределением по одному узлу для любых первичных или уникальных ключей. (#7125)
- Расширена поддержка таблиц с распределением по одному узлу для произвольных триггеров. (#7127)
- Улучшена поддержка предложений ON CONFLICT для таблиц с распределением по одному узлу. (#7168)
- Расширена поддержка быстрого дистрибьютора для явных транзакций. (#7124)
- Расширена поддержка быстрого дистрибьютора для операций UPDATE, INSERT и DELETE. (#7124)
- Расширена поддержка быстрого дистрибьютора для обработки нескольких операторов одновременно. (#7388)
- Улучшена поддержка таблиц с распределением по одному узлу в быстрых дистрибьюторах. (#7130)
- Улучшена поддержка реплицируемых таблиц в быстрых дистрибьюторах. (#7131)
- Расширена поддержка быстрого дистрибьютора для типов с автоинкрементом. (#7202)
- Оптимизирована производительность временных таблиц с TRUNCATE ON COMMIT DELETE ROWS. (#7279)
- Добавлена поддержка синтаксиса update table_name set table_name.column_name.
- При создании таблиц в режиме masteronly нет необходимости проверять отдельную информацию узла. (#7519)
- matrixmgr: добавлена поддержка запроса статистики о том, находится ли система в режиме fastdd, и являются ли транзакции транзакциями первой и второй стадии. (#7470)
- Расширена поддержка быстрыми дистрибьюторами prepare statement и расширенного режима. (#7139)
- Добавлено расширение yonyou: реализованы неявные преобразования типов ROWNUM, to_char, text и других (#7374 #7375 #7376)
Исправления ошибок
- Исправлены некоторые известные проблемы
5.3.2
Дата: 2024-04-19
Новые функции и улучшения
- Графический интерфейс (MatrixUI)
- Добавлена страница мониторинга процесса MatrixGate. Предоставляет наглядное графическое отображение показателей производительности для упрощения анализа производительности.
- MatrixGate
- В представление mxgate_process_view добавлено поле mxgate_config. ([Документация](/ru/doc/5.3/tools/mxgate/feature#11%20mxgate%20 data write process information, insert system tables and error log tables))
- Значение по умолчанию параметра --metrics-sample-interval в категории [metrics] изменено с 3 секунд до 15 секунд. ([Документация](/ru/doc/5.3/tools/mxgate/parameter#1%20 configuration file parameters))
- При выполнении действия pause, если истекает таймаут (50 секунд), операция вставки, соответствующая Slot, отменяется, чтобы обеспечить нормальное завершение операции pause. ([Документация](/ru/doc/5.3/tools/mxgate/feature#4%20 updates the table structure without shutting down))
- В справке команды mxgate (mxgate --help) команды pause и resume перенесены из аргументов в подкоманды.
- Большое количество одинаковых журналов выполнения объединяется для отображения (печать один раз в 10 секунд).
- Векторизованный движок выполнения
- Обновлен векторизованный планировщик запросов до версии v3. (#3427)
- Обновлен векторизованный оператор агрегации (Agg) до версии v2. (#3328)
- Оптимизирована поддержка операций distinct векторизованным оператором агрегации. (#3355, #3386, #3410)
Исправление ошибок
- Исправлены некоторые известные проблемы
5.3.1
Дата: 2024-03-29
Новые функции и улучшения
- Непрерывный сбор (CV)
- Индекс нижележащего хранилища для непрерывной кластеризации изменён по умолчанию с mars3_brin (v5.2.0–v5.3.0) на mars3_btree (начиная с v5.3.1).
Исправление ошибок
- Исправлены некоторые известные проблемы
5.3.0
Дата: 2024-03-22
Выпуск новых функций
- Графический интерфейс (MatrixUI)
- Добавлена новая домашняя страница с функциями анализа показателей ресурсов и статистики запросов.
- Добавлен интерфейс на английском языке.
- Инструмент миграции экземпляров узлов данных (Segment) mxmoveseg
- Поддерживается миграция резервных узлов мастера (Standby). (Документация)
- MatrixGate
- Поддерживается запрос информации о процессе записи данных mxgate, вставка в системные таблицы и таблицы журналов ошибок. ([Документация](/ru/doc/5.3/tools/mxgate/feature#11%20mxgate%20 data write process information, insert system tables and error log tables))
- Уточнён параметр --log-dir, определяющий временные метки в журнале mxgate (обычно /home/mxadmin/gpAdminLogs). Количество временных интервалов изменено с 4 до 5: t1: время установления соединения при вставке в Slot; t2: время ожидания Slot до запланированного времени; t3: время получения данных от mxgate на узле Segment; t4: время перераспределения данных между сегментами и их удаления; t5: время фиксации транзакции вставки.
Новые функции и улучшения
- Инструмент миграции экземпляров узлов данных (Segment) mxmoveseg (Документация)
- При отключении исходного сервера миграции старый сервер можно перезапустить после завершения миграции, при этом кластер не будет находиться в аварийном состоянии.
- Высокая доступность
- Исправлена проблема двойного отказа в кластере с настроенными Standby/Mirror (все экземпляры данных в шарде данных (включая Primary и соответствующий Mirror) отключены).
- Улучшение функций mxshift
- Поддерживается разделение миграции данных и проверки. ([Документация](/ru/doc/5.3/tools/mxshift#3.4.1%20 Old version of data verification and data migration decoupling))
- Обновлён алгоритм проверки согласованности данных до и после миграции. Помимо проверки с помощью параметра --verify в категории [transfer], добавлена категория [verify], в которой можно настроить параметры для обновлённой проверки. Оба метода проверки совместимы друг с другом. ([Документация](/ru/doc/5.3/tools/mxshift#3.4.2%20v5.2.1%20 version data verification))
- Улучшение функций векторизованного движка выполнения
- Реализован векторизованный оператор общего сканирования.
- Реализован векторизованный оператор удаления дубликатов.
- Оптимизирована стабильность векторизованных исполнителей при использовании оптимизаторов ORCA.
- Оптимизирована производительность векторизованных операторов соединения при правом соединении.
- Улучшение функций движка хранения MARS3
- Добавлена поддержка индекса btree в движке хранения MARS3.
- Оптимизирована стабильность MARS3 при использовании с ORCA.
- Улучшение функций MatrixGate
- Поддерживается завершение процесса mxgate, прослушивающего указанный порт, посредством отправки gRPC-запроса. Соответствующая команда: mxgate stop --grpc-port [port]. ([Документация](/ru/doc/5.3/tools/mxgate/parameter#2%20 command line parameters))
Исправление ошибок
- Исправлены некоторые известные проблемы
5.2.2
Дата: 2024-01-16
Исправление ошибок
- Исправлены некоторые известные проблемы
5.2.1
Дата: 2024-01-02
Улучшения и оптимизации
- MXKV2
- Оптимизировано использование памяти MXKV2 (#3178).
- Оптимизирована производительность сжатия MXKV2 (#3180).
- Оптимизирована производительность импорта данных в MXKV2 (#3162).
- Векторизованный движок выполнения
- Оптимизировано использование памяти векторизованных операторов передачи данных в многоколоночных запросах (#3175).
- Оптимизирована производительность внешних хеш-алгоритмов для векторизованных хеш-агрегатов (#3213).
- Оптимизирована эффективность последовательных сравнений для текстовых типов (#3163).
Исправления ошибок
- Исправлены некоторые известные проблемы
5.2.0
Дата: 2023-12-08
Основные нововведения
- Графический интерфейс
- Поддержка графической установки и развертывания YMatrix на операционных системах Tongxin UOS20, Dragon Lizard 8.X, Kirin Xinan 3.X и Zhongbiao Kirin 7.X.
- Добавлена функция SQL-исполнителя.
- Добавлена функция анализа нагрузки (документ).
- Векторизованный движок выполнения (документ)
- Поддержка интеграции с оптимизатором ORCA. Движки хранения HEAP и AO поддерживают прямое подключение, MARS2/3 — нет. В частности, AOCO может одновременно подключаться к векторизованному движку выполнения и ORCA.
- Добавлена функция понижения уровня хранения, поддерживающая автоматическое разделение «горячих» и «холодных» данных и перемещение «холодных» данных на более экономичное объектное хранилище (документ).
- Добавлен тип данных MXKV2, упрощающий шаги использования и улучшающий производительность сжатия по сравнению с MXKV (документ).
- Добавлен инструмент-плагин pgvector для поддержки векторных сценариев (документ).
Улучшения и оптимизации
- Значение параметра populate для непрерывной агрегации по умолчанию изменено на false ([документ](/ru/doc/5.2/datamodel/cv#2.5%20 query Continuous aggregation view)).
- Если исходные два RPM-пакета объединены в один, объём может увеличиться. Однако пользователи больше не обязаны устанавливать пакет DebugInfo, что удобнее для отладки и анализа в бизнес-среде.
- MatrixGate
- Поддержка включения или отключения автоматической настройки количества слотов для указанных задач, поддержка запроса статуса настройки для всех или конкретных задач ([документ](/ru/doc/5.2/tools/mxgate/feature#9%20mxgate%20automatic adjustment of %20slot%20number)).
- Введён параметр --abort-by-pause-timeout в категории [writer.stream]. Поддерживает накопление данных в памяти при переходе задачи в состояние паузы по истечении указанного таймаута (документ).
- Поддержка пакетной записи данных типа JSON через HTTP (документ).
- Графический интерфейс
- Оптимизировано взаимодействие при настройке пути хранения etcd в функции многонодового развертывания ([документ](/ru/doc/5.2/install/mx5_cluster/mx5_cluster_centos7#4%20 database deployment)).
- Оптимизированы шаги и взаимодействие функции записи потока данных Kafka ([документ](/ru/doc/5.2/datainput/kafka#2%20 Create %20Kafka%20 data stream)).
- Инструмент миграции данных mxshift
- Процесс миграции DDL (язык определения данных) позволяет продолжить выполнение, игнорируя указанные ошибки. Типы игнорируемых ошибок можно настроить с помощью параметра --ignore-error ([документ](/ru/doc/5.2/tools/mxshift# configuration file)).
- Упрощены права доступа для процесса миграции: требуется только настройка доступа исходного кластера к Master-узлу целевого кластера. Чтобы отключить эту функцию, укажите --disable-connector=true ([документ](/ru/doc/5.2/maintain/migrate/best_practice_gp6_to_ymatrix5#1.10%20 to add a whitelist to the %20Master%20 of the source cluster)).
- Поддержка разделения логов: оптимизированы различия в формате между логами, выводимыми в терминал, и логами, сохраняемыми в файл, улучшено пользовательское восприятие.
- Поддержка записи метаданных таблиц миграции в указанный файл с помощью параметра --write-table-meta-file, а также прямое чтение информации из файла с помощью параметра --read-table-meta-file в последующих процессах миграции, что сокращает простои бизнеса из-за миграции ([документ](/ru/doc/5.2/tools/mxshift#3.1%20 import/export table meta information)).
- Добавлен параметр --small-table-mb, разумная настройка которого позволяет оптимизировать скорость передачи малых таблиц ([документ](/ru/doc/5.2/tools/mxshift# configuration file)).
- Поддержка динамической настройки количества параллельных операций ([документ](/ru/doc/5.2/tools/mxshift#3.3%20 dynamic adjustment of concurrency count)).
Исправления ошибок
- Исправлены некоторые известные проблемы
5.1.3
Дата: 2023-09-25
Исправления ошибок
- Исправлены некоторые известные проблемы
5.1.2
Дата: 2023-09-11
Исправления ошибок
- Исправлены некоторые известные проблемы
5.1.1
Дата: 2023-08-25
Исправления ошибок
- Исправлены некоторые известные проблемы
5.1.0
Дата: 2023-08-22
Новые функции
- Добавлен движок хранения MARS3 (Документация), который по сравнению с MARS2:
- Реализует совместное хранение строк и столбцов, записывая строки данных на диск, что значительно повышает производительность записи
- Позволяет создавать таблицы без необходимости создания дополнительных индексов
- Поддерживает обновление и удаление данных, добавление и удаление столбцов, а также механизм MVCC
- Сохраняет преимущества производительности MARS2 в сценариях временных рядов и дополнительно поддерживает сценарии AP и TP
- Новый инструмент миграции зеркальных экземпляров mxmoveseg (Документация):
- Поддерживает миграцию любого экземпляра базы данных, который в данный момент является зеркалом, на другие серверы
- Не поддерживает миграцию резервных узлов (standbys)
- Расширение функциональности инструмента миграции данных mxshift (Документация):
- Поддерживает инкрементальную миграцию: параллельно переносит язык определения данных (DDL) и данные выбранных таблиц из кластера Greenplum 4.3.33/5/6 или YMatrix в целевую базу данных нового кластера YMatrix
- Поддерживает указание IP-адреса, соответствующего имени хоста, через параметры в категории [database.source.hostname-to-ip] для обеспечения точности маршрутизации
- Добавлен параметр install-dir для замены параметра gphome
- Улучшения функций MatrixGate:
- Поддерживает немедленное выполнение команд изменения DDL во время процесса записи (Документация)
- Поддерживает автоматическую настройку количества соединений в зависимости от нагрузки различных задач записи (Документация)
- Поддерживает количественную оценку нагрузки на запись данных источника в виде процентного значения (Документация)
- Поддерживает ограничение размера пакетной загрузки данных (Документация)
- Расширение функциональности алгоритма сжатия цепочки кодирования (Документация: [/ru/doc/5.1/reference/storage/compression]):
- Добавлены алгоритмы Gorilla2 и fds
- Обновление графического интерфейса (Документация: /ru/doc/5.1/maintain/self_service_inspection):
- Добавлена страница самостоятельной проверки, поддерживающая создание планов проверки путем выбора параметров проверки и формирование подробных отчетов
- Поддержка отечественных платформ OpenEuler 20.03-22.03, Fusion 22-23, Kylin Security V3.3-3.5, Anolis OS 8 и Tongxin V20 (1060a/1060e) (функции корпоративной версии) (Документация: /ru/doc/5.1/install/mx5_cluster/mx5_cluster)
Исправления ошибок
- Исправлены некоторые известные проблемы
5.0.1
Дата: 2023-06-06
Исправление ошибок
- Исправлены некоторые известные проблемы
5.0.0
Дата: 2023-03-31
Новые функции
-
Совершенно новая архитектура базы данных
- На основе алгоритма Raft реализована автоматическая передача отказоустойчивости между основным узлом кластера (Master) и резервным узлом (Standby) (Документ)
- Внедрена архитектура, ориентированная на сервисы, что упрощает и облегчает развертывание и эксплуатацию кластеров (документ)
- Добавлены инструменты управления кластером: mxaddmirrors(документ), mxdeletes(документ), mxstop(документ), mxrecover(документ), mxstart(документ), mxstate(документ), mxstop(документ))
- Поддержка развертывания мониторинга кластеров etcd (документ)
-
Добавлен векторизованный движок выполнения (документ):
- Поддержка пакетной обработки: использование пакетной обработки эффективно снижает накладные расходы на выполнение вызовов функций и другие
- Полное использование возможностей оборудования и компилятора: применение алгоритмов, дружественных кэшу CPU, для полного использования возможностей оптимизации оборудования и компилятора, например, генерация SIMD-инструкций (Single Instruction, Multiple Data)
- Поддержка множества операторов: реализованы операторы Scan, Sort, Aggregate, Join, Window Function, Sub Query, Limit, Motion и другие. Для одного и того же оператора предусмотрены различные алгоритмические реализации, эффективно охватывающие большинство сценариев запросов и повышающие производительность запросов
На основе вышеуказанных трех основных принципов векторизованные движки выполнения могут достигать повышения производительности на 1–2 порядка по сравнению с традиционными движками выполнения, ориентированными на построчную обработку.
-
Добавлена технология оптимизации производительности запросов Runtime Filter (Документ):
- RuntimeFilter — одна из ключевых технологий повышения производительности движка выполнения YMatrix. Она представляет собой фильтр (Filter), динамически создаваемый при выполнении в движке после генерации оптимизатором физического плана выполнения, в отличие от фильтров, запланированных заранее оптимизатором.
-
Существенная оптимизация производительности движка хранения MARS2 (документ):
- Оптимизация стратегий сжатия для снижения использования памяти
- Оптимизация записи в секционированные таблицы и снижение потребления памяти
- Оптимизация фильтрации запросов для уменьшения ненужного потребления I/O
- Оптимизация оценки объема данных для более точного выбора плана выполнения
- Расширение возможностей агрегации, поддержка режима uniquemode и выражений IN
-
Добавлен новый алгоритм сжатия цепочки кодирования (документ):
- Поддержка нескольких алгоритмов кодирования и сжатия: поддерживаются lz4, zstd, simple8b, doubledelta, gorilla, deltazigzag, floatint и другие алгоритмы кодирования и сжатия. Вышеперечисленные алгоритмы могут гибко комбинироваться для максимального повышения степени сжатия
- Поддержка пользовательских алгоритмов сжатия на уровне столбцов или таблиц
- Поддержка адаптивного кодирования
- Совместное использование с векторизованным движком выполнения для повышения скорости сжатия/распаковки данных: в сценариях SSB скорость распаковки в 3 раза выше, чем у LZ4
Схема сжатия цепочки кодирования может значительно снизить использование пространства и сократить затраты. В сценарии электромобилей степень сжатия в 3,9 раза выше, чем у схемы с алгоритмом сжатия LZ4, а в сценарии TSBS (Time Series Benchmark Suite) — в 2,7 раза выше, чем у LZ4.
-
Обновление инструмента диагностики хранилища Datainspect (документ):
- Добавлена новая функция desc_compress, позволяющая сравнить и выбрать два лучших указанных алгоритма сжатия
-
Расширение функций MatrixGate:
- Автоматическое переключение службы на соответствующий здоровый резервный узел при активации механизма автоматического переключения отказоустойчивости (документ)
- Добавлен подробный мониторинг при записи данных, удобный для отладки при возникновении проблем. Можно включить параметр запуска -I (Документ)
- Проведена серия оптимизаций для сценария загрузки через stdin, производительность загрузки данных увеличена вдвое по сравнению с версией 4.8.0
-
Добавлена функция плавного расширения емкости (документ):
- Поддержка задач расширения без остановки системы
- Поддержка пользовательских наборов узлов данных (Segment Set) для реализации перераспределения частичных таблиц (Документ)
- Поддержка параллельного выполнения перераспределения данных таблиц
- Поддержка соединения таблиц, не подвергшихся перераспределению, с перераспределенными таблицами
- Поддержка однократного плавного расширения через графический интерфейс (Документ)
-
Расширение функций инструмента миграции данных mxshift (документ):
- Миграция DDL таблиц данных по единицам баз данных, с возможностью выбора миграции только DDL
-
Обновление графического интерфейса:
- Добавлены страницы мониторинга запросов, поддержка отображения информации о медленных запросах на пользовательских страницах управления и возможность немедленного завершения медленных запросов одним щелчком мыши (Документ)
- Добавлена функция тестирования записи для оценки высокой производительности записи данных YMatrix (документ)
- Добавлена функция тестирования запросов, поддержка создания пользовательских схем тестирования запросов в соответствии с бизнес-сценариями и возможность оценки высокой производительности запросов YMatrix в сценариях высокой нагрузки одним щелчком мыши (Документ)
- Страница развертывания полностью обновлена, шаги стали проще (Документ)
- Страница расширения полностью обновлена, добавлена функция плавного расширения, шаги стали легче (Документ)
- Добавлена функция проверки состояния высокой доступности (документ)
-
Добавлена новая политика автоматического управления секциями auto_partitioning_ex (документ):
- Поддержка массового создания секций
- Поддержка принудительного сохранения определенных исторических секций
- Поддержка пользовательского периода автоматической операции секционирования