一种存储设备的事务恢复方法,及装置的制造方法

文档序号:9579122阅读:386来源:国知局
一种存储设备的事务恢复方法,及装置的制造方法
【技术领域】
[0001]本发明涉及存储技术领域,特别涉及一种存储设备的事务恢复方法,及装置。
【背景技术】
[0002]存储数据一致性要求存储系统在意外故障发生后能够恢复到一致性状态(所有数据都具有一致的状态),从而实现后续存储访问请求的处理。事务处理是常见的保证存储系统的数据一致性的方式。在事务处理中,同一操作中不同的数据访问请求构成一个事务。同一事务中的数据访问要求提供原子性(atomicity)与持久性(durability)。原子性要求同一数据中的数据访问请求全部完成或者全部失败。持久性要求同一数据中的数据更新在系统意外掉电后不丢失。
[0003]传统的写前日志(Write-AheadLogging, WAL)和影子页(Shadow Paging)方法在软件中实现。写前日志方法首先将数据新版本写入日志区域,等待日志持久化之后写入事务提交记录,直至事务提交记录持久化之后将数据新版本复制到原来位置。影子页方法为数据新版本异地分配存储空间并写入,等待数据新版本持久化之后更新指针索引信息以指向数据新版本,直至指针索引持久化之后方可回收数据旧版本的存储空间。这些方法要求软件系统实现持久化,即频繁使用同步刷写操作将数据更新刷写到非易失性存储器中。由于存储设备中通常使用易失性存储器件,如DRAM(Dynamic Random Access Memory,动态随机存取存储器)或SRAM (Static Random Access Memory,静态随机存取存储器),作为缓存,同步刷写要求数据从缓存替换到持久性介质中,因而软件控制的同步刷写操作代价较大。此外,写前日志要求数据新版本写入两次,即日志写和原地写,重复数据写入也影响存储系统的性能。
[0004]事务提交是指事务处理完毕后生成了正确的数据的这种状态。事务提交中止是指事务在处理过程中发生中止的情况,由于事务处理过程中已经产生了一部分数据,事务处理的中止会导致事务处理产生的数据并不完整,因此也不正确。因此,事务提交状态下的数据满足存储数据一致性的要求,而是他情况,如事务中止状态下的数据不满足存储数据一致性的要求。
[0005]新型非易失性存储器件(Non-Volatile Memory, NVM)的发展使得存储设备内部提供事务处理的方式更为高效。其中,闪存(Flash Memory)的存储单元需要擦除后才能写入,因此闪存采用异地更新的方式以避免擦除操作带来的高延迟。该异地更新的特性同时保留了数据的新旧两个版本,因此使得设备内部提供事务处理代价降低。同时,新型字节寻址的非易失性存储器件,如 STT-RAM(Spin-Transfer Torque Random Access Memory,自旋转移力矩随机存储器)、PCM(Phase Change Memory,相变存储器)、RRAM(Resistive RandomAccess Memory,阻变式存储器)等,也成为设备内部缓存的替代品。由于这些器件能够持久保存数据,因此可以降低数据丢失的概率。尽管非易失性缓存提供了数据持久化,但并不能保证数据的一致性。

【发明内容】

