我们正在开发程序,该程序适用于位于共享内存中的数据。程序要求延迟并处理大量数据。
如果程序失败,我们必须返回上一个工作状态FAST。
一种方法是从事务日志中读取和处理数据,事务日志包含从一天开始的事务。但考虑到事务日志的大小(数百千兆字节),这根本不是快速的。
我们现在正在寻找创建可写入磁盘的数据快照的方法,并在程序失败时快速读取。但是快照创建不能锁定程序执行,而且快照中的数据必须一致。
如果我们使用本地内存来保存数据而不是共享内存,那么解决方案将非常简单:
由于linux上的copy-on-write,只会更改已更改的数据,因此速度非常快。
但我们正在使用posix共享内存。
有没有办法以速度和一致性来做到这一点?
答案 0 :(得分:0)
如果你可以为memcpy()留出足够的CPU周期,你可以: