История выпусков версий
6.6.1 Примечания к выпуску
Дата выпуска: 2025-11-17
Улучшения и доработки
- Добавлена логика очистки для
trigger function при разделении секций, а также предупреждение с призывом к ручной очистке в случае возникновения ошибки.
- В mars3 введена новая оптимизация проверки видимости транзакций.
- Улучшены скалярные последовательные сканирования для включения информации
RowRemoveFilter.
- Повышена производительность векторизованной сортировки в векторизованном движке выполнения при обработке большого количества столбцов с данными по ссылке (#ID01L8).
- Добавлено автоматическое создание расширения
dblink перед выполнением APM-задач в Cylinder.
Исправления ошибок
- Исправлена ошибка, при которой команда
psql \dPt+ не могла найти функцию pg_size_pretty() при использовании с mxnumeric (#ID5VDC).
- Устранён сбой, возникающий при повторном включении GUC-параметра
vwindow после перезапуска кластера, если он был ранее отключён (#ID5SG0).
- Исправлена ошибка при вставке
numeric[] в pgvector после создания расширения mxnumeric (#ID07BA).
- Исправлены некорректные результаты запросов в случайных тестах на ветке master при включённой векторизации и отключённом параллелизме (#ID6H3P).
- Исправлено аномальное поведение
vscan при применении RowRemoveFilter.
- Обеспечено своевременное обновление значений у волатильных функций, таких как
clock_timestamp(), при изменении результатов в движке потоковой обработки Domino (#ID4DIE).
- Устранена утечка контекста памяти в декодере Domino (#ID63W4).
- Исправлена некорректная запись
cdbpolicy в relcache для внешних таблиц, созданных через CREATE FOREIGN TABLE в рамках одной транзакции в PXF (#ID5I91).
- Исправлена проблема, при которой правила
rewrite не применялись, когда одновременно существовали правила rewrite и forbid в mxrule (#ID6OZ2).
- Исправлена неточная информация, отображаемая векторизованным оператором сортировки
VSort в выводе EXPLAIN ANALYZE (#ICZFKC).
- Устранено потенциальное чрезмерное использование памяти в векторизованном движке выполнения при сортировке top-k.
- Устранена проблема в движке потоковой обработки Domino, при которой новые зафиксированные транзакции не были видны во время логического декодирования (#ID6CF8).
6.6.0 Примечания к выпуску
Дата выпуска: 2025-11-10
Улучшения и доработки
- Добавлена поддержка
default-brin в mars3.
- Оптимизирован размер XLOG для mars3 в однопоточном режиме.
- В mars3 включена поддержка параллельных операций
ALTER TABLE SPLIT PARTITION. Поддерживаются параллельные операции чтения и записи во время разделения (в настоящее время не поддерживается для таблиц AO/CO, стримовых таблиц или родительских таблиц с триггерами).
- Введена утилита
mxchangeport для изменения конфигурации портов master/standby (Документация)(#IBAONY).
- Оптимизировано выравнивание данных в алгоритмах слияния mxv, что улучшило производительность
vsort, vmergeappend и vmotion (#ID0MF6).
- Производительность
vmotion улучшена за счёт оптимизации доступа к интерфейсам взаимодействия (#ID0S2W).
- Производительность
vhashagg улучшена при использовании нескольких ключей группировки (#ID0SFE).
- Производительность
VWindowAgg улучшена при малом размере секций (#ID1M6B).
- Производительность
vhashagg повышена при больших квотах памяти (#ID1ZW6).
Исправления ошибок
- Исправлена ошибка, при которой китайские псевдонимы отображались как
unknown в C locale + ORCA (#ID1JUF).
- Исправлены проблемы совместимости функции
COALESCE (#ID3VVM).
- Исправлено чрезмерное использование памяти в
vhashagg при большом размере входных данных (#ID400D).
- Исправлены проблемы доступа к null-значениям при использовании
mxnumeric в качестве ключа группировки (#ID4X56).
- Исправлены ошибки при push-down операций
LEFT JOIN LIMIT при обработке таблиц с удалёнными столбцами (#ID56S4).
- Исправлены ошибки при push-down агрегатов при обработке таблиц с удалёнными столбцами (#ID56S4).
- Исправлена ошибка
"requested TLog segment ... has already been removed" в декодере domino после перехода на резервный узел (#ID3339).
- Исправлено некорректное сохранение версий строк в domino (#ID2PC8).
- Исправлены ошибки
"invalid magic number" при восстановлении декодера из журнала транзакций и обеспечено надёжное срабатывание восстановления (#ICWFMD).
- Исправлены потенциальные ошибки
"replication slot is active" при выполнении DROP STREAM (#ICYE5T).
- Исправлена невозможность
autoexplain выводить планы domino (#IC7FOW).
- Исправлены ошибки в autoprobe mars3.
- Исправлены сбои в
compactjob mars3 во время pickrun.
- Устранено дополнительное потребление CPU при отсутствии сжатия или неэффективности сжатия XLOG данных столбцовых таблиц mars3.
- Добавлена поддержка многопоточной вставки в mars3 (работает только при
prefer_load_mode = normal или bulk, если объём данных превышает порог rowstore).
- Исправлены проблемы с чрезмерным использованием памяти в mxui (#ID42DK, #ICCBXV).
- Исправлено зависание базы данных при создании таблиц после восстановления инкрементной резервной копии из-за установки
mx_gp_syncrep_count в значение 1 (#ID30A1).
- Устранено ограничение, запрещавшее изменение типа распределительного ключа для таблиц, распределённых на одном узле (#ID2XXU).
6.5.1 Примечания к выпуску
Дата выпуска:2025-10-10
Улучшения и доработки
- Добавлена поддержка автоматической синхронизации времени на всех машинах кластера
- TDE теперь поддерживает ротацию мастер-ключей (#ICTTER)
- Добавлено средство командной строки для проверки согласованности версии программного обеспечения базы данных на всех машинах кластера (#IB49DN)
- Добавлено логирование логики расчёта shared_buffers, max_connections и gp_vmem_protect_limit (#ICUPGA)
- Оптимизирована десериализация данных типа указателя с фиксированной шириной содержимого (#ID0E4M)
- Улучшена производительность приёма при использовании vmotion с предложением OFFSET (#ID0E2Y)
- Устранено снижение производительности в vmotion из-за чрезмерно мелкого разбиения отправки данных (#ID0QC3)
- Оптимизировано чрезмерное потребление памяти в VSort и управление размером блоков для результирующего набора (#ICW0NR)
- Оптимизировано управление размером блоков для результирующих наборов vhashjoin (#ICGFXG)
- Устранено чрезмерное время выполнения планов orca с большими списками IN (#ICO42C)
- Реализована адаптация сравнений типа mxnumeric и оценки количества строк в orca (#IC8L9M)
- Оптимизирован SAOP в исполнителе с помощью хеш-алгоритмов и завершена адаптация orca (#ICYAND)
- SF теперь поддерживает InFilter для типов mxnumeric (#ICYAMX)
- InFilter теперь поддерживает NOT IN (#ICYRU1)
- Векторизованный резервный DatumInFilter использует хеш-оптимизацию (#ICYRTW)
- Оптимизирована логика генерации путей параллельного сканирования для реплицированных таблиц, исключена ненужная передача данных
Исправления ошибок
- Исправлена логическая ошибка при расчёте shared_buffers во время развёртывания или масштабирования базы данных (#ICUPGA)
- Исправлено некорректное использование контекста памяти пользовательскими аллокаторами в contentcache при выделении памяти
- Исправлена потенциальная утечка памяти в vhashjoin при наличии функций в ассоциативных ключах (#ID0328)
- Исправлено снижение эффективности при обработке vhashagg с большими квотами памяти (#ICMKY7)
- Исправлено потенциальное чрезмерное использование памяти в резидентных в памяти секциях vhashjoin (#ID066O)
- Исправлен сбой при обработке вывода точности mxnumeric в резервных выражениях (#ID09FX)
- Исправлены сбои, вызванные неправильным повторным использованием булевых выражений (#ID0C7S)
- Исправлено некорректное использование резервного пути в stddev и variance (#ICX7Y4)
- Исправлена ошибка, при которой не сообщалось об ошибке при создании таблиц с помощью CREATE TABLE AS с несуществующими segment_sets (#ICSWWP)
- Исправлены некорректные результаты при маршрутизации Direct Dispatch на неправильный узел (#ICXLOS)
- Исправлено двойное освобождение памяти при создании CScalarAggFunc с использованием имён функций из временного MemoryPool (#ICWHIQ)
- Исправлены некорректные результаты DatumInFilter при нестрогой функции сравнения (#ICYAND)
- Исправлены некорректные результаты при неправильной обработке visibits в VMergeAppend (#ICW7Z8)
- Исправлены сбои базы данных, вызванные
CREATE TABLE xx (LIKE INCLUDING INDEXES INCLUDING DEFAULTS) во время выполнения SQL-скрипта
- Исправлены некорректные результаты запросов в случайных тестах в версии 6.5.0 (#ICWH3V)
- Исправлена заниженная оценка стоимости индексов mars3
- Исправлен расчёт строк параллельного пути в CTE
- Исправлен сбой при перезагрузке mars3_default_storage_options
- Исправлено, что mars3 позволял изменять распределительные ключи для непустых таблиц
- Исправлён расчёт размера таблицы mars3, не учитывавший метаданные
- Исправлены некорректные результаты mars3 в сценариях Nestloop+IndexScan (#ICXM61)
- Исправлено, что waitlock компакт-воркера mars3 не освобождался (#ICWI5X)
- Исправлена проблема, при которой реплицированные таблицы могли потенциально вызывать операции motion
- Исправлено чрезмерное использование памяти при операциях
ALTER TABLESPACE в Mars3
6.5.0 Примечания к выпуску
Дата выпуска:2025-09-01
Новые функции версии
- MMatrixUI добавлена визуализация запуска/остановки базы данных (Документация)
- YMatrix представлена прозрачная шифрование (TDE), поддерживающая режимы управления как в локальной файловой системе, так и в системе KMS (Документация)
- Добавлено расширение
mxnumeric, предоставляющее высокопроизводительную альтернативу типам pg numeric (#IC5W77)
- Изменена настройка collate по умолчанию с
en_US.UTF-8 на C
- По умолчанию
pg_basebackup отключает проверку контрольных сумм страниц
Улучшения и доработки
- OpenSSL теперь поддерживает управление памятью, используемой зависимостями OpenSSL, через
MemoryContext
- В Domino Stream Computing добавлен оператор
DROP STREAM ... CASCADE, позволяющий каскадное удаление нескольких потоков
- В Domino Stream Computing добавлена поддержка LEFT JOIN двух потоков
- Из mars3 удалён необязательный код расчёта контрольных сумм страниц
- Планировщик теперь поддерживает улучшение производительности за счёт push-down лимита левых соединений при определённых условиях (#ICR5W4)
default on update теперь поддерживает функцию statement_timestamp() (#ICSXCO)
- Оптимизирована детализация обработки данных mxvector (#IBN0UL)
- Реализована нативная поддержка
bpchar для mxvector (#ICMK1N)
- mxvector теперь поддерживает
dynamic index / indexonly / bitmap scan (#ICMAKJ)
- Добавлен GUC-параметр
default_null_ordering для управления поведением сравнения значений NULL по умолчанию (#ICLK31)
- mxnumeric: оптимизированы возможности сериализации AvgState (#ICPARV)
- mars3 теперь поддерживает сканирование btree в порядке обхода
- mars3 теперь поддерживает инкрементальные операции
analyzedb и инкрементальные mxbackup
- mars3 ослабил ограничения на последовательности при создании индексов btree в уникальном режиме
- mars3 теперь поддерживает операции
delete в сценариях уникального режима
- В mars3 введены два новых GUC-параметра:
mars3.default_storage_options и mars3.default_btree_options, для указания параметров хранения mars3 по умолчанию
Исправления ошибок
- Исправлена проблема, при которой права доступа к каталогам файлов могли быть установлены некорректно во время установки, если в среде umask не равен 0022.
- Исправлены частые переключения сегментов базы данных, вызывавшие сбои узлов сегментов (#ICQV1B)
- Исправлен сбой resgroup при выполнении в bgworker (#ICW7GR)
- Исправлена ошибка: cannot execute squelched plan node of type: 115 (#ICUBOK)
- Исправлена проблема, при которой выполнение SQL превышало 30 минут без завершения (#ICPA1L)
- Исправлен сбой при выполнении SQL-скрипта при встрече оператора
CREATE TABLE xx (LIKE INCLUDING INDEXES INCLUDING DEFAULTS) (#ICVSU9)
- mxvector исправлена некорректная обработка visibits в VMergeAppend, приводившая к ошибочным результатам (#ICW7Z8)
- Планировщик: исправлены ошибки, возникающие при
ALTER TABLE с ограничениями
- mars3: исправлены ошибки выделения памяти при
ALTER TABLE SET TABLESPACE
- mars3: исправлены проблемы повреждения данных после
ALTER COLUMN в таблицах AOCO
- mars3: исправлены ошибки «файл не существует» во время авто-заморозки
- mars3: исправлены ошибки при обновлении материализованных представлений
- mars3 исправлены несоответствия в B-дереве mars3 родительских таблиц секционированных таблиц
6.4.5 Примечания к выпуску
Дата выпуска: 2025-11-20
Исправления ошибок
- Исправлена ошибка при push-down операций
LEFT JOIN LIMIT при обработке таблиц с удалёнными столбцами (#ID56S4).
- Исправлена ошибка при push-down агрегатов при обработке таблиц с удалёнными столбцами (#ID56S4).
- Исправлена проблема, при которой правила
rewrite не применялись, когда одновременно существовали правила rewrite и forbid в mxrule (#ID6OZ2).
- Исправлена некорректная запись
cdbpolicy в relcache для внешних таблиц, созданных через CREATE FOREIGN TABLE в рамках одной транзакции в PXF (#ID5I91).
- Исправлена утечка контекста памяти (
memcxt) в декодере Domino (#ID63W4).
- Исправлена проблема в движке потоковой обработки Domino, при которой новые зафиксированные транзакции не были видны во время логического декодирования (#ID6CF8).
6.4.4 Примечания к выпуску
Дата выпуска: 2025-11-10
Улучшения и доработки
- Уменьшена серьёзность логирования при завершении работы domino-воркера (ранее логировалось как FATAL: terminating connection due to administrator command) (#ICWTKQ)
Исправления ошибок
- Исправлена ошибка, при которой mars3 autoprobe завершался с ошибкой tablespace.
- Исправлена потенциальная потеря файлов сегментов после сбоя mars3.
- Исправлена ошибка в декодере domino после перехода на резервный узел: «запрошенный сегмент TLog ... уже был удалён» (#ID3339).
- Исправлено некорректное сохранение версий строк в domino (#ID2PC8).
- Устранены ошибки «неверный magic number» при восстановлении декодера из журналов транзакций и обеспечено надёжное срабатывание восстановления декодера (#ICWFMD).
- Исправлена ошибка «репликационный слот активен», которая могла возникнуть при выполнении DROP STREAM (#ICYE5T).
- Обеспечено, что REFRESH STREAM использует последнюю позицию декодирования в качестве позиции потока (#ICW8Y2).
- Исправлена проблема, при которой одновременно выполняемые потоки в REPLACE STREAM могли использовать устаревший план (#ICZ1WU).
- Исправлен выбор снимка в domino_join_v2 при остановке прогресса (#ICVI4S).
- Включена корректная работа autoexplain для отображения планов выполнения domino (#IC7FOW).
- Исправлен сбой в mars3 во время выполнения compactjob pickrun.
6.4.3 Примечания к выпуску
Дата выпуска:2025-10-10
Улучшения и доработки
- Добавлено логирование логики расчёта shared_buffers, max_connections и gp_vmem_protect_limit (#ICUPGA)
- Оптимизирована логика генерации Parallel Scan Path для реплицированных таблиц с целью избежать избыточного перемещения данных
Исправления ошибок
- Исправлена логическая ошибка при расчёте shared_buffers во время развёртывания или масштабирования базы данных (#ICUPGA)
- Исправлена логика расчёта размера базы данных master shard в mxarchive (#ICVW2F)
- Исправлено некорректное использование контекста памяти при выделении памяти с помощью пользовательского аллокатора в contentcache
- Исправлена потенциальная утечка памяти в vhashjoin при наличии функции в ключе соединения (#ID0328)
- Исправлен сбой, вызванный неправильным повторным использованием булевых выражений (#ID0C7S)
- Исправлен расчёт количества строк в параллельных путях CTE
- Исправлена потенциальная генерация Motion для реплицированных таблиц
- Исправлено, что mars3 позволял изменять распределительные ключи для непустых таблиц
- Исправлён расчёт размера таблицы mars3, в котором не учитывались метаданные
- Исправлены ошибки результатов Nestloop+IndexScan в mars3 (#ICXM61)
- Исправлена проблема с waitlock компакт-воркера mars3, который не освобождался (#ICWI5X)
- Исправлено чрезмерное потребление памяти при alter tablespace в mars3
6.4.2 Примечания к выпуску
Дата выпуска: 2025-09-01
Улучшения и доработки
- Удалён несущественный код для расчёта контрольных сумм страниц в MARS3
Исправления ошибок
- Исправлена проблема, при которой права доступа к каталогам файлов могли быть заданы некорректно во время установки, если в среде установки umask не равен 0022
- Исправлена проблема, при которой мог возникнуть NPE при удалении резервного узла
- Исправлена ошибка «ERROR: cannot execute squelched plan node of type: 115» (#ICUBOK)
- Исправлена проблема с несоответствием типов am в родительской таблице секционированных mars3 btree-таблиц
- Исправлено повреждение данных после изменения столбцов в AOCO-таблицах
6.4.1 Примечания к выпуску
Дата выпуска: 2025-08-01
Улучшения и доработки
- Лицензирование: срок бесплатного использования новых развёрнутых кластеров увеличен с 3 до 14 дней.
- mxinitstandby: добавлена функция удаления текущего резервного узла (документация)
- Начиная с этой версии, расширение matrixmgr будет автоматически обновляться после обновления базы данных, что исключает необходимость ручного вмешательства.
- Domino: улучшена задержка потоковой передачи, вызванная модулем планирования.
- orca теперь поддерживает индексы mars3
- Поддержка двухфазных операций DISTINCT
- Усилено безопасное использование памяти relcache
- При инициализации кластера теперь по умолчанию отключена функция autofreeze
- Улучшена логика анализа mars3 с использованием выборки на основе строк
- Поддержка возможности удаления индекса mars3 в секционированных таблицах (#ICGEOH)
Исправления ошибок
- MXUI мониторинг дисков: исправлена проблема с отображением LVM-устройств
- MXUI мониторинг дисков: исправлена проблема с некорректным определением символических ссылок.
- Domino: исправлена проблема, при которой декодер перезапускался после удаления базы данных
- Ядро: исправлена проблема, при которой
ALTER TABLE DISABLE TRIGGER на сегменте не выполнял корректно RECURSE к дочерним таблицам
- Планировщик: исправлена проблема с неточным расчётом количества строк в QE в режиме utility/fastdd.
- Планировщик: исправлена ошибка «ERROR: could not find pathkey item to sort».
- Планировщик: исправлена проблема с некорректными результатами из-за ошибочной идентификации типа DQA.
- Исправлена блокировка сообщения simple fetch, мешавшая работе пула соединений (#ICNTMQ)
- Исправлено медленное выполнение ANALYZE в отдельных случаях
- Исправлены ошибки использования материализованных представлений mars3 и проблемы с потерей данных
- Исправлена невозможность одновременного создания индексов
- Исправлено асинхронное выполнение tableclean во время freeze
- Исправлена проблема, при которой уникальные ограничения не соблюдались в условиях параллельного доступа
- Исправлена проблема, при которой mars3-таблицы не могли найти файлы во время checkpoint (#ICLXV5)
- Исправлена проблема с видимостью при одновременном удалении и обновлении в mars3 (#ICI0E4)
- Исправлена проблема с исчерпанием памяти (OOM), вызванная сжатием контекста Zstd в mars3 (#ICFRIE)
- Исправлена ошибка при присоединении подтаблицы mars3 из-за нарушения ограничений (#ICG260)
- Исправлена проблема с дублированием индексов при присоединении подтаблицы mars3
- Исправлена проблема с некорректными результатами в gapfill
6.4.0 Примечания к выпуску
Дата выпуска: 2025-06-26
Новые функции версии
- Функция управления лицензиями полностью обновлена
- Добавлена поддержка операционной системы Centos9
- Добавлена поддержка Cgroup V2
- Resource Group добавил поддержку функции IO_LIMIT
- MatrixUI добавил мониторинг дискового пространства, включая тепловую карту на панели мониторинга, 4 уровня предупреждений о дисках, отображение Util на странице топологии
- MatrixUI поддерживает отображение отношений блокировок запросов на QE (#ICF0TL)
- По умолчанию используется расчёт потоков Domino v2 при создании потоков (документация)
- Инкрементальное онлайн-резервное копирование поддерживает нормальное восстановление при переходе на резервный узел/восстановлении в кластере (документация)
- Добавлен переключатель
mx_eager_memory_release для активного снижения потребления памяти неактивными процессами (по умолчанию выключен) (#ICH4Y9)
- Поддержка миграции данных таблиц mars3 с помощью оператора
ALTER TABLE ... SET TABLESPACE
- Поддержка параллельного сканирования реплицированных таблиц (по умолчанию выключена) (#IC5J6V)
- Функция
auto-vacuum для системных и несистемных таблиц включена по умолчанию
- Обновление Golang и toolchain до версии 1.24
Улучшения и доработки
- Определён формат TLog для Domino v2, реализовано буферизованное чтение и запись, значительно улучшена производительность дискового ввода-вывода
- Реорганизован mxstop для потокового вывода информации о ходе выполнения.
- Инкрементальное онлайн-резервное копирование поддерживает некоторые функции tablespace (документация)
- mars3 поддерживает roi-индексацию
- mars3 поддерживает автоматическое преобразование
btree/brin в индекс mars3_btree/mars3_brin
- Версия relfile по умолчанию для mars3 изменена на v1
- Секционированные таблицы mars3 поддерживают удаление индекса (#ICGEOH)
- mars3 поддерживает общий контекст zstd для повышения эффективности сжатия (#ICFRIE)
- Динамическое сканирование bitmap на таблицах mars3 отключено в orca
- Поддерживается случай, когда тип индекса —
mars3_btree, при изменении первичного ключа
- mxrule поддерживает возможность определения необходимости проекции на основе количества distinct
Исправления ошибок
- Исправлена проблема, при которой оператор EXCEPT не работал корректно, когда значение поля запроса было NULL при использовании оптимизатора ORCA (#ICC3P7)
- Исправлена ошибка векторного подпланирования в explain analyze при включении
auto_explain (#ICAUAG)
- Исправлена ошибка запроса после миграции roi-индекса секционированной таблицы в новое tablespace (#ICCMG7)
- Решена проблема чрезмерно медленного выполнения ANALYZE после полного удаления таблицы
- Исправлена ошибка получения желаемого уровня rowstore при компактизации
- Исправлена проблема поддержания счётчика pin-состояний сессии
- Исправлена ошибка проверки ограничений при присоединении mars3 (#ICG260)
- Исправлено дублирование создания индекса при присоединении индекса mars3
- Исправлена проблема с freeze для таблиц в режиме non-unique
- Решена проблема, при которой
mars3.force_allocate не мог быть назначен для выполнения в экстремальных случаях
6.3.0 Примечания к выпуску
Дата выпуска: 2025-04-18
Новые функции
- Поддержка несбалансированной схемы развёртывания mxaddmirrors (документация)
- Поддержка функции добавления зеркал на графическом интерфейсе (документация)
- Поддержка функций инкрементного холодного резервного копирования и восстановления (документация)
- Улучшения серии mxstate, добавлены параметры
-s, -p, `-H (#IBDK0D)
- mxstart добавлена функция визуализации прогресса, добавлены параметры
-C и -P (#IBGYMU)
- Библиотека intrastream обновлена до версии v2 (на данный момент часть failover по умолчанию остаётся v1)
- MatrixGate в mxui интегрирована функция удаления задач
- Matrixshift Migration DDL добавлена поддержка атрибутов USING, WITH, ECODING
- Поддержка рекурсивного создания расширенной статистики для секционированных таблиц
- Поддержка применения ndistinct к расширенной статистике для оценки объёма данных результирующего набора по составным условиям/индексам (#IBORMW)
Улучшения и доработки
- Сервис репликации не вызывает OOM при системном исчерпании памяти (#IBLJ14)
- Обновление ETCD до версии 3.5.x и прохождение теста на усталость
- Обновление Golang toolchain до версии 1.23.7
- Обновление go-common-libs & matrixapis, устранение CVE
- Рефакторинг слоя подключения к базе данных в mxbox
- Обновление pgvector до версии v0.8.0 (#IBY4RH)
Исправления ошибок
- Исправлена проблема, при которой mars3 runpick терял выполнение в условиях параллелизма
- Исправлена проблема с видимостью, связанная с распределёнными транзакциями при singlesegment в mars3
- Исправлена проблема с накоплением level2 из-за compactjob в mars3 (#IBNDHS)
- Исправлена проблема потери данных из-за ошибки кэша метаданных в mars3btree
- Исправлена проблема, при которой завершение задачи Kafka через интерфейс
mxctl gate job --remove могло вызвать принудительное завершение mxgate (#IBWTUQ)
- Исправлена проблема, при которой адрес и имя хоста в
gp_segment_configuration добавленного узла-зеркала в gp_segment_configuration не соответствовали имени хоста (#IBZOEL) в пользовательском режиме addmirror (#IBZOEL)
- Исправлена проблема, при которой QE постоянно перезапускался при ошибке чтения pid-файла репликации: «err pid file has 7 lines, expect 8» (#IC0SVB)
- Исправлена проблема, при которой
mx_default_segment_set активировался при включении mx_get_common_segmentids_with_default при установке mx_default_segment_set в несуществующий набор сегментов (#IBPYOI)
- Исправлена проблема с оптимизацией crash в векторизации с помощью mx_digest_ws (#IBQZOC)
- Исправлена проблема, при которой дублирование условий фильтрации приводило к неточным оценкам (#IBPYA4)
- Исправлена ошибка векторизованного VAgg Sum(int64) (#IBTZUY)
- Оптимизация revert shallow-copy для предотвращения частичного копирования Node (#IBN258)
- Исправлена ошибка генерации плана выполнения «ERROR: could not find pathkey item to sort» (#IBSE48)
- Исправлена ошибка доступа к функции сжатия Motion по нулевому указателю при OOM (#IBTESJ)
- Исправлена проблема дублирования условий в MxRule (#IBNWJ0)
6.2.4 Примечания к выпуску
Дата выпуска: 2025-03-03
Улучшения и доработки
- Оптимизатор
- Оптимизирована логика ROI, при отсутствии соответствующей секции в ROI не создается фиктивный план (#IBOER)
- Инструменты
- Повышена вероятность успешного обнаружения всех сегментов перед запуском узла mxstart (#IBOPCG)
Исправления ошибок
- Движок хранения
- Исправлена проблема с маловероятными ошибками в оптимизации MARS3 для данных фиксированной длины (#IBMR40)
- Исправлена ошибка итератора при использовании bitmapscan в MARS3 (#IBOE1Q)
- Движок выполнения
- Исправлена проблема, при которой возможно обращение за пределы таблицы в сценарии VHashJoin Spill (#IBNSF8)
- Исправлена ошибка, из-за которой VWindow вызывал сбой или сообщал об ошибке при чтении данных из batchstore (#IBONDT)
- Исправлена проблема, приводившая к сбою зеркального узла при отсутствии файлов потоковой передачи snapbuild (#IBONUY)
- Управление сервисами
- Устранена утечка соединений cmux для SOA-сервиса (#IBOOX0)
- Исправлена ошибка, при которой добавление пустого зеркального узла вызывало ошибку плана (#IBOYWS)
6.2.3 Примечания к выпуску
Дата выпуска: 2025-02-24
Улучшения и доработки
- mxbox
- Оптимизирована избыточная информация о состоянии кластера в etcd, снижена нагрузка на запись и обновление сервисов etcd, повышена стабильность кластера (#IBFELE)
- Расширены функции командной строки
mxbox client deployer get-cluster-service. Помимо отображения текущего активного адреса сервиса кластера/сегмента, теперь можно также просматривать информацию о неактивных высокодоступных сервисах в режиме резерва. Добавлен обязательный параметр --service-name со значением cluster или shard (#IBDQ6W)
- Кэширование информации об обнаружении сервисов SOA в сервисе deployer. Другие сервисы получают результаты обнаружения через API интерфейс deployer, что снижает нагрузку на прямой доступ к etcd и повышает стабильность работы в крупных кластерах (#IBGJJ8)
- Процесс высокодоступного сервиса
cluster/shard/replication/deployer стал более активно освобождать физическую память операционной системе, что позволило снизить потребление памяти (#6e9e4636)
- При выполнении mxstart/mxstop, если размер кластера велик, запуск сегментов/реплик происходит пакетно, чтобы избежать мгновенной чрезмерной нагрузки на etcd вследствие одновременного старта всех сервисов, что повышает стабильность операций (#IBI16W)
- Когда основной/зеркальный узел в сегменте выходит из строя, узел
gp_segment_configuration, сохраняющий состояние последней основной роли, переходит в состояние UP, обеспечивая успешный перезапуск базы данных (#IBJ58D)
- В инструмент mxrecover добавлена опция
-s для указания восстанавливаемого сегмента (#IBJLRN)
- В инструмент mxstate добавлена опция
-e для вывода информации о сегментах в абсолютном состоянии (#IBK5EM)
- Аварийное восстановление
- Удалён параметр
restore_point_creation_interval_minute из конфигурационного файла процесса подписчика, добавлен обязательный параметр restore_point_creation_interval, позволяющий пользователю самостоятельно настраивать интервал синхронизации (#2cd254aa)
- План mxaddmirrors теперь поддерживает генерацию распределения зеркальных узлов для кластеров с несбалансированным развертыванием. Рекомендуется использовать после ручной проверки и корректировки до наиболее разумной конфигурации зеркал (#IBFUEX)
- Изменён способ использования пользовательской конфигурации mxaddmirror. Теперь пользователь должен сначала выполнить
mxaddmirrors init, а затем mxaddmirrors config --init-file <path_to_file> для генерации шаблонов конфигурации. Новый метод позволяет формировать разумные схемы даже для несбалансированных кластеров (#IBFUDC)
- Для кластеров с несбалансированным развертыванием mxinitstandby позволяет добавлять standby-узлы на пустые физические машины без развёрнутых сегментных узлов (#IBIU96)
- Для кластеров с несбалансированным развертыванием mxaddmirror позволяет добавлять зеркальные узлы на пустые физические машины без развёрнутых сегментных узлов в режиме пользовательской конфигурации (#IBKSYA)
Исправления ошибок
- MatrixShift
- Исправлена ошибка, при которой ограничение
PRIMARY KEY в исходной базе данных преобразовывалось в ограничение UNIQUE INDEX + NOT NULL после миграции DDL с помощью mxshift (#IBFVS3)
- Исправлена ошибка несоответствия позиций параметров в сгенерированном DDL-выражении при миграции определения UDF (#IBIN2R), если функция содержит как входные, так и выходные параметры (#IBIN2R)
- MatrixGate
- Исправлена ошибка, при которой параллельные слоты, остановленные автоматической настройкой, не могли быть восстановлены при отключении функции автонастройки с помощью
mxgate set --auto-tune = false (#IBKGPH)
- mxbox
- Исправлена ошибка, при которой сервис репликации мог сохранять неработающие "зомби"-процессы при запуске/остановке экземпляра postgres (#IBICKJ)
- Аварийное восстановление
- Исправлена ошибка, при которой синхронизация DR могла зависнуть при переходе на резервную базу данных (#IBKM33)
6.2.2 Примечания к выпуску
Дата выпуска: 2025-01-10
Улучшения и доработки
- MatrixShift
- Если в конфигурационном файле не указаны операции миграции, а включена только функция проверки, добавлено сообщение об ошибке для баз данных, мигрированных из других источников, кроме mxshift (#IBFVMM)
- При наличии дублирующихся таблиц или родительских и некоторых дочерних таблиц в списке таблиц раздела scope конфигурационного файла реализована возможность автоматического удаления дубликатов с выдачей предупреждения (#72ffcea)
- MatrixGate
- Передача данных между mxgate и сегментными узлами изменена — по умолчанию сжатие отключено, чтобы сэкономить больше ресурсов памяти (ранее значение по умолчанию было «включено») (#IBD0PW)
- В режиме передачи разрешена миграция данных при состоянии Down зеркального узла (#IBCQPB)
- mxbox
- Добавлен вывод причины пропуска при пропуске mxrecover определённых сегментов (#IB4NJD)
- При использовании mxrecover для выполнения операций балансировки в кластере можно сократить время простоя базы данных, добавив параметр
CHECKPOINT; поведение можно пропустить, добавив параметр --skip-checkpoint (#IBCVOL)
- Улучшен формат вывода содержимого этой команды в консоли при выполнении балансировки кластера с помощью mxrecover (#IBCVOS)
- В mxrecover добавлен параметр
--prepare-timeout. При запуске mxrecover таймаут сбора информации о состоянии кластера через etcd может быть задан, значение по умолчанию — 1 минута (#IBCVOS)
- mxctl
- При установке и развёртывании команда mxctl setup collect проверяет, может ли localhost быть разрешён в локальный loopback-адрес, и в случае невозможности выдает ошибку (#IBDM77)
Исправления ошибок
- MatrixShift
- Исправлена ошибка, возникающая при миграции таблиц без полей (#IBFVQP)
- Исправлена ошибка, при которой таблица или другой объект базы данных, на который ссылается созданная функция, больше не существует при миграции DDL (#d51821f)
- MatrixUI
- Исправлена ошибка самодиагностики, приводившая к неверному отображению номера версии (#IBD0YZ)
- mxbox
- Исправлена ошибка, при которой DR мог зависнуть при чтении WAL с сегмента (#216abca3)
- Исправлена ошибка в логике расчета лимита защиты vmem после подключения к несбалансированному развертыванию (#1b30eb0c)
- Исправлена ошибка, при которой при включённой функции мониторинга mxmgr соответствующие процессы мониторинга не удалялись при выполнении mxdeletesysystem (#IBB9SM)
- Исправлена ошибка, при которой некоторые сервисы (shard и cluster) оставались после выполнения mxdeletes, если на некоторых хостах физического кластера отсутствовали сегменты (#63c34070)
- Исправлена ошибка с низкой вероятностью таймаута при одновременном восстановлении master и data shard с помощью mxrecover -r (#IBD71J)
- Исправлена ошибка, при которой при остановке экземпляра postgres сервисом репликации мог возникать NotFound (#IBD8H7)
- Высокая доступность
- Исправлена ошибка, при которой первичный узел (Primary) оставался прежним при сетевом разделении, когда Mirror был повышен до Primary, что приводило к появлению двух Primary (исходный Primary должен быть уничтожен, чтобы сохранить повышенный Mirror) (#IBE2HF)
- Исправлена ошибка, при которой, если primary уже работал нормально, запуск mxstart прерывал процесс старта (#986b5588)
- Исправлена ошибка, при которой, если primary уже был остановлен, остановка mxstop некорректно прерывала процесс остановки (#986b5588)
- Исправлена ошибка с низкой вероятностью зависания автоматического разделения и его неработоспособности при аварийном завершении и восстановлении базы данных (#IBDSBY)
6.2.1 Примечания к выпуску
Дата выпуска: 2024-12-20
Улучшения и доработки
- mxbox
- Увеличен таймаут по умолчанию для mxstart с 1 минуты до 5 минут. Поддерживается пользовательская настройка таймаута через параметр -t. (#9ab2957c)
- Добавлена поддержка пользовательских переменных окружения при запуске процесса postmaster. (#39575ad3)
- При двойном отказе в кластере разрешён запуск ближайшего основного узла путём перезапуска базы данных вместо невозможности запуска. (#ab0b920a)
- Увеличено максимальное количество открытых файлов для сервиса supervisor и процесса etcd, решена проблема частых ошибок «слишком много открытых файлов» для сервисов etcd в гипермасштабируемых кластерах. (#6ca5293dcd0)
- При развёртывании нового кластера параметр --enable-pprof удалён из конфигурации сервиса etcd в сервисе supervisor, что делает etcd более стабильным и снижает потребление CPU. (#ae00e5a)
Исправления ошибок
- mxbox
- Исправлена ошибка, при которой автоматически настраиваемое значение
gp_vmem_protect_limit оказывалось слишком большим при развертывании кластера на машине с несколькими узлами данных. (#5253cbbb)
- Исправлена ошибка, при которой postmaster неожиданно завершал работу при проверке реплицирующим сервисом, и существовала вероятность продолжения работы реплицирующего сервиса. (#ab77de4e)
6.2.0 Примечания к выпуску
Дата выпуска: 2024-12-09
Улучшения и доработки
- MatrixUI
- При установке или расширении новой машины активно проверяется наличие в /etc/ssh/sshd_config таких элементов конфигурации, как AllowUsers/AllowGroups/DenyUsers/DenyGroups, которые могут помешать взаимному доверию SSH между хостами в кластере, и предоставляются конкретные сообщения об ошибках и рекомендации по исправлению (#IB80HF)
- MatrixShift
- Введены более строгие проверки конфигурационных файлов: при запуске mxshift будут выявляться и сообщаться об ошибках некорректные параметры конфигурации. Например, если disable-connector = true указан не в параграфе [scope], mxshift сообщит об ошибке и напомнит об этом (#IB5002)
- mxbox
- Инструменты moveseg / initstandby могут определять, находится ли хост, добавляемый с помощью подкоманды --add, уже в физическом кластере, и выдавать сообщение об ошибке (#5e39499c)
- При перезагрузке хоста или первом запуске кластера YMatrix автоматически создаются необходимые пути, от которых зависит cgroup групп ресурсов (#IB5G9O)
Исправления ошибок
- MatrixUI
- Исправлена ошибка, при которой сумма значений calls_end после 0 на странице загрузки запросов вызывала ошибку запроса (#IAMZI0)
- Исправлена ошибка, при которой MXUI не мог повторно развернуть процесс сбора метрик mxui collector при изменении топологии кластера (#IB8BTF)
- MatrixGate
- Исправлена ошибка, при которой mxgate не мог продолжить потребление данных из kafka после перезапуска кластера YMatrix в некоторых средах (#IB6HEL)
- MatrixShift
- Исправлена ошибка синтаксиса ALTER MATERIALIZED VIEW при миграции DDL, добавлена поддержка миграции синтаксиса MATERIALIZED VIEW для GP6 (#3ba9664)
- mxbox
- Исправлена ошибка, при которой кэширование препятствовало обновлению статуса сегмента (#d5844a19)
- Исправлена ошибка, при которой при сжатии etcd удалялась актуальная версия метаинформации (#6c5c7c5e)
- Исправлена ошибка, при которой основной узел в аномальном состоянии не мог быть своевременно остановлен при восстановлении после сетевого разделения (#695d45fe)
6.1.1 Примечания к выпуску
Дата выпуска: 2024-11-19
Улучшения и доработки
- MatrixGate
- Оптимизация mxgate: поддержка настраиваемого таймаута соединения сегментов в виде GUC-параметра (#IB25VC)
- MatrixShift
- Оптимизация mxshift: при отсутствии прав используется каталог данных вместо /tmp (#IB0UY1)
- mxbox
- Поддержка пользовательских несбалансированных развертываний (#IAVBH5, #IAVCE2, #IAVFBE, #IAVDNP)
- MatrixUI (Документация)
- Поддержка пользовательского интерфейса для несбалансированных развертываний (#IAVXM5)
6.1.0 Примечания к выпуску
Дата выпуска: 2024-10-31
Улучшения и доработки
-
MatrixShift
- Оптимизация mxshift: можно пропустить создание внешней таблицы при миграции данных из gp6 (#IB0IUE)
- Оптимизация mxshift: при автоматическом отображении типа сжатия из zlib в zstd параметр compresslevel принудительно устанавливается в 1 (#IB0GA9)
-
Аварийное восстановление
- Удалён неиспользуемый параметр конфигурации slot в конфигурационном файле подписчика
- Уточнено содержание журнала
Исправление ошибок
- MatrixShift
- Исправлена ошибка, возникавшая при создании поля типа "COLLATABLE"
6.0.0 Примечания к выпуску
Дата выпуска: 2024-10-11
Новый функционал
-
Добавлена функция потоковых вычислений (Документация)
- Поддержка расширенных вычислений по измерениям, агрегированных вычислений, многоуровневых потоковых вычислений, корреляционных вычислений между двумя потоками и т.д. (Документация)
- Поддержка различных возможностей конфигурации и управления (документация)
-
Интегрированная архитектура потоковой и пакетной обработки
- База данных объединяет преимущества потоковой и пакетной обработки, поддерживая параллельную обработку данных в реальном времени и исторических данных.
-
Добавлен кластер аварийного восстановления (Документация)
- Поддержка передачи и синхронизации данных между центрами обработки данных
- Поддержка мониторинга состояния работы кластера аварийного восстановления
- Поддержка ручного переключения резервного кластера в рабочий режим, все приложения могут быть переключены на этот кластер для нормальной работы
- Показатели аварийного восстановления для данного кластера:
- RPO (Recovery Point Objective, целевая точка восстановления)
Пользователь может указать подходящее значение, при котором целевой показатель достигается на уровне минут без влияния на производительность исходного кластера.
- RTO (Recovery Time Objective, целевое время восстановления)
Поддерживается режим горячего резерва базы данных, при котором RTO составляет от нескольких секунд до минут.
Повышение производительности
-
Повышение производительности TP
- Добавлена поддержка размера блока 8 Кб; конфигурируемый блок данных (block) составляет 8 Кб, что значительно повышает производительность при обработке транзакций с небольшими объёмами данных.
-
Улучшение хранилища MARS3
- Добавлена поддержка уникальных ключей, операций upsert и блокировок на уровне строк.
-
Улучшение векторизационного движка
- Добавлена поддержка векторизации оконных функций (Window Function).
Известные проблемы
-
При большом количестве секций запрос может вызвать нехватку памяти (OOM) в базе данных.
-
В сценарии KILL QUERY процесс восстановления может привести к сбою.