我正在開發需要保持一定時間的數據牛逼存儲器(可配置)的應用程序和其他時間T2價值的數據在磁盤上的持久性存儲。這樣做的原因是,經常詢問的數據將被存儲在內存中,並被更快地檢索,而較舊的,不太常見的用戶數據將被存儲和檢索到磁盤上。寫入內存和磁盤同時
的問題是:我不能簡單地寫入到內存中,然後時間牛逼後內存中buffer to disk的全部內容複製爲如果應用程序崩潰,內存中存儲的最新的數據將會丟失。所以每次接收到新數據時,我都需要將它同時存儲在內存和磁盤上。
我的問題是,有沒有一種有效的方式來將內存中的緩衝區鏡像到磁盤的一部分?我正在尋找一種更有效的方式,而不是寫入內存,然後再寫入每個數據更新的磁盤。
的mmap()應該是你的朋友,我相信:http://en.wikipedia.org/wiki/Mmap這適用於POSIX系統(例如Linux和Mac)。如果你在Windows上,MapViewOfFile應該提供類似的功能:http://msdn.microsoft.com /en-us/library/aa366761.aspx –
@Nikos Chantziaras:如果我在amiga上怎麼辦? – megazord
您是否擔心應用程序崩潰(操作系統緩衝區仍然有效)或計算機崩潰? –