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

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

Дата выпуска: 2025-09-23


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

  • Исправлена ошибка, из-за которой MatrixGate не мог возобновить работу после срабатывания APM при ручной настройке слотов (#ICVOCZ)
  • Исправлены проблемы с перераспределением данных при операциях union all (ICMI40)

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

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


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

  • Исправлены аварийные остановки кластера при установке параметров mars3 в значения rowstore_size=8,level_size_amplifier=1

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

Дата выпуска: 2025-05-22


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

  • Модифицирован процесс контрольной точки для устранения вероятности сбоев (#IC6H0D)
  • Исправлен сбой при объединении данных, когда временные метки CV попадают в одну и ту же секунду (#IAQS7S)

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

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


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

  1. Движок хранения
    • Добавлена логика проверки RangeFile для ColumnStore (#IB7V4S)
  2. MatrixShift
    • При наличии дублирующихся таблиц или родительских таблиц, когда некоторые дочерние таблицы указаны в списке таблиц в секции [scope] конфигурационного файла, реализована возможность автоматического удаления дубликатов с выдачей предупреждений (#72ffcea)
    • Введена более строгая проверка конфигурационного файла: при запуске mxshift будут выдаваться сообщения об ошибках и подсказки при некорректном указании параметров. Например, параметр disable-connector=true должен находиться в секции [scope]; если он указан в других секциях, будет выдана ошибка (#IB5002)
  3. MatrixGate
    • По умолчанию отключено сжатие при передаче данных между mxgate и сегментами для экономии памяти. Ранее значение по умолчанию — включённое сжатие (#IBD0PW)
    • В режиме передачи разрешено перемещение данных с зеркального узла, находящегося в состоянии Down (#IBCQPB)
  4. MatrixUI
    • При установке или расширении новой машины проверяется наличие в файле /etc/ssh/sshd_config параметров AllowUsers/AllowGroups/DenyUsers/DenyGroups, которые могут привести к сбою операции настройки взаимного доверия по SSH между узлами кластера, и выводится конкретная информация об ошибке и рекомендации по исправлению (#IB80HF)
  5. mxbox
    • При использовании mxrecover для выполнения операции перебалансировки кластера время простоя базы данных сокращено за счёт добавления CHECKPOINT. В то же время добавлен параметр --skip-checkpoint для пропуска этого поведения (#IBCVOL)
    • Улучшен вывод команды в консоли при использовании mxrecover для перебалансировки кластера (#IBCVOS)
    • В mxrecover добавлен параметр --prepare-timeout. При запуске mxrecover время ожидания сбора информации о состоянии кластера через etcd по умолчанию составляет 1 минуту (#IBCVOS)
    • Время ожидания по умолчанию для mxstart увеличено с 1 до 5 минут, при этом по-прежнему поддерживается возможность пользовательской настройки через параметр -t (#9ab2957c)
    • Поддержка пользовательских переменных окружения при запуске процесса postmaster (#39575ad3)
    • При двойном отказе в кластере разрешён запуск ближайшего первичного узла путём перезапуска базы данных (#IBCF5U)
  6. Высокая доступность
    • В новом развернутом кластере при запуске supervisor параметр etcd исключает опцию --enable-pprof, что повышает стабильность крупных многонодовых кластеров (#44edf1e)
    • После установки YMatrix supervisor может нормально запускаться даже в случае, если запись localhost была намеренно удалена из файла /etc/hosts пользователя (#10435b7)
    • При перезагрузке хоста или первом запуске YMatrix автоматически создаются необходимые пути, от которых зависит cgroup групп ресурсов (#IB5G9O)
    • Увеличено максимальное количество открытых файлов для службы supervisor и процесса etcd, решена проблема частых ошибок «слишком много открытых файлов» в очень крупных кластерах (#6ca5293dcd0)

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

  1. Движок хранения
    • Исправлена ошибка обработки одного фильтра по времени в CV (#IBDPTO)
    • Исправлена проблема с вычислением pg_index_size в mars3 (#IB2XK1)
    • Исправлена ошибка сбоя relcache при выполнении VACUUM в mars3 (#IBBBQX)
    • Исправлена логика вычисления relfrozenxid для пустых таблиц в mars3 (#IBCD7Q)
    • Исправлена проблема со снимками в индексе mars3
    • Исправлена ошибка с datalength=0 в ObjectStore (#IBBW8O)
    • Исправлен сбой при чтении данных строк и столбцов в mars3 (#IB9X9X)
    • Исправлена ошибка сравнения uid в btree mars3 в уникальном режиме
    • Исправлена проблема несоответствия данных при восстановлении после сбоя ObjectStore (#IB7V4S)
  2. MatrixShift
    • Исправлена ошибка, из-за которой соединитель mxshift не запускался, когда каталог /tmp исходной базы данных не имел прав на чтение и запись, на хосте существовало несколько первичных узлов и был указан параметр connector-port (#05c7e4a)
    • Исправлена ошибка, при которой процесс ручной отмены не завершался во время синхронизации данных mxshift (#IB7S5D)
    • Исправлена ошибка синтаксиса ALTER MATERIALIZED VIEW при миграции DDL; добавлена поддержка миграции синтаксиса MATERIALIZED VIEW для GP6 (#3ba9664)
  3. MatrixGate
    • Исправлена ошибка, при которой mxgate не мог продолжить потребление данных из Kafka после перезапуска кластера YMatrix в отдельных средах (#IB6HEL)
  4. MatrixUI
    • Исправлена ошибка, при которой на странице mxui не отображались метрики сетевого ввода-вывода, начинающиеся с en (#IB8ZR1)
  5. mxbox
    • Исправлена ошибка, при которой при одновременном восстановлении master и сегментов данных с помощью mxrecover -r существовала небольшая вероятность таймаута (#IBD71J)
    • Исправлена ошибка, при которой при остановке экземпляра postgres службой репликации мог возникать NotFound (#IBD8H7)
    • Исправлена ошибка, при которой postmaster неожиданно завершал работу при проверке postmaster службой репликации, а также возможная ситуация зависания службы репликации (#ab77de4e)
    • Исправлена ошибка, при которой при включённой функции мониторинга mxmgr при выполнении mxdeletessystem не удалялись процессы, связанные с мониторингом (#IBB9SM)
    • Исправлена ошибка, при которой некоторые службы (shard и cluster) оставались после выполнения mxdeletes, если на некоторых хостах физического кластера отсутствовали сегменты (#63c34070)
  6. Высокая доступность
    • Исправлена ошибка, при которой при одновременном сбое master и первичного узла восстановление dtx занимало 15 минут. Теперь ожидается, что восстановление dtx на резервном узле завершится за 1 минуту (#73785ab4f2c)

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

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


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

  1. Движок хранения
    • Исправлена ошибка, при которой mars3 freeze некорректно обрабатывал транзакции индекса (#IB51MP)
    • Исправлена ошибка, при которой mars3 freeze не мог заморозить слишком большой RUN
    • Исправлена проблема с нарушением порядка утилизации RUN в mars3 (#IB5CR4)
    • Исправлена ошибка, при которой AlteredTableInfo не мог быть корректно десериализован (#IB6980)
    • Добавлен GUC-параметр mars3_orderkey_contain_partkey, позволяющий использовать ключи партиционирования в уникальном режиме без их включения в ключ сортировки (#IALONR)
    • Исправлена ошибка, при которой атрибут NOT NULL первого ключа сортировки можно было изменить в уникальном режиме (#IAMQGP)
    • Разрешены операции добавления первичного ключа на одном узле (#IALONR)
  2. MatrixGate
    • Оптимизация mxgate: поддержка настройки таймаута соединения сегментов как конфигурируемого GUC-параметра (#IB25VC)
  3. MatrixShift
    • Оптимизация mxshift: при отсутствии прав используется каталог данных вместо /tmp (#IB0UY1)
    • Оптимизация mxshift: при миграции данных из gp6 можно пропустить внешние таблицы (#IB0IUE)
    • Оптимизация mxshift: при автоматическом отображении compresstype из zlib в zstd параметр compresslevel принудительно устанавливается в 1 (#IB0GA9)
  4. mxbox
    • Исправлена ошибка, при которой кэширование приводило к необновлению статуса сегмента
    • Исправлена обработка ситуации, когда компактизация etcd приводит к удалению текущей версии метаинформации
    • Исправлена ошибка, при которой первичный узел в аварийном состоянии не останавливался своевременно после восстановления сетевого разделения
    • Инструменты moveseg/initstandby проверяют, добавлен ли хост с помощью подкоманды --add, уже присутствует ли он в физическом кластере, и выводят сообщение об ошибке
  5. MatrixUI
    • На странице нагрузки запросов суммирование значений calls_end после 0 вызывает ошибку запроса (#IAMZI0)

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

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


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

  1. Движок выполнения

    • Оптимизирована логика выбора RUN в TableCleanJob

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

  1. Движок хранения

    • Исправлена ошибка, при которой неточный сканирование индекса в mars3 btree приводило к невозможности получения данных (#IAW0V6)
    • Исправлена ошибка, при которой возраст базы данных не уменьшался (#IAQVRL)
    • Исправлена ошибка выполнения из-за несоответствия памяти scankey в постоянно кластеризованном представлении (#IAHXLG)
    • Исправлена ошибка, при которой mars3 IndexScan неправильно заполнял данные, вызывая ошибки запроса (#IAJ2UV)
    • Исправлена ошибка результатов частичного индекса в mars3 (#IAH8WB)
    • Исправлены ошибки результатов mars3 brin при упорядоченных сканированиях (#IAPD1U)
    • Исправлены проблемы с параллелизмом при операциях compact и delete в mars3 (#IAOOK6)
    • Исправлен сбой при восстановлении rowstore (#IAVR6O)
    • Исправлена ошибка, при которой objectstore не поддерживал операцию freeze (#IA4TN5)
    • Исправлена ошибка сбоя при чтении после понижения уровня
    • Исправлена проблема потери данных в mars3 btree в objectstore (#IAW0V6)
    • Исправлена ошибка, при которой fullmatch возвращал несколько данных, когда mars3 brin содержал значения NULL
    • Исправлена ошибка, при которой обычные пользователи mars3 не имели прав на создание CV
    • Исправлена ошибка, при которой mars3 compactor выполнял недопустимые задачи
    • Исправлена ошибка, при которой mars3 compactor создавал пустой RUN
    • Исправлена ошибка, при которой сканирования mars3 не освобождались своевременно при вложенных циклах (#IASJL5)
  2. Движок выполнения

    • Исправлена ошибка, при которой планировщик compact не мог автоматически запускаться (#IAY4NK, #IAY3AO, #IAY39L)
    • Исправлена ошибка выполнения для плана типа VHashJoin + VWindowAgg (#IAP7Y6)
    • Исправлена ошибка кэширования vnode в vplan (#IAS6NZ)
    • Исправлена ошибка, при которой выполнение vacuum full приводило к сбою (#IAY4NK)
    • Исправлена ошибка результата vbitmapscan при наличии runtimkey (#IAHXLG)

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

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


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

  1. Движок хранения:
    • Исправлена проблема бесконечного цикла при вставке в 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


Улучшения и исправления

  1. Движок хранения:
    • Исправлена ошибка сбоев при повторном сканировании в mars3 (#IA4SAA)
    • Исправлена ошибка сбоя при использовании VindexScan в mars3 в случае условного индекса (#IA4YOQ)
    • Исправлена ошибка сбоя при использовании BitmapScan в mars3 в случае BitmapAnd (#IA7A16)
  2. Движок выполнения:
    • Исправлена поддержка именованных курсоров в быстром дистрибьюторе в расширенном режиме (#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)
  3. MatrixUI
    • Исправлена ошибка отображения времени метрик кластера на странице Dashboard (#IABL52)
    • Исправлена ошибка сохранения конфигурации сбора данных на странице анализа нагрузки в Ubuntu20 (#IAAFSS)
    • Исправлена ошибка автоматической проверки некоторых отчётов shell-скриптов в Ubuntu20 (#IA9SZW)
    • Исправлена уязвимость безопасности зависимостей среды выполнения UI (#IAD077)
  4. MatrixGate
    • Исправлены утечки памяти процессов в версиях после 5.2.2 (#IAD077)

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

Дата выпуска: 2024-06-14


Улучшения и исправления

  1. Инструменты
    • В режиме передачи при подключении mxgate к исходной базе данных установлено значение idle_in_transaction_session_timeout = 0, чтобы предотвратить сбой всей передачи данных из-за тайм-аута неактивного соединения, которое уже завершило передачу данных. (#7506)
    • Добавлено автоматическое партиционирование для таблиц каталога вставок и таблиц журнала ошибок вставок для различных источников данных. (#7499)
  2. Движок хранения
    • MARS3 добавил новый режим вставки «single» для снижения задержки вставки.
    • Оптимизировано создание CV с долгосрочными проблемами блокировки при операции Insert. (#7266)
    • Оптимизировано время удержания мьютексов в ParallelScan в MARS3.
  3. Движок выполнения
    • Расширена поддержка векторизованного оконного оператора, добавлена поддержка большинства оконных функций и характеристик окон. (#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)

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

  1. Инструменты
    • Исправлена ошибка, при которой файл лицензии не распознавался корректно при запуске mxgate.
    • Исправлена проблема производительности: задержка вставки записей mxgate (200 мс) в таблицу каталога вставок замедляла работу mxgate. (#7277)
  2. Движок хранения
    • Исправлен некорректный план для InorderScan при timebucket в MARS3. (#7262)
    • Исправлена ошибка AssertFail в IndexRollback для MARS3.
    • Исправлен сбой при использовании mars2-btree в качестве ScanKey. (#7306)
    • Исправлены проблемы видимости в MARS3 Vaggscan. (#7303)
    • Исправлена ошибка сопоставления в BrinIndexScan в MARS3. (#7252)
    • Исправлена ошибка отсутствия xlog в MARS3.
    • Исправлена ошибка данных в планировщике, когда одновременно существовали motion и ParallelNode. (#7261)
    • Исправлена ошибка отката операции truncate в MARS3.
    • Исправлена ошибка взаимоблокировки при Drop Table в MARS3.
    • Исправлены проблемы совместимости StripeDesc со старыми версиями MARS3.
    • Исправлена ошибка отката run successor в MARS3.
    • Исправлена ошибка потери данных при вставке в MARS3 через JDBC-драйвер.
  3. Движок выполнения
    • Исправлена ошибка, при которой векторизованный агрегирующий оператор неправильно сериализовал промежуточные значения агрегации first(), last(). (#7313)
    • Исправлена ошибка, при которой векторизованные исполнители могли не векторизовать подзапрос. (#6117)
    • Исправлена ошибка, при которой быстрый дистрибьютор мог видеть неверную версию информации каталога. (#7218)
    • Исправлена ошибка, при которой быстрый дистрибьютор не обновлял статистику при операциях вставки. (#7405)
    • Исправлен сбой, вызванный постоянной агрегацией, которая могла ошибочно переписывать выражения. (#7223)
    • Исправлена ошибка возможного сбоя при сериализации снимков транзакций. (#7140)
    • Исправлена ошибка некорректной генерации операторов разделённого обновления и motion при операции обновления таблицы с распределением по одному узлу. (#7151)
    • Исправлена ошибка некорректного поддержания search_path в режиме пула соединений с транзакциями. (#7132)
    • Исправлена ошибка несоответствия временных меток транзакций на QD и QE. (#7362)
    • Исправлена ошибка компиляции с gcc-8. (#7424)
    • Исправлена ошибка, при которой тип MXKV2 не очищал состояние корректно при возникновении ошибки в операторе. (#7328)
    • Исправлена ошибка порядка освобождения внутренних ресурсов MXKV2 из-за изменений в жизненном цикле внутри MARS3. (#7309)
    • Исправлена проблема нехватки памяти (OOM) при обработке хранения строковых данных при запросах MXKV2 с большим количеством выражений -> и оптимизирована производительность. (#7387)
    • Исправлена ошибка срабатывания Assert при одновременном наличии нескольких функций, требующих информации о группировке, в векторизованных оконных функциях. (#7418)
    • Исправлена ошибка, при которой векторизованный ShareInputScan добавлял данные в памяти в файлы Spill. (#7501)
    • Исправлена ошибка, при которой узлы плана с пометкой squelched не выполнялись из-за векторизованного Sequence. (#7485)
    • Исправлена ошибка обработки блока данных ALLNULL в MXKV2 в уникальном режиме MARS3. (#7487)
    • Исправлена ошибка, связанная с созданием таблиц masteronly в CTAS и материализованных представлениях. (#7514)
    • Исправлена ошибка, при которой оптимизатор сообщал об ошибке при преобразовании подзапроса в оператор соединения. (#6524)
    • Исправлено избегание параллельного сканирования в режиме быстрого дистрибьютора. (#7382)
    • Исправлена ошибка, при которой предложение RETURNING в расширенном режиме не возвращало результат. (#7384)
    • Исправлена ошибка, при которой узлы плана с пометкой squelched не выполнялись из-за HashJoin. (#7416)
    • Исправлена ошибка, при которой быстрый дистрибьютор ошибочно интерпретировал nextval() как возвращаемое значение в расширенном режиме. (#7397)
    • Исправлена ошибка некорректных результатов агрегации при наличии параллельного рабочего процесса в таблице с распределением по одному узлу. (#7445)
    • Исправлена ошибка, при которой быстрый дистрибьютор использовал некорректную клиентскую кодировку. (#7448)
    • Исправлена ошибка, при которой быстрый дистрибьютор не проверял forceDistRandom в расширенном режиме. (#7453)
    • Исправлена ошибка, при которой статистика быстрого дистрибьютора в расширенном режиме не обновлялась. (#7464)
    • Исправлена проблема зависания писателя в ShareInputScan и преждевременного выхода читателя VShareInputScan (#7471)
    • Исправлена ошибка Assert при изменении первичного ключа в таблицах с одним узлом и masteronly с комментарием. (#7504)
    • Улучшена поддержка быстрым дистрибьютором отображения плана и конкретной информации о выполнении на QE. (#7522)
    • Исправлена поддержка курсоров в быстром дистрибьюторе. (#7381)
    • Улучшена поддержка CTE в быстром дистрибьюторе. (#7389)
    • Исправлен механизм корректного удаления PreparedStatement в расширенном режиме быстрого дистрибьютора (#7512)
    • Исправлен сбой при наличии векторизованной агрегации (#7541)
    • Исправлена ошибка Assert при ALTER TABLE (#7454)

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

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


Новые функции и улучшения

  1. Графический интерфейс (MatrixUI)
    • Добавлена страница мониторинга процесса MatrixGate. Предоставляет наглядное графическое отображение показателей производительности для упрощения анализа производительности.
  2. 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 секунд).
  3. Векторизованный движок выполнения
    • Обновлен векторизованный планировщик запросов до версии v3. (#3427)
    • Обновлен векторизованный оператор агрегации (Agg) до версии v2. (#3328)
    • Оптимизирована поддержка операций distinct векторизованным оператором агрегации. (#3355, #3386, #3410)

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

  1. Инструменты
    • Исправлена проблема, при которой mxshift не мог мигрировать автономные кластеры. (#7257)
    • Исправлена проблема несоответствия количества строк до и после синхронизации данных при очень разреженном распределении данных. (#7251)
  2. MatrixGate
    • Исправлена проблема, при которой при записи данных через Kafka состояние, записанное в kafka_catalog, было некорректным, если в микропакете был только один элемент данных. (#3002)
  3. Движок хранения
    • Исправлена ошибка Invalid attribute number, возникающая при выполнении MARS3 определённого запроса после отключения векторизации. (#7262)
    • Исправлена проблема с размером индекса mars3_btree. (#7319)
    • Исправлена проблема, при которой индекс mars3_brin был некорректным в конкретном случае, когда включён IndexScan. (#7276)
    • Исправлена проблема, при которой при выполнении SQL-запроса MARS3 с хранением строк существовала определённая вероятность сбоя. (#7253)
    • Исправлена ошибка, возникающая в MARS3 после выполнения ROLLBACK после выполнения DROP INDEX. (#7232)
    • Исправлена проблема низкой производительности при создании определённых таблиц MARS3 и индексов mars3_brin. (#7290)
    • Исправлена проблема сбоев индекса mars2_btree при наличии нескольких arraykeys с одинаковым attno. (#7306)
    • Исправлена ошибка сопоставления, возникающая при передаче brinkey оператора like в MARS2. (#7252)
    • Исправлена проблема корректности при наличии невидимых данных в vaggscan MARS3. (#7303)
  4. Движок выполнения
    • Исправлена обработка Runtime Filter векторизованным планом запроса. (#3329, #3347)
    • Исправлена проблема, при которой в векторизованных планах запросов могли появляться недопустимые операторы. (#7186)
    • Исправлена проблема, при которой векторизованный оператор агрегации некорректно обрабатывал агрегацию PLAIN. (#3332)
    • Исправлена поддержка подрежима INTERMEDIATE векторизованным оператором агрегации. (#7061)
    • Исправлена поддержка фильтров векторизованными операторами соединения. (#3350)
  5. MXKV2
    • Исправлена проблема добавления новых столбцов в таблицы с колонками MXKV2 с помощью ALTER TABLE. (#7274)
    • Исправлена проблема порядка освобождения ресурсов внутри MXKV2 из-за изменений в жизненном цикле внутри MARS3. (#7309)

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

Дата выпуска: 2024-03-29


Новые функции и улучшения

  1. Непрерывный сбор (CV)
    • Индекс нижележащего хранилища для непрерывной кластеризации изменён по умолчанию с mars3_brin (v5.2.0–v5.3.0) на mars3_btree (начиная с v5.3.1).

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

  1. RMGR
    • Исправлена проблема несовместимости RMGR (Explorer) в версии 5.3.0. (#3409)

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

Дата выпуска: 2024-03-22


Выпуск новых функций

  1. Графический интерфейс (MatrixUI)
    • Добавлена новая домашняя страница с функциями анализа показателей ресурсов и статистики запросов.
    • Добавлен интерфейс на английском языке.
  2. Инструмент миграции экземпляров узлов данных (Segment) mxmoveseg
    • Поддерживается миграция резервных узлов мастера (Standby). (Документация)
  3. 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: время фиксации транзакции вставки.

Новые функции и улучшения

  1. Инструмент миграции экземпляров узлов данных (Segment) mxmoveseg (Документация)
    • При отключении исходного сервера миграции старый сервер можно перезапустить после завершения миграции, при этом кластер не будет находиться в аварийном состоянии.
  2. Высокая доступность
    • Исправлена проблема двойного отказа в кластере с настроенными Standby/Mirror (все экземпляры данных в шарде данных (включая Primary и соответствующий Mirror) отключены).
  3. Улучшение функций 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))
  4. Улучшение функций векторизованного движка выполнения
    • Реализован векторизованный оператор общего сканирования.
    • Реализован векторизованный оператор удаления дубликатов.
    • Оптимизирована стабильность векторизованных исполнителей при использовании оптимизаторов ORCA.
    • Оптимизирована производительность векторизованных операторов соединения при правом соединении.
  5. Улучшение функций движка хранения MARS3
    • Добавлена поддержка индекса btree в движке хранения MARS3.
    • Оптимизирована стабильность MARS3 при использовании с ORCA.
  6. Улучшение функций MatrixGate
    • Поддерживается завершение процесса mxgate, прослушивающего указанный порт, посредством отправки gRPC-запроса. Соответствующая команда: mxgate stop --grpc-port [port]. ([Документация](/ru/doc/5.3/tools/mxgate/parameter#2%20 command line parameters))

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

  1. Инструменты
    • Исправлена проблема, при которой mxshift в режиме mode="output" при высокой степени параллелизма и наличии группы зависимых представлений (содержимое одного представления основано на SELECT другого представления) могла возникать ошибка «view ... not exist». (#6907)
    • Исправлена ошибка «no pg_hba.con entry for host 127.0.0.1», возникающая при миграции с использованием нестандартного суперпользователя и параметром disable-connector=false.
  2. Движок выполнения
    • Исправлен сбой оператора motion в определённых условиях. (#3281)
    • Исправлен сбой векторизованного оператора соединения в определённых условиях. (#3263)
    • Исправлен сбой векторизованного движка выполнения в определённых условиях. (#3230)
    • Исправлен сбой векторизованного оператора агрегации в определённых условиях. (#3223)
    • Исправлена ошибка, при которой векторизованный движок выполнения не мог автоматически выполнить запрос в некоторых ситуациях. (#3280)
    • Исправлен сбой векторизованного оператора сканирования индекса в определённых ситуациях. (#3301, #3310)
    • Исправлена проблема, при которой оператор окна мог возвращать неверные результаты при скольжении окна. (#3302)
    • Исправлен сбой векторизованных операторов сканирования при встрече одноразового фильтра. (#3314)
  3. Типы данных
    • Оптимизировано использование памяти для MXKV2. (#3204)
  4. Оптимизатор
    • Исправлена проблема, при которой ORCA не мог создать план запроса в определённых ситуациях. (#3270)
  5. Движок запросов
    • Исправлена проблема, при которой функции first() и last() могли возвращать неверные результаты при наличии NULL-значений на входе. (#3292)
    • Исправлена проблема, при которой атрибут varchar в скользящем окне возвращал неопределённые результаты. (#3229)
  6. MatrixGate
    • Исправлена проблема таймаута при подключении к кластеру Kafka в режиме consumer-group. (#6848)
    • Исправлена проблема невозможности обновления метаданных таблицы после приостановки задания. (#6966)
    • Исправлена проблема несогласованности состояния слота при отправке пустых данных в задании. (#7026)
    • Исправлена проблема некорректного получения значений по умолчанию при преобразовании входных данных JSON в типы CSV или TEXT. (#6550)
    • Исправлена проблема несогласованности состояний слотов при немедленной настройке stream-prepared count после запуска mxgate. (#7113)
  7. Движок хранения
    • Исправлена проблема некорректного извлечения ActiveSnapshot в MARS3. (#3218)
    • Исправлена проблема с VACUUM freeze в MARS3. (#3226)
    • Исправлена проблема, при которой MARS3 не мог выбрать правильный запуск в определённых сценариях. (#3224)
    • Исправлен сбой индексов btree в MARS2 при обработке определённых выражений поиска массивов. (#3246)
    • Исправлена проблема управления блокировками при параллельных заданиях сжатия в MARS3 в определённых сценариях. (#3234)
    • Исправлена проблема, при которой индексы BRIN в MARS3 создавали некорректные снимки при параллельных сканированиях. (#3253)
    • Исправлена проблема, при которой индексы B-tree в MARS2 возвращали неверные результаты в определённых сценариях. (#3297)
    • Исправлена проблема некорректной очистки соединений QE при сбое direct dispatch в определённых сценариях.

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

Дата выпуска: 2024-01-16


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

  1. MatrixGate
    • Исправлена проблема, при которой миграция данных завершалась сбоем, если количество соединений каналов данных превышало количество сегментов в исходном кластере в режиме миграции. (#6800)
    • Исправлена проблема, при которой MatrixGate (mxgate) не реагировал на изменения языка определения данных (DDL) и не обновлял задачи автоматически после отказа узла мастера (Master) и автоматического переключения на резервный узел (Standby) при отказоустойчивости. (#6850)
    • Исправлена проблема, при которой служба mxgate, настроенная через функцию потоковых данных Kafka в MatrixUI, повторно перезапускалась процессом supervisor, если целевая таблица не существовала. (#6928-1)
    • Исправлена проблема возможного конфликта портов mxgate при запуске в фоновом режиме при одновременном создании потоков Kafka в нескольких окнах браузера. (#6928-2)
  2. Инструменты
    • Исправлена проблема, при которой mxshift мог не запуститься при гетерогенных исходной и целевой базах данных (разное количество хостов или узлов), что приводило к ошибке: «/tmp/mxshift/mxshift_worker.xxxx does not exist». Эта проблема существует только в версии 5.2.1; более ранние версии не затронуты. Пользователи, уже обновившиеся до версии 5.2.1, могут напрямую использовать mxshift из версии 5.2.2. (#6909)
  3. Cylinder
    • Исправлена проблема, при которой cylinder не мог правильно собирать статистику таблиц данных, если в файле .psqlrc содержалась настройка \timing. Эта проблема существует только в версии 5.2.1; более ранние версии не затронуты. (#6860)

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

Дата выпуска: 2024-01-02


Улучшения и оптимизации

  1. MXKV2
    • Оптимизировано использование памяти MXKV2 (#3178).
    • Оптимизирована производительность сжатия MXKV2 (#3180).
    • Оптимизирована производительность импорта данных в MXKV2 (#3162).
  2. Векторизованный движок выполнения
    • Оптимизировано использование памяти векторизованных операторов передачи данных в многоколоночных запросах (#3175).
    • Оптимизирована производительность внешних хеш-алгоритмов для векторизованных хеш-агрегатов (#3213).
    • Оптимизирована эффективность последовательных сравнений для текстовых типов (#3163).

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

  1. MatrixGate
    • Исправлена проблема, при которой MatrixGate мог не продолжить извлечение данных из consumer-group после перезапуска/сбоя базы данных при использовании режима consumer-group с источником данных Kafka (#6848).
  2. Графический интерфейс
    • Исправлена проблема, при которой на странице анализа нагрузки отображались ошибки и аномалии, когда конфигурация mxstat_statements.harvest_interval была установлена в значение, отличное от значения по умолчанию (#6768).
  3. Непрерывная агрегация
    • Исправлена проблема, при которой непрерывное представление (CV) не создавалось, когда оператор groupagg был отключен (#6823).
    • Исправлена проблема, при которой CV аварийно завершался из-за некорректного порядка освобождения памяти (#6766).
  4. Движок хранения
    • Исправлена проблема взаимоблокировки между фоновыми и передними процессами в MARS3 (#6816).
    • Исправлена проблема, при которой MARS2 вызывал исключение из-за обращения к null-указателю Option при добавлении или удалении столбцов.
  5. Группы ресурсов
    • Исправлена проблема, при которой bgworker в режиме групп ресурсов с предварительной загрузкой мог аварийно завершаться при запуске (#3169).
    • Исправлена проблема с обработкой путей cgroup в группах ресурсов (#3169).
    • Исправлена проблема, при которой группы ресурсов могли предоставлять некорректную статистику состояния (#3198).
  6. Движок выполнения
    • Исправлена проблема, при которой оператор AssertOp мог аварийно завершаться при инициализации (#3183).
    • Исправлена проблема, при которой таблица AOCO могла аварийно завершаться при векторизованном сканировании (#3158).
    • Исправлена проблема, при которой оптимизация оператора minmax agg в подзапросах могла вызывать сбои (#3190).
    • Исправлена проблема, при которой векторизованное сканирование MARS2 могло аварийно завершаться при определённых условиях (#3151).
    • Исправлена проблема сбоев при векторизованном общем сканировании при определённых условиях (#3082).
    • Исправлена проблема, при которой векторизованные операторы могли видеть несогласованные переключения между процессом диспетчера запросов (QD) и процессом исполнителя запросов (QE) (#3109).
    • Исправлена проблема, при которой некоторые векторизованные операторы могли использовать только ограниченный объём памяти (#6626).
  7. Типы данных
    • Исправлена проблема, при которой столбцы MXKV2 могли быть настроены некорректно (#3172).
    • Исправлена проблема с обработкой значений NULL в MXKV2 при определённых условиях (#3176).
    • Исправлена проблема, при которой MXKV2 некорректно передавал выражения на более низкий уровень при определённых условиях (#3131).
    • Исправлена проблема с видимостью данных в MXKV2 (#3149).
    • Исправлена проблема, при которой типы MXKV2 создавали избыточные индексы в некоторых сценариях (#3149).

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

Дата выпуска: 2023-12-08


Основные нововведения

  1. Графический интерфейс
    • Поддержка графической установки и развертывания YMatrix на операционных системах Tongxin UOS20, Dragon Lizard 8.X, Kirin Xinan 3.X и Zhongbiao Kirin 7.X.
    • Добавлена функция SQL-исполнителя.
    • Добавлена функция анализа нагрузки (документ).
  2. Векторизованный движок выполнения (документ)
    • Поддержка интеграции с оптимизатором ORCA. Движки хранения HEAP и AO поддерживают прямое подключение, MARS2/3 — нет. В частности, AOCO может одновременно подключаться к векторизованному движку выполнения и ORCA.
  3. Добавлена функция понижения уровня хранения, поддерживающая автоматическое разделение «горячих» и «холодных» данных и перемещение «холодных» данных на более экономичное объектное хранилище (документ).
  4. Добавлен тип данных MXKV2, упрощающий шаги использования и улучшающий производительность сжатия по сравнению с MXKV (документ).
  5. Добавлен инструмент-плагин pgvector для поддержки векторных сценариев (документ).

Улучшения и оптимизации

  1. Значение параметра populate для непрерывной агрегации по умолчанию изменено на false ([документ](/ru/doc/5.2/datamodel/cv#2.5%20 query Continuous aggregation view)).
  2. Если исходные два RPM-пакета объединены в один, объём может увеличиться. Однако пользователи больше не обязаны устанавливать пакет DebugInfo, что удобнее для отладки и анализа в бизнес-среде.
  3. MatrixGate
    • Поддержка включения или отключения автоматической настройки количества слотов для указанных задач, поддержка запроса статуса настройки для всех или конкретных задач ([документ](/ru/doc/5.2/tools/mxgate/feature#9%20mxgate%20automatic adjustment of %20slot%20number)).
    • Введён параметр --abort-by-pause-timeout в категории [writer.stream]. Поддерживает накопление данных в памяти при переходе задачи в состояние паузы по истечении указанного таймаута (документ).
    • Поддержка пакетной записи данных типа JSON через HTTP (документ).
  4. Графический интерфейс
    • Оптимизировано взаимодействие при настройке пути хранения 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)).
  5. Инструмент миграции данных 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)).

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

  1. Оптимизатор
    • Исправлена проблема, при которой планы запросов ORCA не могли генерироваться для секционированных таблиц (#6104).
  2. Движок выполнения
    • Исправлена проблема, при которой векторизованный исполнитель аварийно завершался при пустой информации EXPLAIN ANALYZE (#6634).
  3. MatrixGate
    • Улучшена семантика отображения JSON: ввод { “key”: null } теперь отображает ключ как NULL в базе данных (проблема #6536).
    • Исправлена проблема, при которой приостановка задачи командой mxgate pause (без параметра -X) препятствовала остановке mxgate через mxgate stop или Ctrl+C (проблема #6519).
    • Исправлена проблема конфликта между поведением задачи (Job) при её приостановке, изменениями DDL таблицы данных или попытками функции автоматической настройки слотов изменить состояние задачи (#6436).
    • При отображении строк данных в JSON, если для каждого столбца, подлежащего отображению, в текущей строке данных не найдено соответствующего ключа, строка помечается как недопустимая, и пустая строка не вставляется в базу данных (#6488).
    • Улучшены производительность и использование памяти компонента логирования mxgate (#6242).
    • Исправлена проблема, при которой автоматический запуск mxgate не мог создать расширение matrixts, если путь поиска по умолчанию базы данных не был установлен в «public» (#6430).
    • Исправлена проблема, при которой отчёты метрик в mxgate watch были неясными при использовании нескольких процессов mxgate в одной базе данных (#5848).
    • Оптимизировано время освобождения пула памяти в компоненте plain transform, что снизило потребление памяти процессом mxgated (#6071).
  4. Движок хранения
    • Исправлена проблема, при которой MARS3 некорректно рассчитывал диапазон uidoverlap в режиме uniquemode (#6551).
    • Исправлена проблема, при которой повторное использование reader gang приводило к несогласованности syscache (#6419).
    • Исправлена проблема с поддержанием состояния компактных рабочих процессов в пуле рабочих (#workerpool) (#6374).
    • Исправлена проблема, при которой состояние Squelch сбрасывалось при одновременном наличии HashJoin и NestLoop (#6598).
    • Исправлена проблема повреждения метаданных при использовании BaseStore.extend с несколькими файловыми единицами (#6587).
    • Исправлена проблема сбоя dsm share snapshot при выходе очереди записи (#6514).
    • Исправлена проблема несоответствия жизненного цикла MemoryContext для seqscan в MARS3 (#6296).
    • Исправлена проблема, при которой MARS3 не поддерживал copy-to (#6440).
    • Исправлена проблема, при которой MARS3 выдавал ошибку при выполнении ALTER TABLE (#6419).
    • Исправлена проблема, при которой планировщик компактизации не запускался после расширения (#6419).
    • Исправлена проблема некорректного формата sortkeyhint при наличии данных NULL (#6395).
    • Исправлена проблема сбоя join_concat при обработке нескалярного JSON (#6350).
    • Исправлена проблема, при которой mars2_btree не мог обрабатывать индексные столбцы с выражениями по нескольким столбцам (#6296).
    • Исправлена проблема, при которой run некорректно устанавливал максимальное количество строк для выборки при слиянии (#6226).
    • Исправлена проблема, при которой run вызывал переполнение при слиянии из-за добавления данных (#6297).
    • Исправлена проблема, при которой run вызывал ошибки вычислений при слиянии при чтении данных для выравнивающих расчётов (#6226).
    • Исправлена проблема, при которой режим uniquemode не мог быть отключён (#6439).
    • Исправлена проблема, при которой условия фильтрации некорректно передавались на более низкий уровень при параллельных сканированиях (#6553).
    • Исправлена проблема, при которой индексы BRIN на секционированных таблицах не могли быть удалены (#6589).
    • Исправлена проблема, при которой при отмене создания индекса и повторной попытке создания возникала ошибка (#6545).
    • Исправлена проблема, при которой run, который уже был прочитан, не освобождался своевременно в ходе запроса (#6394).
    • Исправлена проблема, при которой столбцы, обрабатываемые при автоматическом ANALYZE, были некорректны (#6447).
    • Исправлена проблема, при которой параллелизм не отбрасывался своевременно при добавлении пути выполнения (#6447).
    • Исправлена проблема, при которой seqscan читал данные слишком медленно (#6607).
    • Исправлена незначительная утечка памяти в CacheMemoryContext (#6307).
    • Исправлена проблема сбоя MARS3 Alter Type (#6496).
    • Исправлена проблема с правами доступа при создании обычного пользователя в MARS3 (#6295).
    • Исправлена проблема с функцией hint-only в MARS3 (#6530).
    • Исправлена проблема, при которой файлы не удавалось открыть в MARS3 (#6459).
  5. Типы данных
    • Исправлена проблема сбоев в MXKV2 при определённых условиях (#6466, #6409, #6568, #6544).
    • Исправлена проблема, при которой MXKV2 мог оставлять дочерние таблицы после удаления основной таблицы (#6408).

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

Дата выпуска: 2023-09-25


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

  1. MatrixGate
    • Оптимизирован цикл освобождения памяти для zstd-обработчиков сжатия, что снизило потребление памяти процессом mxgated (#6299)
    • Исправлена проблема, при которой сессии базы данных, установленные MatrixGate, не могли обновляться периодически, когда в кластере были Standby-узлы (#6308)

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

Дата выпуска: 2023-09-11


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

  1. Движок хранения
    • Исправлена проблема, при которой запросы завершались сбоем из-за аномальных параллельных записей в кэш-слой L0 таблиц MARS3 (#6155)
  2. MatrixGate
    • Исправлена проблема, при которой MatrixGate не мог возобновить задачи из-за внутренних таймаутов при автоматическом секционировании таблиц данных, что препятствовало дальнейшему вводу данных (#6165)

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

Дата выпуска: 2023-08-25


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

  1. Движок хранения
    • Исправлена проблема с журналом повторного выполнения (redo log) в режиме uniquemode движка хранения MARS3.

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

Дата выпуска: 2023-08-22


Новые функции

  1. Добавлен движок хранения MARS3 (Документация), который по сравнению с MARS2:
    • Реализует совместное хранение строк и столбцов, записывая строки данных на диск, что значительно повышает производительность записи
    • Позволяет создавать таблицы без необходимости создания дополнительных индексов
    • Поддерживает обновление и удаление данных, добавление и удаление столбцов, а также механизм MVCC
    • Сохраняет преимущества производительности MARS2 в сценариях временных рядов и дополнительно поддерживает сценарии AP и TP
  2. Новый инструмент миграции зеркальных экземпляров mxmoveseg (Документация):
    • Поддерживает миграцию любого экземпляра базы данных, который в данный момент является зеркалом, на другие серверы
    • Не поддерживает миграцию резервных узлов (standbys)
  3. Расширение функциональности инструмента миграции данных mxshift (Документация):
    • Поддерживает инкрементальную миграцию: параллельно переносит язык определения данных (DDL) и данные выбранных таблиц из кластера Greenplum 4.3.33/5/6 или YMatrix в целевую базу данных нового кластера YMatrix
    • Поддерживает указание IP-адреса, соответствующего имени хоста, через параметры в категории [database.source.hostname-to-ip] для обеспечения точности маршрутизации
    • Добавлен параметр install-dir для замены параметра gphome
  4. Улучшения функций MatrixGate:
    • Поддерживает немедленное выполнение команд изменения DDL во время процесса записи (Документация)
    • Поддерживает автоматическую настройку количества соединений в зависимости от нагрузки различных задач записи (Документация)
    • Поддерживает количественную оценку нагрузки на запись данных источника в виде процентного значения (Документация)
    • Поддерживает ограничение размера пакетной загрузки данных (Документация)
  5. Расширение функциональности алгоритма сжатия цепочки кодирования (Документация: [/ru/doc/5.1/reference/storage/compression]):
    • Добавлены алгоритмы Gorilla2 и fds
  6. Обновление графического интерфейса (Документация: /ru/doc/5.1/maintain/self_service_inspection):
    • Добавлена страница самостоятельной проверки, поддерживающая создание планов проверки путем выбора параметров проверки и формирование подробных отчетов
  7. Поддержка отечественных платформ 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)

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

  1. Движок хранения
    • Исправлен сбой, вызванный движком хранения AOCS при сканировании индекса
    • Исправлен сбой, вызванный движком хранения MARS2 при определении более чем 32 индексов minmax
  2. MatrixGate
    • Исправлена проблема чрезмерного использования памяти MatrixGate при запуске сжатия
    • Исправлена проблема внутренних логических ошибок MatrixGate, вызванная таймаутом соединения
  3. MatrixManager
    • Исправлена проблема чрезмерного использования памяти MatrixMgr из-за длительного неподключения к освобождению соединений
  4. Движок выполнения
    • Исправлен сбой, вызванный mxvector из-за отсутствия выравнивания при обработке значений NULL
    • Исправлена проблема сбоя при обработке InitPlan в параллельном режиме
    • Исправлена проблема расчета статистики в секционированной таблице
  5. Инструменты
    • Исправлена ошибка проверки данных, вызванная командой mxaddmirrors при обработке контрольной суммы в хранилище AO
    • Исправлена ошибка при выполнении операций DDL в mxshift

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

Дата выпуска: 2023-06-06


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

  1. Движок выполнения
    • Исправлен сбой, вызванный векторизованным вычислением выражений оконных функций
    • Исправлен сбой, вызванный обработкой логики группировки в оконных функциях с плавающим окном
  2. MatrixGate
    • Исправлена проблема, при которой MatrixGate блокировал поступление данных в другие таблицы при блокировке одной таблицы
  3. Высокая доступность
    • Улучшен метод обнаружения работоспособности узлов Segment, повышена стабильность при высоких нагрузках ввода-вывода

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

Дата выпуска: 2023-03-31


Новые функции

  1. Совершенно новая архитектура базы данных

    • На основе алгоритма Raft реализована автоматическая передача отказоустойчивости между основным узлом кластера (Master) и резервным узлом (Standby) (Документ)
    • Внедрена архитектура, ориентированная на сервисы, что упрощает и облегчает развертывание и эксплуатацию кластеров (документ)
    • Добавлены инструменты управления кластером: mxaddmirrors(документ), mxdeletes(документ), mxstop(документ), mxrecover(документ), mxstart(документ), mxstate(документ), mxstop(документ))
    • Поддержка развертывания мониторинга кластеров etcd (документ)
  2. Добавлен векторизованный движок выполнения (документ):

    • Поддержка пакетной обработки: использование пакетной обработки эффективно снижает накладные расходы на выполнение вызовов функций и другие
    • Полное использование возможностей оборудования и компилятора: применение алгоритмов, дружественных кэшу CPU, для полного использования возможностей оптимизации оборудования и компилятора, например, генерация SIMD-инструкций (Single Instruction, Multiple Data)
    • Поддержка множества операторов: реализованы операторы Scan, Sort, Aggregate, Join, Window Function, Sub Query, Limit, Motion и другие. Для одного и того же оператора предусмотрены различные алгоритмические реализации, эффективно охватывающие большинство сценариев запросов и повышающие производительность запросов

    На основе вышеуказанных трех основных принципов векторизованные движки выполнения могут достигать повышения производительности на 1–2 порядка по сравнению с традиционными движками выполнения, ориентированными на построчную обработку.

  3. Добавлена технология оптимизации производительности запросов Runtime Filter (Документ):

    • RuntimeFilter — одна из ключевых технологий повышения производительности движка выполнения YMatrix. Она представляет собой фильтр (Filter), динамически создаваемый при выполнении в движке после генерации оптимизатором физического плана выполнения, в отличие от фильтров, запланированных заранее оптимизатором.
  4. Существенная оптимизация производительности движка хранения MARS2 (документ):

    • Оптимизация стратегий сжатия для снижения использования памяти
    • Оптимизация записи в секционированные таблицы и снижение потребления памяти
    • Оптимизация фильтрации запросов для уменьшения ненужного потребления I/O
    • Оптимизация оценки объема данных для более точного выбора плана выполнения
    • Расширение возможностей агрегации, поддержка режима uniquemode и выражений IN
  5. Добавлен новый алгоритм сжатия цепочки кодирования (документ):

    • Поддержка нескольких алгоритмов кодирования и сжатия: поддерживаются lz4, zstd, simple8b, doubledelta, gorilla, deltazigzag, floatint и другие алгоритмы кодирования и сжатия. Вышеперечисленные алгоритмы могут гибко комбинироваться для максимального повышения степени сжатия
    • Поддержка пользовательских алгоритмов сжатия на уровне столбцов или таблиц
    • Поддержка адаптивного кодирования
    • Совместное использование с векторизованным движком выполнения для повышения скорости сжатия/распаковки данных: в сценариях SSB скорость распаковки в 3 раза выше, чем у LZ4

    Схема сжатия цепочки кодирования может значительно снизить использование пространства и сократить затраты. В сценарии электромобилей степень сжатия в 3,9 раза выше, чем у схемы с алгоритмом сжатия LZ4, а в сценарии TSBS (Time Series Benchmark Suite) — в 2,7 раза выше, чем у LZ4.

  6. Обновление инструмента диагностики хранилища Datainspect (документ):

    • Добавлена новая функция desc_compress, позволяющая сравнить и выбрать два лучших указанных алгоритма сжатия
  7. Расширение функций MatrixGate:

    • Автоматическое переключение службы на соответствующий здоровый резервный узел при активации механизма автоматического переключения отказоустойчивости (документ)
    • Добавлен подробный мониторинг при записи данных, удобный для отладки при возникновении проблем. Можно включить параметр запуска -I (Документ)
    • Проведена серия оптимизаций для сценария загрузки через stdin, производительность загрузки данных увеличена вдвое по сравнению с версией 4.8.0
  8. Добавлена функция плавного расширения емкости (документ):

    • Поддержка задач расширения без остановки системы
    • Поддержка пользовательских наборов узлов данных (Segment Set) для реализации перераспределения частичных таблиц (Документ)
    • Поддержка параллельного выполнения перераспределения данных таблиц
    • Поддержка соединения таблиц, не подвергшихся перераспределению, с перераспределенными таблицами
    • Поддержка однократного плавного расширения через графический интерфейс (Документ)
  9. Расширение функций инструмента миграции данных mxshift (документ):

    • Миграция DDL таблиц данных по единицам баз данных, с возможностью выбора миграции только DDL
  10. Обновление графического интерфейса:

    • Добавлены страницы мониторинга запросов, поддержка отображения информации о медленных запросах на пользовательских страницах управления и возможность немедленного завершения медленных запросов одним щелчком мыши (Документ)
    • Добавлена функция тестирования записи для оценки высокой производительности записи данных YMatrix (документ)
    • Добавлена функция тестирования запросов, поддержка создания пользовательских схем тестирования запросов в соответствии с бизнес-сценариями и возможность оценки высокой производительности запросов YMatrix в сценариях высокой нагрузки одним щелчком мыши (Документ)
    • Страница развертывания полностью обновлена, шаги стали проще (Документ)
    • Страница расширения полностью обновлена, добавлена функция плавного расширения, шаги стали легче (Документ)
    • Добавлена функция проверки состояния высокой доступности (документ)
  11. Добавлена новая политика автоматического управления секциями auto_partitioning_ex (документ):

    • Поддержка массового создания секций
    • Поддержка принудительного сохранения определенных исторических секций
    • Поддержка пользовательского периода автоматической операции секционирования