История выпусков версий

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

Улучшения и доработки

  1. Оптимизатор
    • Оптимизирована логика ROI, при отсутствии соответствующей секции в ROI не создается фиктивный план (#IBOER)
  2. Инструменты
    • Повышена вероятность успешного обнаружения всех сегментов перед запуском узла mxstart (#IBOPCG) Исправления ошибок
  3. Движок хранения
    • Исправлена проблема с маловероятными ошибками в оптимизации MARS3 для данных фиксированной длины (#IBMR40)
    • Исправлена ошибка итератора при использовании bitmapscan в MARS3 (#IBOE1Q)
  4. Движок выполнения
    • Исправлена проблема, при которой возможно обращение за пределы таблицы в сценарии VHashJoin Spill (#IBNSF8)
    • Исправлена ошибка, из-за которой VWindow вызывал сбой или сообщал об ошибке при чтении данных из batchstore (#IBONDT)
    • Исправлена проблема, приводившая к сбою зеркального узла при отсутствии файлов потоковой передачи snapbuild (#IBONUY)
  5. Управление сервисами
    • Устранена утечка соединений cmux для SOA-сервиса (#IBOOX0)
    • Исправлена ошибка, при которой добавление пустого зеркального узла вызывало ошибку плана (#IBOYWS)

6.2.3 Примечания к выпуску

Дата выпуска: 2025-02-24


Улучшения и доработки

  1. 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)
  2. Аварийное восстановление
    • Удалён параметр 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) Исправления ошибок
  3. MatrixShift
    • Исправлена ошибка, при которой ограничение PRIMARY KEY в исходной базе данных преобразовывалось в ограничение UNIQUE INDEX + NOT NULL после миграции DDL с помощью mxshift (#IBFVS3)
    • Исправлена ошибка несоответствия позиций параметров в сгенерированном DDL-выражении при миграции определения UDF (#IBIN2R), если функция содержит как входные, так и выходные параметры (#IBIN2R)
  4. MatrixGate
    • Исправлена ошибка, при которой параллельные слоты, остановленные автоматической настройкой, не могли быть восстановлены при отключении функции автонастройки с помощью mxgate set --auto-tune = false (#IBKGPH)
  5. mxbox
    • Исправлена ошибка, при которой сервис репликации мог сохранять неработающие "зомби"-процессы при запуске/остановке экземпляра postgres (#IBICKJ)
  6. Аварийное восстановление
    • Исправлена ошибка, при которой синхронизация DR могла зависнуть при переходе на резервную базу данных (#IBKM33)

6.2.2 Примечания к выпуску

Дата выпуска: 2025-01-10


Улучшения и доработки

  1. MatrixShift
    • Если в конфигурационном файле не указаны операции миграции, а включена только функция проверки, добавлено сообщение об ошибке для баз данных, мигрированных из других источников, кроме mxshift (#IBFVMM)
    • При наличии дублирующихся таблиц или родительских и некоторых дочерних таблиц в списке таблиц раздела scope конфигурационного файла реализована возможность автоматического удаления дубликатов с выдачей предупреждения (#72ffcea)
  2. MatrixGate
    • Передача данных между mxgate и сегментными узлами изменена — по умолчанию сжатие отключено, чтобы сэкономить больше ресурсов памяти (ранее значение по умолчанию было «включено») (#IBD0PW)
    • В режиме передачи разрешена миграция данных при состоянии Down зеркального узла (#IBCQPB)
  3. mxbox
    • Добавлен вывод причины пропуска при пропуске mxrecover определённых сегментов (#IB4NJD)
    • При использовании mxrecover для выполнения операций балансировки в кластере можно сократить время простоя базы данных, добавив параметр CHECKPOINT; поведение можно пропустить, добавив параметр --skip-checkpoint (#IBCVOL)
    • Улучшен формат вывода содержимого этой команды в консоли при выполнении балансировки кластера с помощью mxrecover (#IBCVOS)
    • В mxrecover добавлен параметр --prepare-timeout. При запуске mxrecover таймаут сбора информации о состоянии кластера через etcd может быть задан, значение по умолчанию — 1 минута (#IBCVOS)
  4. mxctl
    • При установке и развёртывании команда mxctl setup collect проверяет, может ли localhost быть разрешён в локальный loopback-адрес, и в случае невозможности выдает ошибку (#IBDM77)

Исправления ошибок

  1. MatrixShift
    • Исправлена ошибка, возникающая при миграции таблиц без полей (#IBFVQP)
    • Исправлена ошибка, при которой таблица или другой объект базы данных, на который ссылается созданная функция, больше не существует при миграции DDL (#d51821f)
  2. MatrixUI
    • Исправлена ошибка самодиагностики, приводившая к неверному отображению номера версии (#IBD0YZ)
  3. mxbox
    • Исправлена ошибка, при которой DR мог зависнуть при чтении WAL с сегмента (#216abca3)
    • Исправлена ошибка в логике расчета лимита защиты vmem после подключения к несбалансированному развертыванию (#1b30eb0c)
    • Исправлена ошибка, при которой при включённой функции мониторинга mxmgr соответствующие процессы мониторинга не удалялись при выполнении mxdeletesysystem (#IBB9SM)
    • Исправлена ошибка, при которой некоторые сервисы (shard и cluster) оставались после выполнения mxdeletes, если на некоторых хостах физического кластера отсутствовали сегменты (#63c34070)
    • Исправлена ошибка с низкой вероятностью таймаута при одновременном восстановлении master и data shard с помощью mxrecover -r (#IBD71J)
    • Исправлена ошибка, при которой при остановке экземпляра postgres сервисом репликации мог возникать NotFound (#IBD8H7)
  4. Высокая доступность
    • Исправлена ошибка, при которой первичный узел (Primary) оставался прежним при сетевом разделении, когда Mirror был повышен до Primary, что приводило к появлению двух Primary (исходный Primary должен быть уничтожен, чтобы сохранить повышенный Mirror) (#IBE2HF)
    • Исправлена ошибка, при которой, если primary уже работал нормально, запуск mxstart прерывал процесс старта (#986b5588)
    • Исправлена ошибка, при которой, если primary уже был остановлен, остановка mxstop некорректно прерывала процесс остановки (#986b5588)
    • Исправлена ошибка с низкой вероятностью зависания автоматического разделения и его неработоспособности при аварийном завершении и восстановлении базы данных (#IBDSBY)

6.2.1 Примечания к выпуску

Дата выпуска: 2024-12-20

Улучшения и доработки

  1. mxbox
    • Увеличен таймаут по умолчанию для mxstart с 1 минуты до 5 минут. Поддерживается пользовательская настройка таймаута через параметр -t. (#9ab2957c)
    • Добавлена поддержка пользовательских переменных окружения при запуске процесса postmaster. (#39575ad3)
    • При двойном отказе в кластере разрешён запуск ближайшего основного узла путём перезапуска базы данных вместо невозможности запуска. (#ab0b920a)
    • Увеличено максимальное количество открытых файлов для сервиса supervisor и процесса etcd, решена проблема частых ошибок «слишком много открытых файлов» для сервисов etcd в гипермасштабируемых кластерах. (#6ca5293dcd0)
    • При развёртывании нового кластера параметр --enable-pprof удалён из конфигурации сервиса etcd в сервисе supervisor, что делает etcd более стабильным и снижает потребление CPU. (#ae00e5a)

Исправления ошибок

  1. mxbox
    • Исправлена ошибка, при которой автоматически настраиваемое значение gp_vmem_protect_limit оказывалось слишком большим при развертывании кластера на машине с несколькими узлами данных. (#5253cbbb)
    • Исправлена ошибка, при которой postmaster неожиданно завершал работу при проверке реплицирующим сервисом, и существовала вероятность продолжения работы реплицирующего сервиса. (#ab77de4e)

6.2.0 Примечания к выпуску

Дата выпуска: 2024-12-09


Улучшения и доработки

  1. MatrixUI
    • При установке или расширении новой машины активно проверяется наличие в /etc/ssh/sshd_config таких элементов конфигурации, как AllowUsers/AllowGroups/DenyUsers/DenyGroups, которые могут помешать взаимному доверию SSH между хостами в кластере, и предоставляются конкретные сообщения об ошибках и рекомендации по исправлению (#IB80HF)
  2. MatrixShift
    • Введены более строгие проверки конфигурационных файлов: при запуске mxshift будут выявляться и сообщаться об ошибках некорректные параметры конфигурации. Например, если disable-connector = true указан не в параграфе [scope], mxshift сообщит об ошибке и напомнит об этом (#IB5002)
  3. mxbox
    • Инструменты moveseg / initstandby могут определять, находится ли хост, добавляемый с помощью подкоманды --add, уже в физическом кластере, и выдавать сообщение об ошибке (#5e39499c)
    • При перезагрузке хоста или первом запуске кластера YMatrix автоматически создаются необходимые пути, от которых зависит cgroup групп ресурсов (#IB5G9O)

Исправления ошибок

  1. MatrixUI
    • Исправлена ошибка, при которой сумма значений calls_end после 0 на странице загрузки запросов вызывала ошибку запроса (#IAMZI0)
    • Исправлена ошибка, при которой MXUI не мог повторно развернуть процесс сбора метрик mxui collector при изменении топологии кластера (#IB8BTF)
  2. MatrixGate
    • Исправлена ошибка, при которой mxgate не мог продолжить потребление данных из kafka после перезапуска кластера YMatrix в некоторых средах (#IB6HEL)
  3. MatrixShift
    • Исправлена ошибка синтаксиса ALTER MATERIALIZED VIEW при миграции DDL, добавлена поддержка миграции синтаксиса MATERIALIZED VIEW для GP6 (#3ba9664)
  4. mxbox
    • Исправлена ошибка, при которой кэширование препятствовало обновлению статуса сегмента (#d5844a19)
    • Исправлена ошибка, при которой при сжатии etcd удалялась актуальная версия метаинформации (#6c5c7c5e)
    • Исправлена ошибка, при которой основной узел в аномальном состоянии не мог быть своевременно остановлен при восстановлении после сетевого разделения (#695d45fe)

6.1.1 Примечания к выпуску

Дата выпуска: 2024-11-19


Улучшения и доработки

  1. MatrixGate
    • Оптимизация mxgate: поддержка настраиваемого таймаута соединения сегментов в виде GUC-параметра (#IB25VC)
  2. MatrixShift
    • Оптимизация mxshift: при отсутствии прав используется каталог данных вместо /tmp (#IB0UY1)
  3. mxbox
    • Поддержка пользовательских несбалансированных развертываний (#IAVBH5, #IAVCE2, #IAVFBE, #IAVDNP)
  4. MatrixUI (Документация)
    • Поддержка пользовательского интерфейса для несбалансированных развертываний (#IAVXM5)

6.1.0 Примечания к выпуску

Дата выпуска: 2024-10-31


Улучшения и доработки

  1. MatrixShift

    • Оптимизация mxshift: можно пропустить создание внешней таблицы при миграции данных из gp6 (#IB0IUE)
    • Оптимизация mxshift: при автоматическом отображении типа сжатия из zlib в zstd параметр compresslevel принудительно устанавливается в 1 (#IB0GA9)
  2. Аварийное восстановление

    • Удалён неиспользуемый параметр конфигурации slot в конфигурационном файле подписчика
    • Уточнено содержание журнала

Исправление ошибок

  1. MatrixShift
    • Исправлена ошибка, возникавшая при создании поля типа "COLLATABLE"

6.0.0 Примечания к выпуску

Дата выпуска: 2024-10-11


Новый функционал

  1. Добавлена функция потоковых вычислений (Документация)

    • Поддержка расширенных вычислений по измерениям, агрегированных вычислений, многоуровневых потоковых вычислений, корреляционных вычислений между двумя потоками и т.д. (Документация)
    • Поддержка различных возможностей конфигурации и управления (документация)
  2. Интегрированная архитектура потоковой и пакетной обработки

    • База данных объединяет преимущества потоковой и пакетной обработки, поддерживая параллельную обработку данных в реальном времени и исторических данных.
  3. Добавлен кластер аварийного восстановления (Документация)

    • Поддержка передачи и синхронизации данных между центрами обработки данных
    • Поддержка мониторинга состояния работы кластера аварийного восстановления
    • Поддержка ручного переключения резервного кластера в рабочий режим, все приложения могут быть переключены на этот кластер для нормальной работы
    • Показатели аварийного восстановления для данного кластера:
      • RPO (Recovery Point Objective, целевая точка восстановления) Пользователь может указать подходящее значение, при котором целевой показатель достигается на уровне минут без влияния на производительность исходного кластера.
      • RTO (Recovery Time Objective, целевое время восстановления) Поддерживается режим горячего резерва базы данных, при котором RTO составляет от нескольких секунд до минут.

Повышение производительности

  1. Повышение производительности TP

    • Добавлена поддержка размера блока 8 Кб; конфигурируемый блок данных (block) составляет 8 Кб, что значительно повышает производительность при обработке транзакций с небольшими объёмами данных.
  2. Улучшение хранилища MARS3

    • Добавлена поддержка уникальных ключей, операций upsert и блокировок на уровне строк.
  3. Улучшение векторизационного движка

    • Добавлена поддержка векторизации оконных функций (Window Function).

Известные проблемы

  1. При большом количестве секций запрос может вызвать нехватку памяти (OOM) в базе данных.

  2. В сценарии KILL QUERY процесс восстановления может привести к сбою.