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

文档序号:9579122阅读:来源:国知局
并禁止处于未提交状态的数据被替换;或者,若需要对事务的第一版本数据或者第二版本数据的地址空间进行回收,以事务为最小粒度进行地址空间回收。
[0046]从以上技术方案可以看出,本发明实施例具有以下优点:事务处理中的数据新版本记录于非易失性缓存,而无需同步刷写至非易失性存储器,可以减轻同步刷写的性能开销;在写入数据新版本时首先记录于非易失性缓存中,而无需记录到非易失性存储器中,通过这种方法避免了数据新版本在非易失性存储器中的两次写;利用非易失性缓存的非易失性和字节寻址特性降低事务处理的开销实现数据一致性。
【附图说明】
[0047]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0048]图1为本发明实施例方法流程示意图;
[0049]图2为本发明实施例混合存储设备结构示意图;
[0050]图3为本发明实施例的混合存储设备的功能模块示意图;
[0051]图4为本发明实施例系统正常运行过程中的事务处理流程示意图;
[0052]图5为本发明实施例的事务管理示意图;
[0053]图6为本发明实施例的事务状态转换示意图;
[0054]图7为本发明实施例在故障发生后的恢复流程示意图;
[0055]图8为本发明实施例的事务恢复装置结构示意图;
[0056]图9为本发明实施例的事务恢复装置结构示意图;
[0057]图10为本发明实施例的事务恢复装置结构示意图;
[0058]图11为本发明实施例的事务恢复装置结构示意图;
[0059]图12为本发明实施例的事务恢复装置结构示意图;
[0060]图13为本发明实施例的存储设备结构示意图;
[0061]图14为本发明实施例的服务器结构示意图。
【具体实施方式】
[0062]为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0063]本发明实施例提供了一种存储设备的事务恢复方法,如图1所示,包括:
[0064]101:在执行事务处理过程中,将上述事务的第二版本数据存储到存储设备的非易失性缓存;若存在上述事务的第一版本数据,则上述第一版本数据存储在上述存储设备的非易失性缓存或者上述存储设备的非易失性存储器;上述第二版本数据为本次执行事务处理过程中产生的数据;上述第一版本数据为本次之前执行上述事务已提交的数据;
[0065]102:在将上述事务的第二版本数据存储到存储设备的非易失性缓存过程中,保持上述第一版本数据;
[0066]在本发明实施例中,第二版本数据是本次执行事务处理产生的数据,属于新数据版本,在事务处理提交之前新数据版本并不完整,其正确性无法保证,因此需要保持第一版本数据不被删除,具体的操作方式可以如下:可选地,上述保持上述第一版本数据包括:禁止回收上述第一版本数据对应的地址空间;若上述第一版本数据在非易失性缓存,则设置上述第一版本数据对应的地址空间有效;若上述第一版本数据在非易失性存储器,则禁止缓存替换算法选中上述第一版本数据对应的地址空间。
[0067]在本发明实施例中,可以通过映射表的方式来灵活控制软件可见的事务的数据的版本,具体如下:进一步地,上述方法还包括:在第二版本数据递交之后,并且在上述第一版本数据回收之前,将上述第二版本数据作为第一版本数据,并更新第一版本数据的逻辑地址与物理地址之间的映射关系;上述逻辑地址为软件可见的地址。
[0068]在本发明实施例中,通过事务的处理状态进行软件可见事务的数据版本控制、地址空间的回收等操作之前需要对事务的处理状态进行记录,以方便后续的控制流程。进一步地,在将上述事务的第二版本数据存储到存储设备的非易失性缓存过程中,上述方法还包括:记录各事务对应的数据的处理状态,上述处理状态包括:空闲、活跃、已提交、中止以及已更新映射。
[0069]103:若需要对上述事务进行恢复,则获取上述第一版本数据。
[0070]本发明实施例,事务处理中的数据新版本记录于非易失性缓存,而无需同步刷写至非易失性存储器,可以减轻同步刷写的性能开销;在写入数据新版本时首先记录于非易失性缓存中,而无需记录到非易失性存储器中,通过这种方法避免了数据新版本在非易失性存储器中的两次写;利用非易失性缓存的非易失性和字节寻址特性降低事务处理的开销实现数据一致性。
[0071]在发生故障等情况下,本发明实施例需要对事务的数据进行恢复,本发明实施例还给出了基于映射表的恢复方式,具体如下:可选地,上述若需要对上述事务进行恢复,则获取上述第一版本数据包括:若需要对上述事务进行恢复,则获取非易失性缓存中上述事务的处理状态;若上述事务的处理状态为已提交并且未更新映射,则将上述第二版本数据作为第一版本数据,并更新第一版本数据的逻辑地址与物理地址之间的映射关系。
[0072]以上方案仅需要更新映射表,就可以灵活控制软件可见的数据,不需要重复写入数据,减少同步刷入次数,同时可以降低事务元数据(记录事务的状态和数据页面的数据信息)管理的开销。
[0073]本发明实施例还提供了基于前述实施例记录事务的处理状态,进行存储资源回收的方案,具体如下:进一步地,上述方法还包括:若上述事务的处理状态为活跃或者中止,则回收上述事务对应的第二版本数据对应的地址空间。
[0074]在本发明实施例中,一个事务在处理过程中可能会产生很多数据,并且存放在不同的页面中,本发明实施例提供了如何确定存放在不同页面中的数据属于一个事务的可选实现方案,具体如下:进一步地,上述方法,还包括:通过链表记录存储在非易失性缓存或者非易失性存储器的各页面中的数据与事务之间的所属关系。
[0075]在本发明实施例中,非易失性存储器的空间是有限的,有可能存在非易失性存储器的存储空间不足的问题,本发明实施例提供了可选方案如下:进一步地,上述方法,还包括:若上述非易失性缓存的剩余存储空间小于单个事务所需存储空间,在上述非易失性存储器中扩展用于缓存上述第二版本数据的缓存空间。
[0076]可选地,在本发明实施例中,对事务的数据的管理优选地以事务为最小粒度,以确保数据一致性更为高效准确的进行,具体如下:若需要对非易失性缓存进行缓存替换,则以事务为最小粒度执行缓存替换算法,并禁止处于未提交状态的数据被替换;或者,若需要对事务的第一版本数据或者第二版本数据的地址空间进行回收,以事务为最小粒度进行地址空间回收。
[0077]以下实施例,将结合结构图对本发明实施例进行更详细的说明。如图2所示,本发明实施例中的存储设备是混合存储设备,包括:非易失性缓存和非易失性存储器两部分。非易失性缓存是缓存的一种,非易失性存储是主要的存储设备,均采用非易失性存储介质,非易失性存储介质可以保证设备掉电后数据不丢失。由于非易失性存储器的访问速度慢,存储设备内部非易失性缓存用于数据写缓冲或读缓存,用于匹配外部读写与非易失性存储器的访问速度。
[0078]图2示例了本发明实施例所采用的混合存储设备。该混合存储设备使用字节寻址的非易失性存储介质作为存储设备缓存,与原有非易失性存储器构成两级存储层。在该混合存储设备中,非易失性缓存的介质,既包括新型字节寻址的非易失性存储器件,也包括利用后备电源的易失性存储器件。新型字节寻址的非易失性存储器件包括但不局限于相变存储器(Phase Change Memory, PCM)、自旋矩存储器(Spin-Transfer Torque Random-AccessMemory, STT-RAM)、阻变存储器(Resistive Random-Access Memory, RRAM)。利用后备电源的非易失性存储器件包括但不局限于采用不间断电源(UPS)或电容提供掉电保护的DRAM或SRAM。非易失性存储器的介质,既可以是新型非易失性存储器件,包括闪存和新型字节寻址的非易失性存储器件,也可以是磁介质存储,如磁盘。
[0079]图3示例了混合存储设备中实现事务恢复方案的功能模块,可以一并参考图2所示的存储器结构。在混合存储中的用于支持事务处理的功能模块包括:事务扩展编程接口、数据页面缓存模块以及事务元数据的管理模块,FTL(Flash Translat1n Layer,闪存转换层)映射表。
[0080]另外,在软件层有应用程序、数据库管理系统以及文件系统对本发明实施例方案进行支撑。在非易失性缓存一层还可以包含:空闲空间管理、垃圾回收、磨损均衡等配套功能。非易失性存储器中主要用户存储数据。
[0081 ] 事务扩展编程接口相比于传统存储设备的READ (读)、WRITE (写)接口增加了事务处理编程接口 =BEGIN(开始)、COMMIT (提交)和ABORT (中止)。其中,BEGIN编程接口用于软件系统向存储设备请求一个新的事务编号(Transact1nal Identifier, TxID),存储设备返回一个可用的事务编号;其后,软件系统在每次数据访问操作中加入该事务编号用于标记访问请求所属事务。COMMIT编程接口用于软件系统通知存储设备提交该事务,存储设备完成事务提交并返回执行状态。ABORT编程接口用于软件系统通知存储设备中止该事务,存储设备处理事务中止并返回执行状态。
[0082]数据页面缓存模块的主要功能是:管理数据的新旧版本的存储。数据页面缓存模块的三种功能具体如下:
[0083](I)、在非易失性缓存(本发明实施例中可以简称为缓存)中分配页面并写入数据新版本;
[0084](2)、保护上一提交版本(旧版本,旧版本可能有很多)不受破坏:若上一提交版本在缓存的页面中,则标记该页面不可覆盖写;若上一提交版本在非易失性存储器中,则修改缓存替换算法,标记
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1