Non, pas du tout... fsync est une primitive d'�criture des fichiers comme on en trouve dans la plupart des OS, et elle convient � la majorit� des fichiers qui doivent �tre �crit sur disque. Effectivement elle fait du cache. Mais le probl�me des bases de donn�es relationnelles est qu'il existe syst�matiquement au moins deux fichiers qui doivent imp�rativement �tre synchronis�s : les fichiers de donn�es d'un c�t�, le journal de transaction de l'autre. Les donn�es re�oivent une marque dite LSN (Lof Segment Number) qui est un point d'entr�e dans le journal de transaction, pour savoir ou ils en sont des donn�es r�ellement �crites. Le journal de transaction �tant compos� d'entr�e s�quentielle identifi�es par ce fameux LSN. Une m�me transaction �tant d�coup�es en diff�rents LSN au fur et � mesure de son avancement et les transactions �tant entrelac�es du fait de la concurrence.
Ce qui peut arriver de pire dans un SGBDR est la d�synchronisation de ces LSN conduisant � la corruption des donn�es. Et c'est exactement ce qui se passe avec le fsync de Linux. Dans ce cas la base de donn�e contient des donn�es sont corrompues car il est impossible de savoir ce qui a �t� r�ellement mis � jour et ce qui ne l'a pas �t�...
Il ne s'agit donc pas d'un bug de Linux, qui a mon sens est un OS bien fait, mais d'une mauvaise utilisation de l'OS en confiant directement les �critures de PostGreSQL � Linux par d�faut. Tous les grand �diteurs de SGBD Relationnel (donc transactionnels) le savent ! Cela a m�me �t� not� dans les articles �crit par Stonebarker (le p�re de Ingres et de PostGreSQL) dans ce livre : "
The Ingres Papers: Anatomy of a Relational Database System" - Addison Weslay - 1985
Le fait pour PostGreSQL de l'avoir ignor� rel�ve que l'�quipe de d�veloppement actuelle n'est pas s�rieuse !
Quelques �l�ments � ce sujet :
https://postgresqlco.nf/doc/fr/param/fsync/
https://wiki.postgresql.org/wiki/Fsync_Errors
Apparemment ce bug vient enfin d'�tre corrig� 2 ans apr�s sa d�couverte et 22 ans apr�s sue des donn�es corrompues se soient propag�e dans les bases...
A +
Partager