Решенные проблемы

В разделе перечислены проблемы в ADB 5.15.1_arenadata4, их решения и результат.

  • 29659 – VACUUM

При выполнении операции VACUUM над партицированной таблицей, VACUUM некорректно сбрасывал статистику родительской партиции в ноль. Данная некорректная статистика могла являться причиной построения неоптимальных планов в ADB.

Проблема решена. VACUUM не сбрасывает статистику родительской партиции.

29653 – Query Execution

Для запросов, динамически выбирающих партиции из партицированных таблиц, утечки памяти вызывали ошибку переполнения памяти.

Проблема решена. Для обнаруженного класса запросов утечки памяти устранены.

29645 – gpload

Когда утилита gpload переиспользовала внешние и промежуточные таблицы, которые были созданы во время загрузки данных (с параметром REUSE_TABLES=true), таблицы повторно использовались даже при условии смены параметра кодировки (ENCODING) в конфигурационном файле.

Проблема решена. Теперь утилита gpload пересоздает внешние и промежуточные таблицы в случае, если изменен параметр ENCODING.

29635 – gpbackup/gprestore

В ряде случаев запуск утилиты gprestore с опцией –on-error-continue возвращал ошибку во время создания метаданных базы. Ошибка происходила, когда утилита некорректно обрабатывала исключение, возвращаемое командой CREATE SCHEMA.

Проблема решена. Запуск gprestore с опцией –on-error-continue корректно обрабатывает исключения, возвращаемые командой CREATE SCHEMA.

29616 – COPY

В ряде случаев загрузка данных с помощью команды COPY…FROM STDIN приводила к PANIC в ADB, что было вызвано некорректной обработкой ADB исключения, вызываемого невалидными входными данными.

Проблема решена. ADB корректно обрабатывает исключения, и они не приводят к PANIC.

29449 – Query Optimizer

Для ряда запросов, содержащих операторы LEFT OUTER JOIN и GROUP BY, GPORCA выполняла запросы медленнее, чем LEGACY планировщик запросов. GPORCA создавала неоптимальные планы, потому что она не рассматривала дочерние узлы плана LEFT OUTER JOIN при оценке порядка соединения с отношениями из INNER JOIN.

Проблема решена. В GPORCA улучшена оценка порядка соединения.

161653513 – gpdbrestore

Утилита gpdbrestore возвращала ошибку при восстановлении резервной копии, содержащей комментарий к внешней таблице. Ошибка возникала, когда утилита некорректно восстанавливала комментарий.

Проблема решена. Утилита gpdbrestore корректно восстанавливает комментарии для внешних таблиц.

161635233 – gpbackup/gprestore

Утилита gprestore возвращала ошибку при выполнении с одновременно заданными опциями –create-db и –restore-globals. Причиной ошибки было то, что утилита пыталась восстановить роли до создания базы данных.

Проблема решена. Теперь создание ролей происходит после создания базы данных в описанном сценарии.

161607786 – gpbackup/gprestore

В ряде случаев при восстановлении ролей и прав на объекты из резервной копии утилитой gprestore с опцией –restore-globals возвращалась ошибка, что роль не существует. Ошибка была связана с тем, что утилита пыталась выполнить команду GRANT для еще не созданной роли.

Проблема решена. Теперь gprestore сначала создает роли, а после этого выполняет команды GRANT.

161605396 – gpbackup/gprestore

В ряде случаев при запуске утилиты gprestore с опцией –restore-globals для восстановления ролей, прав и ресурсных групп возвращалась ошибка, сообщающая, что ALTER RESOURCE GROUP не может быть выполнено. Ошибка возникала из-за того, что gprestore вызывала некорректную команду при восстановлении системных объектов.

Проблема решена. В указанной ситуации в резервном копировании и восстановлении ресурсных групп с помощью утилит gpbackup и gprestore ошибка исправлена.

5913 – Query Optimizer

В ряде случаев GPORCA вызывала PANIC в ADB при запросе к партицированным таблицам у дочерних таблиц-партиций, в которых были переписаны правила с помощью команды CREATE RULE. При этом LEGACY планировщик на аналогичных запросах возвращал ошибку без PANIC со стороны ADB.

Проблема решена. Теперь GPORCA возвращает ошибку без PANIC для указанных запросов.

29695 – Query Optimizer

В ряде запросов со сложными соединениями множества таблиц GPORCA вызывала PANIC в ADB. PANIC происходила во время оптимизации запроса, так как GPORCA некорректно обрабатывала случай, когда дочерние подсоединения N-ARY JOIN являлись левыми внешними (LEFT OUTER JOIN).

Проблема решена. GPORCA корректно отрабатывает указанные запросы на этапе оптимизации.

29689 – ANALYZE

В ряде случаев при выполнении операции ANALYZE на партицированной таблице с большими объемами данных и большим количеством партиций ADB возвращала ошибку Canceling query because of high VMEM usage. Ошибка памяти происходила по причине того, что ADB некорректно управляла временно создаваемыми счетчиками.

Проблема с временно создаваемыми счетчиками решена и ошибка более не возникает.

29683 – Dispatch

В ряде случаев ADB генерировал PANIC при выполнении запроса, содержащего функцию с SQL выражениями и курсорами. PANIC происходила, когда ADB некорректно управляла распределенными процессами, используемыми при выполнении запроса. Некоторые процессы очищались преждевременно.

Проблема устранена за счет исправления модуля исполнения запросов в ADB.

29681 – Query Execution

В ряде случаев, когда запрос содержал функцию, ADB возвращала ошибку, сообщающую, что файл не может быть открыт. Ошибка была вызвана тем, что ADB некорректно обрабатывала идентификатор прерванной подтранзакции (XID).

Проблема решена. Ошибка устранена, управление подтранзакциями улучшено.

29661 – Query Optimizer

Для ряда запросов GPORCA возвращала ошибку нехватки памяти. Причиной являлось, что GPORCA генерировала план запроса с 1-шаговой агрегацией (а не более эффективными 2-шаговой или 3-шаговой агрегациями), когда параметр серверной конфигурации optimizer_force_three_stage_scalar_dqa был включен.

Проблема решена. GPORCA генерирует 2-шаговые или 3-шаговые агрегации.

29487 – gpdbrestore

В ряде случаев при восстановлении партицированной таблицы утилита gpdbrestore выдавала предупреждение, что ограничение не может быть удалено во время операции восстановления. Предупреждение возникало по причине некорректной работы команды DROP, с помощью которой утилита пыталась удалить партицированную таблицу перед ее созданием.

Проблема решена. Утилита не генерирует данное предупреждение в указанных ситуациях.

162299461 – Query Planner

Для некоторых запросов по партицированной таблице, где производилась выборка партиций, планы запросов LEGACY планировщика запросов не обрабатывали список партиций корректно и приводили к утечкам памяти.

Проблема решена. Поведение LEGACY планировщика запросов при работе со списком партиций исправлено.

162187180 – Resource Groups

В ряде случаев ADB повисала при запуске при включенных ресурсных группах. Логи ADB содержали сообщение, что невозможно записать данные в файл cgroup_cpuset_file. Ошибка возникала, когда все ядра ЦПУ были некорректно выделены ресурсными группами при старте.

Проблема решена. Теперь, когда ресурсные группы включены, ядра ЦПУ выделяются корректно при старте ADB.

161913242 – Query Optimizer

Для некоторых запросов, содержащих подзапрос с условием отбора, в котором участвует указанная во внешнем запросе таблица, GPORCA генерировала неоптимальный план.

Проблема решена. Построение планов для указанного типа запросов в GPORCA улучшено.