Greenplum 6.20: что нового?

Автор Категория ,
Greenplum 6.20: что нового?

15 марта 2022 года вышло очередное обновление MPP-СУБД VMware Tanzu Greenplum, в основе которой лежит одноименный open-source проект. Читайте далее, какие новые фичи добавлены в выпуск 6.20 и что за проблемы устранены в этом минорном релизе.

Самое главное: краткий обзор новых фич Greenplum 6.20

Greenplum 6.20.0 включает следующие новые и измененные функции:

  • поддержка развертывания в 64-разрядной версии Red Hat Enterprise Linux 8.x (RHEL), включая PostGIS 2.5.4+pivotal.6.build.1 и MADlib версии 1.19.0. Но при обновлении базовой операционной системы с более ранних версий до RHEL8 необходимо перезаписать данные Greenplum, восстановив полную резервную копию, созданную с помощью gpbackup, или с помощью утилиты копирования данных VMware Tanzu Greenplum (gpcopy).
  • зеркала можно добавлять, восстанавливать или перемещать независимо друг от друга. Ранее Greenplum требовала, чтобы при добавлении, восстановлении или перемещении зеркал все зеркала должны были успешно завершить фазу pg_basebackup, прежде чем перейти в статус работающего. При этом если добавление, восстановление или перемещение зеркал завершалось ошибкой во время pg_basebackup, ни одно из этих зеркал не помечалось как работающее, и пользователю приходилось повторно запускать эти операции для всех зеркал. Теперь пользователю нужно повторно запустить эти операции только для тех зеркал, которые не удалось выполнить во время pg_basebackup. Консоль теперь предоставляет более подробную информацию об ошибках при перемещении, восстановлении или добавлении зеркал, сообщая имя хоста и номер порта зеркал, которые не удалось переместить/восстановить/добавить. Также можно посмотреть расположение файлов журналов для неудачных операций pg_basebackup и pg_rewind и расположение каталога данных для ошибок запуска pg_ctl.
  • Команда gpstate -e теперь включает в свой вывод дополнительный раздел о сегментах в процессе восстановления (Segments in recovery), где для каждого сегмента сообщается тип восстановления (инкрементное или полное), количество завершенных байтов и общее количество байтов, процент завершения восстановления сегмента.
  • gp_log_collector теперь собирает данные из pg_db_role_setting вместо pg_settings и теперь собирает настройки, относящиеся к группам ресурсов.
  • Оптимизатор запросов GPORCA теперь поддерживает сканирование карты битов (bitmap) в партиционированных таблицах, содержащих как кучи, так и разделы только для добавления. Также повышена производительность запросов с помощью создания плана для упорядоченных агрегатов, что можно настроить, установив для нового параметра конфигурации сервера optimizer_enable_orderedagg значение true.

Также добавлены новые модули для PostgreSQL, с которой MPP-СУБД Greenplum тесно связана:

  • btree_gin предоставляет примеры классов операторов обобщенного инвертированного индекса (GIN, Generalized Inverted INdex), которые реализуют поведение, эквивалентное B-дереву, для определенных типов данных;
  • pg_trgm предоставляет функции и операторы для определения подобия буквенно-цифрового текста на основе сопоставления триграмм. Модуль также предоставляет классы операторов индекса, которые поддерживают быстрый поиск похожих строк.

Кроме этого добавлены следующие модули:

  • contrib gp_array_agg реализует параллельную агрегатную функцию array_agg();
  • gp_parallel_retrieve_cursor, который пока в статусе бета-версии, обеспечивает в Greenplum 6.20.0 ​​поддержку параллельного извлечения данных и по запросу непосредственно из сегментов базы данных;
  • greenplum_fdw, который тоже пока в статусе бета, реализует оболочку сторонних данных для доступа к данным, хранящимся в одном или нескольких внешних кластерах базы данных Greenplum. Ее можно использовать совместно с командой CREATE SERVER и новой опцией num_segments для определения количества сегментов в удаленном кластере.

Также исправлены ошибки в существующем модуле gp_sparse_vector, в модуль pageinspect добавлена поддержка bitmap-индексов. Наконец, в свежем релизе включен обновленный выпуск Greenplum Streaming Server 1.7.0 и доступен дистрибутив PXF 6.3.0.

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

В Greenplum 6.20.0 устранены следующие проблемы:

  • ошибка gpstop, из-за которой невозможно было остановить кластер, если резервный главный хост был недоступен;
  • проблема с производительностью запросов к большой таблице, где поведение оптимизатора запросов GPORCA по умолчанию заключалось в использовании группового агрегата. Теперь для этого сценария GPORCA представляет специальный хэш-агрегат gp_array_agg.
  • Проблема с сервером, из-за которой запрос к материализованному представлению SELECT * from <view> периодически завершался глобальным сбоем с сообщением FATAL: Internal error: Using fd > 65535 in MPP_FD_SET.
  • Отсутствие возможности у сервера получить ресурсы в одном или нескольких сегментах из-за коллизий общих моментальных снимков. Теперь код по-разному обрабатывает очистку рабочих процессов во время тайм-аута сеанса очистки бездействия.
  • проблема с выделением памяти для выполнения запросов;
  • проблема с модулем gp_sparse_vector, из-за которой использование оператора == вместо операнда NULL приводило к сбою;
  • повреждение индекса при использовании недопустимого моментального снимка с таблицей только для добавления (Append-Only);
  • ошибка вызова утилиты gpmt с параметром primarymirror_lengths из-за недоступности таблицы pg_filespace_entry. Теперь вместо этого используется таблица gp_segment_configuration;
  • невозможность вызова утилиты gpmt с параметром tablecollect из-за отсутствия в таблице pg_class столбца reltoastidxid;
  • проблема, из-за которой gpload иногда давал сбой и сообщал об ошибке уже отслеженного объекта Garbage Collector из-за двойного освобождения.

Освойте администрирование и эксплуатацию Greenplum и Arenadata DB для эффективного хранения и аналитики больших данных на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Источники

  1. https://greenplum.docs.pivotal.io/6-20/relnotes/release-notes.html