同时写入和读取同一文件(磁盘异步?)

问题描述:

我们正在创建一个Web服务,在这里我们将文件写入磁盘。有时这些文件将在写入的同时被读取。同时写入和读取同一文件(磁盘异步?)

如果我们这样做 - 从同一个文件写入和读取 - 我们有时会得到长度相同的文件,但其中的一些数据不相同。所以对于一个350MB的文件,我们可能会得到20-40个不同的字节。

如果我们有3-4个文件正在同时写入和读取,则会出现此问题。这个问题可能是因为不能保证在对磁盘“写入”之后数据是实际写入的,即磁盘是异步的。

此外,我们正在测试的计算机只是一个标准的MacBook Pro,所以没有任何花哨的磁盘。

这个错误可能在其他地方,但我们只是想问这个问题,看看有没有人知道关于这个写作+阅读的东西。

所有现代操作系统都支持并发读取和写入文件(显然,给定一个作者)。所以这不是一个操作系统级别的错误。但请确保您没有多个线程/进程试图将数据追加到文件。

检查您的应用程序代码。检查你正在使用的缓冲区。确保你的应用程序是同步的,读者和作者之间没有竞争条件。

+0

谢谢。我们认为这是事实,但我们找不到错误,所以我们认为我们会问。 – freeall 2010-08-30 16:31:45

+0

发布一些相关的代码,也许我们可以帮助放大这个问题... – 2010-08-30 18:08:17

+0

我们认为我们发现了这个错误。它在node.js中。点击此处查看更多信息,http://pastebin.com/2LReijQC。 – freeall 2010-08-31 14:10:40