<!--
Les sources et discussions pour ce sujet sont :

* Change initdb to default to enabling checksums (Greg Sabino Mullane) § §

  - The new initdb option --no-data-checksums disables checksums.
  - https://postgr.es/c/983a588e0
  - https://www.postgresql.org/message-id/flat/CAKAnmmKwiMHik5AHmBEdf5vqzbOBbcwEPHo4-PioWeAbzwcTOQ@mail.gmail.com
  - https://postgr.es/c/04bec894a
  - https://www.postgresql.org/message-id/flat/CAKAnmmKwiMHik5AHmBEdf5vqzbOBbcwEPHo4-PioWeAbzwcTOQ@mail.gmail.com

* Add initdb option --no-sync-data-files to avoid syncing heap/index files (Nathan Bossart) §

  - initdb --no-sync is still available to avoid syncing any files.
  - https://postgr.es/c/cf131fa94
  - https://postgr.es/m/Zyvop-LxLXBLrZil%40nathan

-->

<div class="slide-content">

 * Activation des sommes de contrôle par défaut dans `initdb`
 * Nouvelle option `--no-sync-data-files`

</div>

<div class="notes">

**Activation des sommes de contrôle par défaut dans initdb** :

Les sommes de contrôle sont désormais activées par défaut lors de la création
d'une instance avec `initdb`. Elles peuvent être désactivées lors de la création
avec l'option `--no-data-checksums`, ou ensuite avec la commande `pg_checksums
--disable` sur une instance arrêtée.

Les arguments *contre* ce changement était principalement centrés sur l'impact
sur les performances que peut induire cette fonctionnalité (la valeur de -5% de
transactions par seconde a été annoncée). Cet impact n'est pas directement liée
au calcul des sommes de contrôle, mais à l'augmentation de la volumétrie de WAL
due à l'activation des `wal_log_hints` et des conséquences qui en découlent.

Le principal argument *pour* est la sécurité qu'apportent les sommes
de contrôle, en permettant d'éviter une corruption silencieuse.
De plus, l'impact n'est pas présent dans tous les cas.
Enfin, beaucoup de gens utilisent cette
fonctionnalité, il serait préférable de l'activer par défaut pour que les tests
des nouvelles fonctionnalités prennent en compte les sommes de contrôle.

**Nouvelle option `--no-sync-data-files`**

Par défaut, `initdb` écrit tous les fichiers des bases de données de manière
durable. L'option `--no-sync-data-files` évite de demander la synchronisation
individuelle des fichiers dans le répertoire `base` et les répertoires des
tablespaces utilisateurs. Cette option est destinée à être utilisée avec des
outils qui peuvent garantir que les fichiers sont synchronisés d'une autre
manière, ou plus tard, par exemple lors d'une migration avec `pg_upgrade`.
<!-- https://www.postgresql.org/message-id/Zyvop-LxLXBLrZil%40nathan -->

</div>
