内存映射文件中的数据是否保证按顺序刷新?

Ken*_*nky 5 paging recovery memory-mapped-files

我正在尝试实现一种文件存储机制,该机制在单个文件中保存大量可变大小的记录,并保证记录集始终可以恢复到一致状态,即使系统在硬件级别出现故障也是如此.

到目前为止,我已经提出了各种方案,按顺序编写数据.某些数据将附加到每条记录的末尾,以确认写入成功.但是,如果在刷新时数据不必按顺序写入磁盘,则可以在内容数据之前写入确认数据.

有两种明显的方法,但两者都是不可取的:

  1. 刷新内容,然后写下确认并刷新.添加额外的刷新可能会降低性能.
  2. 在确认中包含校验和(需要阅读内容以确认其有效).

我在Windows(32和64位)和.Net 4.0的内存映射文件实现上使用C#

rus*_*lik 1

这对于 C# 来说级别太低并且是特定于操作系统的。尝试使用 C 语言的 Windows API,并仔细阅读 API 规范。