E.1. Postgres Pro Shardman 17.5.1 #
Release date: 2025-07-02
This is the first Postgres Pro Shardman release, it is based on Postgres Pro Enterprise 17.5.1 and Shardman 14.18.2 and provides new features and optimizations. Major changes are as follows:
E.1.1. Core and Extensions #
Implemented the
LOCK TABLE
support for global and sharded tables.Renamed the
is_reply
field of theshardman.silk_routing
view tois_outgoing
. The field value istrue
if the route was produced by the outgoing network connection,false
for incoming network connections.Enhanced Silk performance for higher shardman.silk_unassigned_job_queue_size values.
Updated the default values for logging configuration parameters for all new Postgres Pro Shardman installations:
logging_collector
:on
log_directory
:{{dataDir}}
log_filename
:postgres-{{cluster}}-{{shard}}-{{host}}-{{keeperID}}.log
Deleted the
csn_max_commit_shift
andcsn_max_snapshot_shift
configuration parameters. Added the csn_max_shift and csn_max_shift_error configuration parameters to work with CSN snapshots for the distributed queries and imported snapshots.Added the background freezer feature that vacuums modified and non-locked data pages of permanent tables stored in RAM. Background freezer is managed using new specific configuration parameters.
Changed lock logic to reduce CPU consumption significantly in case of startup recovery on physical replicas used as a source for logical replication with many downstreams. Walsenders no longer slow down WAL application as a more efficient synchronization primitive has replaced the previously used spinlock.
Added the new planner_upper_limit_estimation configuration parameter that enables the query planner to overestimate the expected number of rows in statements that contain a comparison to an unknown constant.
Added a possibility for the autovacuum daemon to process indexes of a table in a parallel mode. The parallel_autovacuum_workers storage parameter of a table controls whether it should be processed in parallel and defines the number of additional parallel autovacuum workers that can be launched for table processing. The number of autovacuum workers per cluster that can be used for parallel table processing is limited by the autovacuum_max_workers configuration parameter. Parallel autovacuum is currently in an experimental phase and is intended for testing purposes only. Do not deploy it in production environments.
Added the enable_any_to_lateral_transformation configuration parameter that allows enabling or disabling transformation of
ANY
subqueries intoLATERAL
joins.Implemented performance optimization when working with table metadata, which allows obtaining information about attributes using the system cache instead of direct reading from the system catalog.
Introduced the following changes to the implementation of crash_info:
Added handling of
SIGILL
signals tocrash_info
processing.Added details, like process start time and query text at planning, to
crash_info
output files.
Restricted superuser actions with temporary relations of other sessions. Superusers can now only use the
DROP TABLE
command with such relations. If the skip_temp_rel_lock configuration parameter is set toon
, even dropping such relations is not allowed.Upgraded pg_proaudit to provide the following enhancements:
Added new object types:
CATALOG RELATION
andCATALOG FUNCTION
.Added new event fields: UUID, XID, and VXID. Now it is possible to identify an event by its UUID and transaction IDs (if applicable).
The behavior of the
pg_proaudit.log_catalog_access
configuration parameter was corrected to reflect the new logic of logging for system catalog objects.Changed the logic of handling disconnection events. Now these events are associated with the corresponding authentication events, so the disconnection events will be logged even in the case when the rule is removed after authentication, but before disconnect.
Upgraded pgpro_pwr to version 4.9, which mainly provides optimizations. Notable changes are as follows:
Added support for pgpro_stats 1.9-sdm4.
Added a possibility to define the mode of collecting relation sizes globally through the
pgpro_pwr.relsize_collect_mode
extension parameter or for a server through theset_server_size_sampling
function parameter.Enabled fine-tuning the server statistics collection by calling the
set_server_setting
function. It allows you to define which statistics should be collected.Added a preview of storage parameters for tables and indexes in the “Schema object statistics” report section.
Upgraded pgpro_stats to version 1.9-sdm4, which provides the following improvements:
Enhanced session tracing to provide more information. Specifically, the new
time_info
filter attribute controls inclusion of additional information in the session-tracing output, and thepgpro_stats.trace_query_text_size
configuration parameter can limit the size of the query in the session-tracing output.Aligned the names of the
explain_*
filter attributes of the session tracer with the names of session-tracing configuration parameters.Changed the format of the statistics dump file and the corresponding save/load routines.
Implemented turning off the session tracer functionality when no session-tracing filters are specified.
Prohibited inclusion of both pgpro_stats and pg_stat_statements in the list of
shared_preload_libraries
. If both are included, the database server will not start.
Deprecated the experimental vops extension.
E.1.2. Management Utilities #
Changed the default values for the
-t
(--transactions
) and-T
(--time
) flags of theshardmanctl bench run
command to 10 and 0, respectively.Optimized promotion of a standby server to primary.
Added a limitation that
pg_hba.conf
cannot be modified ifcertVersion
is set totrue
.Added the --reinit-before-restore option that allows reinitializing the cluster with the same topology before restore.
Optimized cluster polling timeouts.
Added the
{rgid}
support for the--tablespace-mapping
of the shardmanctl probackup restore command.Added the feature to validate a backup on a compatible cluster.
Optimized the search for the primary node to avoid cluster hanging.
Added
boot_uuid
to shardmand.Added the feature to modify the
max_wal_senders
parameter by updating theadditionalWalSenders
configuration parameter with theshardmanctl config update
command.Added the shardmanctl --log-format command to specify the log output format.
Updated the shardmanctl cluster stop and shardmanctl restart commands with the --message option to show the reason why a cluster was stopped or restarted.
Added the
CertVersion
field to thesdmspec.json
configuration file.Updated the syncPointMonitorEnabled configuration parameter to save the syncpoint history if set to
true
, with size of this history defined bysyncPointMonitorLimit
.Updated the
keeper
error messages that are now cleaned after a successful operation that modifies the configuration.Added the shardmanctl schema verify command that verifies consistency of the information about partitions, extensions, tables, roles, schemas, and sequences.
Added an option to use probackup as backup method for BiHA.
Added a feature that cluster software does not fail even if writing to
pg_hba.conf
is forbidden.