E.16. Postgres Pro Enterprise 13.9.1

Release Date: 2022-12-15

E.16.1. Overview

This release is based on PostgreSQL 13.9 and Postgres Pro Enterprise 13.8.2. All changes inherited from PostgreSQL 13.9 are listed in PostgreSQL 13.9 Release Notes. As compared with Postgres Pro Enterprise 13.8.2, this version also provides the following changes:

  • Added slru_buffers_size_scale that allows to scale the size of SLRU shared memory buffers. Note that the buffer sizes changed due to this improvement.

  • Improved garbage collection logic in CFS. Now percent of garbage is calculated based on file size rounded to 4 kB (typical filesystem block size) instead of raw file size, which prevents frequent defragmentation of small files.

  • Added support for Elbrus CPU architecture through ALT 9/10 for e2kv3/e2kv4, ALT 8.2 SP for e2kv3/e2kv4 and Astra Linux Leningrad 8.1 operating systems. You are recommended to use the 5.4.182-mcst-e8c-alt3.22.1 Linux kernel or newer when running ALT 10 for e2kv3/e2kv4.

  • Fixed an issue with physical replication, which could lead to a replica crash in rare cases. Previously, WAL records on update and init of heap pages did not contain pd_multi_base so incorrect xmax values could be set.

  • Fixed huge selectivity overestimation observed in rare cases, which could result in a sequential scan of a whole relation instead of a quick index scan, so certain queries were executed much more slowly than expected. The issue was due to an oversight in a recent optimization of selectivity estimation.

  • Fixed bursts in the checkpoint_req counter of the pg_stat_bgwriter view on a replica that occurred from time to time due to a series of unsuccessful attempts to create a restartpoint. The fix checks in advance whether an attempt to create a restartpoint will fail and thus prevents from making obviously unsuccessful attempts. Note that the issue did not cause excessive consumption of system resources even before it was fixed.

  • Fixed compatibility of in_memory with autonomous transactions.

  • Added the oracle_fdw extension to Windows versions of Postgres Pro.

  • Fixed an issue in psql, which mistakenly treated the \duS and \duS+ meta-commands as invalid. Both meta-commands list database roles, including system roles, with a different level of detail, and correctly processed \dgS+ and \du+S (respectively) could be used instead even before the issue was fixed.

  • Upgraded aqo to version 1.5, which contains bugfixes and the following changes:

    • Switched to storing the knowledge base on disk outside of the database. Previously it was stored in Postgres Pro tables.

    • Made aqo relocatable.

    • Added functions to analyze the quality of query planning.

    • Added a possibility to learn from partially completed queries, namely, from those that timed out (see statement_timeout).

    • Made aqo use the same query ID as other extensions. So aqo and pg_stat_statements can be used simultaneously, sharing the same query IDs.

    • Enabled aqo work with temporary tables.

    • Fixed a few memory leaks.

    • Added alpha version of a new feature: search by neighbors (off by default). It allows applying knowledge to newly added queries with a different structure.

  • Upgraded mamonsu to version 3.5.2, which provides new features and bugfixes. Notable changes are as follows:

    • Added autovacuum utilization metrics.

    • Added Zabbix macros based on plugin parameters from the configuration file, so that triggers can now be dynamically changed directly in Zabbix without updating the configuration file and restarting mamonsu.

  • Implemented various improvements and fixed issues in multimaster. Notable changes are as follows:

    • Implemented transaction deadlock prevention mechanism managed by the multimaster.deadlock_prevention configuration parameter. It allows to avoid situations when transactions might not actually run in case of many conflicts due to long deadlock resolution time.

    • Fixed states of multimaster apply workers displayed in the pg_stat_activity view. After applying transactions, the worker status is now set to Idle instead of Active.

    • Fixed an issue, which could result in isolation of all multimaster cluster nodes after dropping any node and adding a new node to the cluster.

  • Upgraded pg_probackup to version 2.5.10, which provides optimizations and bugfixes. Notable changes are as follows:

    • Optimized *.cfm files backup by truncating trailing zeroes.

    • Fixed an issue with checkdb --amcheck, which previously completed with an error when the checked database contained partitioned indexes.

    • Fixed a backup failure on a replica that occurred because the version of the pg_probackup agent running there was different from that on the primary.

  • Upgraded pgpro_pwr to version 4.1, which mainly adds JIT-related statistics to report tables.

  • Upgraded pgpro_scheduler to version 2.8. This version introduces the schedule.timetable() function, which returns all the jobs, both scheduled and one-time, within the specified time interval.

  • Upgraded pgpro_stats to version 1.4.3, which provides bugfixes. In particular:

    • Fixed possible server crashes that could occur during query text normalization when an extended protocol was used.

E.16.2. Migration to Version 13.9.1

If you are upgrading from a Postgres Pro Enterprise release based on the same PostgreSQL major version, it is enough to install the new version into your current installation directory.

If you are migrating to the current major version of Postgres Pro Enterprise using pg_upgrade, and you want to keep the existing visibility map representation in pageinspect, you should run the VACUUM command before the upgrade.

If you have previously migrated to Postgres Pro Enterprise 13.3.1 or lower, you must run the REINDEX command to rebuild GIN indexes.

If you are upgrading from Postgres Pro Enterprise versions 13.2.2 or lower and take PTRACK backups using pg_probackup, retake a full backup after upgrade.

If you have an installation of Postgres Pro Enterprise 13.2.1 that contains compressed tablespaces created without explicitly specifying the pglz algorithm, perform an upgrade as follows. Before upgrading, make a complete dump using pg_dumpall. Upgrade Postgres Pro Enterprise, re-create your database cluster, and restore the dump. Then you can create compressed tablespaces in the same way as before.

If you have already upgraded your installation with CFS tablespaces from Postgres Pro Enterprise 13.2.1, and you cannot access the compressed data, call the support team.

To migrate from PostgreSQL, as well as Postgres Pro Standard or Postgres Pro Enterprise based on a previous PostgreSQL major version, see the migration instructions for version 13.