E.5. Postgres Pro Enterprise 14.12.1

Release Date: 2024-05-27

E.5.1. Overview

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

  • Disabled the system startup timeout by setting the TimeoutSec parameter to 0 in systemd. Previously, big databases could fail to start within the specified timeout.

  • Reduced logging level during a specified restore point creation at a checkpoint timeout for inactive bases only. It allows removing excessive log messages.

  • Improved performance of subsystems on top of SLRU. This includes improvements for the LWLocks that changed the locking mode for the SLRU banks, so that each bank uses a separate LWLock. This results in increased scalability. Also, a new concurrency model for SLRU implementation that uses atomic reads and writes is proposed.

  • Added the cfs_log_verbose configuration parameter that controls the CFS log level of defragmentation messages. It allows reducing the number of CFS messages in the log file.

  • Added the cfs_gc_lock_file configuration parameter that sets the path to the lock file to be used to ensure running only one garbage collection worker at a time for several Postgres Pro servers.

  • Added the xml_parse_huge configuration parameter that allows allocating up to 1 GB of memory for processing XML data.

  • Fixed a bug resulting in error cache lookup failed for collation 128. Now, for the additional INCLUDE index columns, collation is ignored.

  • Fixed two planner issues. An expression duplication issue previously caused underestimation of node selectivity and cost in some cases, which could lead to a choice of a suboptimal plan. Another issue — the selectivity overestimation for an AppendOr node was caused by its subnode selectivity overestimation and led to the plan cost overestimation.

  • Fixed an issue of not streaming certain data to a subscriber by a logical replication after executing the ALTER PUBLICATION pub ADD TABLE tab command. The root cause of the issue was an insufficient interlocking between ALTER PUBLICATION and taking a snapshot.

  • Fixed an issue with the automatic aggressive vacuum being triggered too often. Now, an aggressive vacuum scan will only occur for any table with multixact-age strictly greater than autovacuum_multixact_freeze_max_age.

  • Added support for Astra Linux 1.8 and ended support for Astra Linux Orel 2.12, Astra Linux Smolensk 1.6.

  • Added support for Red OS Murom 8 and ended support for Red OS Murom 7.2.

  • Added support for Ubuntu 24.04.

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

    • Added support for the Zabbix 6.4 API: handling of deprecated parameters for authentication requests.

    • Removed caching of the pgsql.connections[max_connections] metric.

    • Updated the default log rotation rules.

    • Prepared for support of Python 3.12.

    • Changed metric names of the pg_locks plugin. Be aware that the changes could break custom user-defined triggers and processing functions that use the item.name parameter.

    • Fixed type mismatch for pgpro_stats and pg_wait_sampling.

    • Fixed privileges for the mamonsu role created by bootstrap.

  • Upgraded orafce to version 4.10.0.

  • Upgraded pg_probackup to version 2.8.0 Enterprise, which provides new features, optimizations and bug fixes. Notable changes are as follows:

    • Added a possibility to limit the rate of disk writes using the option --write-rate-limit=bitrate (Mbps, Gbps).

    • Decreased the memory consumption when restoring long sequences of increments twice on average.

    • Added checksum validation for CFS files by checkdb.

    • Added a possibility to validate only a WAL archive.

    • Extended the use of the --dry-run option for all pg_probackup commands.

    • Made creation of a temporary slot during backups in the STREAM mode the default behavior unless it is specified otherwise.

    • Changed the default compression algorithm to zstd. If zstd is not supported by the system, lz4 has the next priority. The --compress option now sets the default values for --compress-level and --compress-algorithm.

    • Added a possibility to specify several hosts to connect to an S3 storage.

    • Implemented a new locking technique, which enables using the locks with S3 and NFS protocols.

  • Added the pgv_exists_elem function to pg_variables that checks whether an element with a key exists in a general collection.

  • Upgraded pgpro_stats to version 1.7.1, which provides optimizations and bug fixes. Notable changes are as follows:

    • Added saving non-normalized plans to pgpro_stats for queries where previously no plans were saved.

    • Fixed an issue that hindered the monitoring when the pgpro_stats_statements view contained quite a few rows with the same values of plan and queryid, but different values of planid. The issue was caused by an error in parsing the plan tree containing a T_Memoise node.

  • Fixed an error ERROR: query failed: ERROR: tablespace "XXXX" does not exist that could occur when the pg_repack command was trying to reorganize tables in a tablespace whose name started with a digit. The root cause of the issue was that pg_repack expected extra quotes.

  • Added the --save-fullpage option to pg_waldump. It allows saving full-page images included in WAL records into a given target directory.

E.5.2. Migration to Version 14.12.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.

Starting from Postgres Pro Enterprise 14.10.1, the privileges of CREATEROLE are restricted, and modification of other roles requires the role requesting the change to have the ADMIN OPTION permission.

It is strongly recommended to avoid migrating a cluster with 32-bit transaction IDs to Postgres Pro Enterprise versions below 14.9.2, if there are multitransactions in your database, as it may cause data corruption.

When upgrading to Postgres Pro Enterprise versions starting with 14.8.1, make sure to upgrade pg_probackup Enterprise to version 2.6.4 or higher since lower versions are incompatible with these Postgres Pro Enterprise versions.

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 14.