Supporting atomic durability of updates for persistent memories is typically achieved with Write-Ahead Logging (WAL). WAL flushes log entries to persistent memory before making the actual data persistent to ensure that a consistent state can be recovered if a crash occurs. Performing WAL in hardware is attractive because it makes most aspects of log management transparent to software, and it completes log persist operations (LPs) and data persist operations (DPs) in the background, overlapping them with the execution of other instructions. Prior hardware logging solutions commit atomic regions synchronously. Once the end of a region is reached, all outstanding persist operations required for the region to commit must be completed before instruction execution may proceed. For undo logging, LPs and DPs are both performed synchronously to ensure that the region commits synchronously. For redo logging, DPs can be performed asynchronously, but LPs are performed synchronously to ensure that the region commits synchronously. In both cases, waiting for synchronous persist operations (LP or DP) at the end of an atomic region causes atomic regions to incur high latency. To tackle this limitation, we propose ASAP, a hardware logging solution that allows atomic regions to commit asynchronously. That is, once the end of an atomic region is reached, instruction execution may proceed without waiting for outstanding persist operations to complete. As such, both LPs and DPs can be performed asynchronously. The challenge with allowing atomic regions to commit asynchronously is that it can lead to control and data dependence violations in the commit order of the atomic regions, leaving data in an unrecoverable state in case of a crash. To address this issue, ASAP tracks and enforces control and data dependencies between atomic regions in hardware to ensure that the regions commit in the proper order.
翻译:支持持续记忆更新的原子耐久性通常通过“ 写头登录” (WAL) 实现。 WAL 冲洗将条目记录到持续记忆中,然后才能使实际数据具有持久性,以确保发生崩溃时能够恢复一致状态。 在硬件中执行 WAL 具有吸引力,因为它使日志管理的大多数方面对软件具有透明度,它完成在背景中记录持续操作(LPs)和数据持续操作(DPs),与执行其他指令相重叠。 之前的硬件记录解决方案使原子区域同步运行。一旦一个区域的结束,该区域需要执行的所有未决操作都必须完成,然后才能着手执行指令。要同时进行撤销记录记录、 LPs 和 DP, 以确保该区域同步运行, 但LPs 进行同步运行, 以确保该区域同步运行。 在原子区域末端, 等待同步运行操作(LP 或 DP), 导致原子区域持续运行( ) 导致原子区域持续运行( LP) 持续操作( ) 的运行过程发生高度不固定 。</s>