如果我使用普通的IO API讀取和寫入單個文件,寫入將保證每個塊都是原子性的。也就是說,如果我的寫操作只修改一個塊,那麼操作系統會保證寫入整個塊,或者完全不寫。內存映射文件和單個塊的原子寫入
如何在內存映射文件上實現相同效果?內存映射文件只是字節數組,所以如果我修改字節數組,操作系統無法知道什麼時候我認爲寫入「完成」,所以它可能(即使這不太可能)換出內存就在我寫塊操作的中間,實際上我寫了半塊。
我需要某種「進入/離開關鍵部分」,或者在寫入文件時將文件頁面「釘」到內存中的某種方法。有這樣的事情存在嗎?如果是這樣,是否可以通過常見POSIX系統& Windows進行移植?
有多少應用程序正在與您的映射文件進行交互? – Justin 2010-10-25 17:01:52
只有一個進程,即數據庫服務器。 – 2010-10-26 08:23:27