2010-08-30 8 views
0

Nous créons un service Web sur lequel nous écrivons des fichiers sur le disque. Parfois, ces fichiers seront lus en même temps qu'ils sont écrits. Si nous faisons cela - en écrivant et en lisant à partir du même fichier - nous nous retrouvons parfois avec des fichiers de même longueur, mais où certaines des données à l'intérieur ne sont pas les mêmes. Donc, avec un fichier de 350mb, nous obtenons peut-être 20-40 octets qui diffère.Ecriture et lecture à partir du même fichier, en même temps (disque asynchrone?)

Ce problème se produit principalement si nous avons 3-4 fichiers qui sont écrits et lus en même temps. Ce problème peut-être dû au fait qu'il n'y a aucune garantie qu'après une "écriture" sur un disque, les données sont réellement écrites, c'est-à-dire que le disque est asynchrone.

En outre, l'ordinateur sur lequel nous testons est un macbook pro standard, donc aucun disque de fantaisie.

Le bug était peut-être ailleurs, mais nous voulions simplement poser la question et voir si quelqu'un connaissait quelque chose à propos de cette écriture + lecture.

Répondre

0

Tous les systèmes d'exploitation modernes prennent en charge la lecture et l'écriture simultanées dans les fichiers (évidemment, compte tenu d'un seul rédacteur). Donc, ce n'est pas un bug de niveau OS. Mais do assurez-vous que vous n'avez pas plusieurs threads/processus essayant d'ajouter des données au fichier.

Vérifiez le code de votre application. Vérifiez les tampons que vous utilisez. Assurez-vous que votre application est synchronisée et qu'il n'y a pas de conditions de concurrence entre les lecteurs et les rédacteurs.

+0

Merci. Nous avons pensé que c'était le cas, mais nous ne pouvons pas trouver le bug, alors nous avons pensé que nous demanderions. – freeall

+0

Post un code pertinent et peut-être nous pouvons vous aider à zoomer sur le problème ... –

+0

Nous pensons que nous avons trouvé le bug. C'était dans node.js. Voir plus à ce sujet ici, http://pastebin.com/2LReijQC. – freeall

Questions connexes