2010-08-30 114 views
0

我們正在創建一個Web服務,在這裏我們將文件寫入磁盤。有時這些文件將在寫入的同時被讀取。同時寫入和讀取同一文件(磁盤異步?)

如果我們這樣做 - 從同一個文件寫入和讀取 - 我們有時會得到長度相同的文件,但其中的一些數據不相同。所以對於一個350MB的文件,我們可能會得到20-40個不同的字節。

如果我們有3-4個文件正在同時寫入和讀取,則會出現此問題。這個問題可能是因爲不能保證在對磁盤「寫入」之後數據是實際寫入的,即磁盤是異步的。

此外,我們正在測試的計算機只是一個標準的MacBook Pro,所以沒有任何花哨的磁盤。

這個錯誤可能在其他地方,但我們只是想問這個問題,看看有沒有人知道關於這個寫作+閱讀的東西。

回答

0

所有現代操作系統都支持併發讀取和寫入文件(顯然,給定一個作者)。所以這不是一個操作系統級別的錯誤。但請確保您沒有多個線程/進程試圖將數據追加到文件。

檢查您的應用程序代碼。檢查你正在使用的緩衝區。確保你的應用程序是同步的,讀者和作者之間沒有競爭條件。

+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