• [^] # Re: fichier texte

    Posté par (site web personnel) . En réponse au journal Les machines a voter, définitivement pas sur.. Évalué à 3.

    > Et si y'a une erreur disque pendant que tu mets à jour ton
    > compteur ?

    La même chose que s'il y a une erreur de disque pendant que ton SGBD transactionnel bosse ?

    - c'est une erreur non détectée par le logiciel, ça merdera sur le fichier texte mais aussi sur ton SGBD

    - c'est une erreur renvoyée par l'OS mais le système continue de tourner : le SGBD comme la fonction d'écriture vont te répondre que l'écriture n'a pas eu lieu, à toi d'en faire ce que tu veux

    - le système crashe, au redémarrage tu peux récupérer le journal d'écriture (celui du FS dans le cas du fichier texte, et en plus celui du SGBD dans ton cas), et là dans les deux cas l'écriture du journal peut être incomplète et on perd le dernier vote, soit elle est complète et on peut la récupérer.

    Reste le cas où on écrit une demi ligne dans le fichier texte avant le crash, mais il existe des solutions très simples pour palier le problème (genre un fichier par candidat, à chaque vote on écrit un octet dedans : aucun risque de demi écriture ou d'écriture incohérente, et cette dernière solution est vachement plus sécurisée pour ce cas d'utilisation que tout ce que tu pourras faire avec ton moteur transactionnel).


    Bref, dans les deux cas on peut perdre le dernier vote, dans les deux cas on ne peut perdre que le dernier vote (sous réserve de faire un flush entre chaque écriture).