Crafty: Efficient, HTM-Compatible Persistent Transactions

Introduction

NVM拥有非易失性和字节访问的特点,在大数据分析和数据库应用前景广阔(2020的文章)。有效使用NV M的首先挑战就是崩溃一致性的问题,持久性内存的更新是原子性事务,在程序崩溃时,这些更新要么全部 提交,要么不提交,确保重要的数据结构始终处于一致的状态。

先前的关于PM的工作,主要有两个缺点。首先是性能问题,无论是undo logging、redo logging又或 者是Cow,都面临着写性能低下、扩展性差、需要维护shadow memory。其次是和硬件事务内存不兼容, 为了确保正确的恢复,日志条目必须在事务提交之前被持久化,然而事务内存的性质决定了执行中的事务不能执 行持久化操作。

Crafty提出了一种新的非破坏性的undo logging机制,在写持久操作之前利用HTM控制持久化undo log。

Background