Nouveautés de PostgreSQL 13

PGSession 13

Dalibo & Contributors

Les nouveautés de PostgreSQL 13

  • Administration
  • Réplication
  • Supervision
  • Performances
  • Régressions

Administration

  • Opération de maintenance
  • Sauvegarde
  • Partitionnement
  • Divers

Améliorations des opérations de maintenance

  • Parallélisation du nettoyage des index effectué par le VACUUM
    • Nouvelle clause PARALLEL <nombre de worker process>
    • Argument -P ou --parallel de vacuumdb
  • Parallélisation des ré-indexations avec reindexdb
    • Argument -j ou --jobs
  • Autovacuum déclenchés par les INSERT
    • autovacuum_vacuum_insert_threshold
    • autovacuum_vacuum_insert_scale_factor

Amélioration des sauvegardes / restaurations

  • pg_basebackup
    • Fichiers manifeste dans les sauvegardes (pg_verifybackup)
    • Progression et estimation de la taille de la sauvegarde (--no-estimate-size)
  • Génère une erreur quand la cible de la restauration ne peut pas être atteinte.

Améliorations du partitionnement

  • Déclencheur BEFORE sur les tables partitionnées

Divers

  • Déconnexions des utilisateurs à la suppression d’une base de données
    • DROP DATABASE WITH FORCE
    • dropdb --force
  • /!\ ignore_invalid_pages /!\

Réplication

  • Réplication en flux
  • Réplication logique

Réplication en flux

  • Réplication
    • Modification à chaud des paramètres de réplication
    • Volume maximale de WAL conservée par les slots (max_slot_wal_keep_size)
  • pg_rewind
    • Restauration des WAL depuis les archives (-c ou --restore-target-wal)
    • Configuration de la standby (-R ou --write-recovery-conf)
    • Redémarrage de l’instance automatique si besoin (--no-ensure-shutdown)

Réplication logique

  • Réplication logique et tables partitionnées
    • ajouter des tables partitionnées aux publications
    • nouveau paramètre publish_via_partition_root
  • Contrôle de la quantité de mémoire utilisée par la réplication logique avant d’écrire sur disque. (logical_decoding_work_mem)

Traces

  • Tracer le type de processus dans les journaux applicatifs de l’instance (échappement %b pour log_line_prefix)
  • Échantillonner les requêtes
    • log_min_duration_sample
    • log_statement_sample_rate
  • Contrôler la trace des paramètres des requêtes préparées
    • log_parameter_max_length
    • log_parameter_max_length_on_error

Statistiques

  • Temps de planification dans pg_stat_statements
    • pg_stat_statements.track_planning
  • Nouvelle vue pg_stat_progress_analyze
  • Nouvelle vue pg_stat_progress_basebackup
  • Nouvelle vue pg_shmem_allocations
  • Champ leader_pid dans la vue pg_stat_activity

Performances

  • Optimisation du stockage des BTree grâce à la déduplication
  • Tri incrémental
  • Débord sur disque pour Hash Aggregate et grouping sets et hash_mem_multiplier
  • Statistiques d’utilisation des WAL
  • Utilisation disque du planificateur dans EXPLAIN
  • Paramétrage du détail des statistiques étendues ALTER STATISTICS <nom> SET STATISTICS <statistic target>

Mise à jour et Régression

  • Mise à jour
    • export / import, pg_upgrade, réplication logique
    • reindexer en cas de pg_upgrade pour bénéficier des optimisation sur les BTree.
  • Régressions
    • wal_keep_segments devient wal_keep_size
    • effective_io_concurrency
    • Performances des hash aggreagate & hash_mem_multiplier

Questions ?

#pgsession13