如何保证数据文件和索引文件同步
项目中需要单独开发数据存储模块,目前像索引的内存结构,数据的内存结构,事务的控制和灾难恢复,缓存控制这些都已经有了大概眉目,但卡在了索引文件和数据文件怎么同步上这块:
如:当“数据”从内存同步到文件时,Block中的记录的偏移地址可能会发生变化,如果已经将“数据Block“同步到文件,但是没有将这些Block上的记录的偏移地址同步到索引文件,那么当重启动服务时,从索引文件中读取的偏移地址可能就会发生错误?请问这个要怎么避免或者是发生了以后怎么恢复?
能否通过undo,redo或者undo\redo日志文件或者其他办法来处理(除了重建索引)?