[0006]本发明实施例提供了一种存储设备的事务恢复方法,及装置,用于保证数据的一致性。
[0007]本发明实施例一方面提供了一种存储设备的事务恢复方法,包括:
[0008]在执行事务处理过程中,将所述事务的第二版本数据存储到存储设备的非易失性缓存;若存在所述事务的第一版本数据,则所述第一版本数据存储在所述存储设备的非易失性缓存或者所述存储设备的非易失性存储器;所述第二版本数据为本次执行事务处理过程中产生的数据;所述第一版本数据为本次之前执行所述事务已提交的数据;
[0009]在将所述事务的第二版本数据存储到存储设备的非易失性缓存过程中,保持所述第一版本数据;
[0010]若需要对所述事务进行恢复,则获取所述第一版本数据。
[0011]结合一方面的实现方式,在第一种可能的实现方式中,所述保持所述第一版本数据包括:
[0012]禁止回收所述第一版本数据对应的地址空间;
[0013]若所述第一版本数据在非易失性缓存,则设置所述第一版本数据对应的地址空间有效;若所述第一版本数据在非易失性存储器,则禁止缓存替换算法选中所述第一版本数据对应的地址空间。
[0014]结合一方面的实现方式,在第二种可能的实现方式中,所述方法还包括:
[0015]在第二版本数据递交之后,并且在所述第一版本数据回收之前,将所述第二版本数据作为第一版本数据,并更新第一版本数据的逻辑地址与物理地址之间的映射关系;所述逻辑地址为软件可见的地址。
[0016]结合一方面的第二种可能的实现方式,在第三种可能的实现方式中,在将所述事务的第二版本数据存储到存储设备的非易失性缓存过程中,所述方法还包括:
[0017]记录各事务对应的数据的处理状态,所述处理状态包括:空闲、活跃、已提交、中止以及已更新映射。
[0018]结合一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述若需要对所述事务进行恢复,则获取所述第一版本数据包括:
[0019]若需要对所述事务进行恢复,则获取非易失性缓存中所述事务的处理状态;若所述事务的处理状态为已提交并且未更新映射,则将所述第二版本数据作为第一版本数据,并更新第一版本数据的逻辑地址与物理地址之间的映射关系。
[0020]结合一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述方法,还包括:
[0021]若所述事务的处理状态为活跃或者中止,则回收所述事务对应的第二版本数据对应的地址空间。
[0022]结合一方面、一方面的第一种、第二种、第三种、第四种或者第五种可能的实现方式,在第六种可能的实现方式中,所述方法还包括:
[0023]通过链表记录存储在非易失性缓存或者非易失性存储器的各页面中的数据与事务之间的所属关系。
[0024]结合一方面、一方面的第一种、第二种、第三种、第四种或者第五种可能的实现方式,在第七种可能的实现方式中,所述方法还包括:
[0025]若所述非易失性缓存的剩余存储空间小于单个事务所需存储空间,在所述非易失性存储器中扩展用于缓存所述第二版本数据的缓存空间。
[0026]结合一方面、一方面的第一种、第二种、第三种、第四种或者第五种可能的实现方式,在第八种可能的实现方式中,
[0027]若需要对非易失性缓存进行缓存替换,则以事务为最小粒度执行缓存替换算法,并禁止处于未提交状态的数据被替换;或者,若需要对事务的第一版本数据或者第二版本数据的地址空间进行回收,以事务为最小粒度进行地址空间回收。
[0028]本发明实施例二方面提供了一种存储设备的事务恢复装置,包括:
[0029]数据存储单元,用于在执行事务处理过程中,将所述事务的第二版本数据存储到存储设备的非易失性缓存;若存在所述事务的第一版本数据,则所述第一版本数据存储在所述存储设备的非易失性缓存或者所述存储设备的非易失性存储器;所述第二版本数据为本次执行事务处理过程中产生的数据;所述第一版本数据为本次之前执行所述事务已提交的数据;
[0030]存储控制单元,用于在将所述事务的第二版本数据存储到存储设备的非易失性缓存过程中,保持所述第一版本数据;
[0031]数据恢复单元,用于若需要对所述事务进行恢复,则获取所述第一版本数据。
[0032]结合二方面的实现方式,在第一种可能的实现方式中,所述存储控制单元,用于禁止回收所述第一版本数据对应的地址空间;
[0033]若所述第一版本数据在非易失性缓存,则设置所述第一版本数据对应的地址空间有效;若所述第一版本数据在非易失性存储器,则禁止缓存替换算法选中所述第一版本数据对应的地址空间。
[0034]结合二方面的实现方式,在第二种可能的实现方式中,所述装置还包括:
[0035]映射更新单元,用于在第二版本数据递交之后,并且在所述第一版本数据回收之前,将所述第二版本数据作为第一版本数据,并更新第一版本数据的逻辑地址与物理地址之间的映射关系;所述逻辑地址为软件可见的地址。
[0036]结合二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述装置还包括:
[0037]状态记录单元,用于在将所述事务的第二版本数据存储到存储设备的非易失性缓存过程中,记录各事务对应的数据的处理状态,所述处理状态包括:空闲、活跃、已提交、中止以及已更新映射。
[0038]结合二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述数据恢复单元,用于若需要对所述事务进行恢复,则获取非易失性缓存中所述事务的处理状态;若所述事务的处理状态为已提交并且未更新映射,则将所述第二版本数据作为第一版本数据,并更新第一版本数据的逻辑地址与物理地址之间的映射关系。
[0039]结合二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述装置还包括:
[0040]回收单元,用于若所述事务的处理状态为活跃或者中止,则回收所述事务对应的第二版本数据对应的地址空间。
[0041]结合二方面、二方面的第一种、第二种、第三种、第四种或者第五种可能的实现方式,在第六种可能的实现方式中,所述装置还包括:
[0042]数据事务记录单元,用于通过链表记录存储在非易失性缓存或者非易失性存储器的各页面中的数据与事务之间的所属关系。
[0043]结合二方面、二方面的第一种、第二种、第三种、第四种或者第五种可能的实现方式,在第七种可能的实现方式中,所述数据存储单元,还用于若所述非易失性缓存的剩余存储空间小于单个事务所需存储空间,在所述非易失性存储器中扩展用于缓存所述第二版本数据的缓存空间。
[0044]结合二方面、二方面的第一种、第二种、第三种、第四种或者第五种可能的实现方式,在第八种可能的实现方式中,
[0045]所述存储控制单元,还用于若需要对非易失性缓存进行缓存替换,则以事务为最小粒度执行缓存替换算法,
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1