CN105335220A - 一种存储设备的事务恢复方法,及装置 - Google Patents
一种存储设备的事务恢复方法,及装置 Download PDFInfo
- Publication number
- CN105335220A CN105335220A CN201410357653.5A CN201410357653A CN105335220A CN 105335220 A CN105335220 A CN 105335220A CN 201410357653 A CN201410357653 A CN 201410357653A CN 105335220 A CN105335220 A CN 105335220A
- Authority
- CN
- China
- Prior art keywords
- data
- affairs
- version
- version data
- edition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000011084 recovery Methods 0.000 title claims abstract description 45
- 238000003860 storage Methods 0.000 title claims abstract description 44
- 230000015654 memory Effects 0.000 claims abstract description 143
- 230000008569 process Effects 0.000 claims abstract description 42
- 238000013507 mapping Methods 0.000 claims description 78
- 239000002245 particle Substances 0.000 claims description 17
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 claims description 16
- 238000012384 transportation and delivery Methods 0.000 claims description 7
- 238000013500 data storage Methods 0.000 claims description 6
- 210000000352 storage cell Anatomy 0.000 claims description 6
- 210000004027 cell Anatomy 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 10
- 230000001360 synchronised effect Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 12
- 239000000976 ink Substances 0.000 description 12
- 230000002688 persistence Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 239000004065 semiconductor Substances 0.000 description 5
- 230000007704 transition Effects 0.000 description 4
- 238000005299 abrasion Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000004140 cleaning Methods 0.000 description 3
- 238000013506 data mapping Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000002407 reforming Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明实施例公开了一种存储设备的事务恢复方法,及装置,其中方法的实现包括:在执行事务处理过程中,将事务的第二版本数据存储到存储设备的非易失性缓存;若存在事务的第一版本数据,则第一版本数据存储在存储设备的非易失性缓存或者存储设备的非易失性存储器;第二版本数据为本次执行事务处理过程中产生的数据;第一版本数据为本次之前执行事务已提交的数据;在将事务的第二版本数据存储到存储设备的非易失性缓存过程中,保持第一版本数据;若需要对事务进行恢复,则获取第一版本数据。可以减轻同步刷写的性能开销;可以避免数据新版本在非易失性存储器中的两次写;并且降低事务处理的开销实现数据一致性。
Description
技术领域
本发明涉及存储技术领域,特别涉及一种存储设备的事务恢复方法,及装置。
背景技术
存储数据一致性要求存储系统在意外故障发生后能够恢复到一致性状态(所有数据都具有一致的状态),从而实现后续存储访问请求的处理。事务处理是常见的保证存储系统的数据一致性的方式。在事务处理中,同一操作中不同的数据访问请求构成一个事务。同一事务中的数据访问要求提供原子性(atomicity)与持久性(durability)。原子性要求同一数据中的数据访问请求全部完成或者全部失败。持久性要求同一数据中的数据更新在系统意外掉电后不丢失。
传统的写前日志(Write-AheadLogging,WAL)和影子页(ShadowPaging)方法在软件中实现。写前日志方法首先将数据新版本写入日志区域,等待日志持久化之后写入事务提交记录,直至事务提交记录持久化之后将数据新版本复制到原来位置。影子页方法为数据新版本异地分配存储空间并写入,等待数据新版本持久化之后更新指针索引信息以指向数据新版本,直至指针索引持久化之后方可回收数据旧版本的存储空间。这些方法要求软件系统实现持久化,即频繁使用同步刷写操作将数据更新刷写到非易失性存储器中。由于存储设备中通常使用易失性存储器件,如DRAM(DynamicRandomAccessMemory,动态随机存取存储器)或SRAM(StaticRandomAccessMemory,静态随机存取存储器),作为缓存,同步刷写要求数据从缓存替换到持久性介质中,因而软件控制的同步刷写操作代价较大。此外,写前日志要求数据新版本写入两次,即日志写和原地写,重复数据写入也影响存储系统的性能。
事务提交是指事务处理完毕后生成了正确的数据的这种状态。事务提交中止是指事务在处理过程中发生中止的情况,由于事务处理过程中已经产生了一部分数据,事务处理的中止会导致事务处理产生的数据并不完整,因此也不正确。因此,事务提交状态下的数据满足存储数据一致性的要求,而是他情况,如事务中止状态下的数据不满足存储数据一致性的要求。
新型非易失性存储器件(Non-VolatileMemory,NVM)的发展使得存储设备内部提供事务处理的方式更为高效。其中,闪存(FlashMemory)的存储单元需要擦除后才能写入,因此闪存采用异地更新的方式以避免擦除操作带来的高延迟。该异地更新的特性同时保留了数据的新旧两个版本,因此使得设备内部提供事务处理代价降低。同时,新型字节寻址的非易失性存储器件,如STT-RAM(Spin-TransferTorqueRandomAccessMemory,自旋转移力矩随机存储器)、PCM(PhaseChangeMemory,相变存储器)、RRAM(ResistiveRandomAccessMemory,阻变式存储器)等,也成为设备内部缓存的替代品。由于这些器件能够持久保存数据,因此可以降低数据丢失的概率。尽管非易失性缓存提供了数据持久化,但并不能保证数据的一致性。
发明内容
本发明实施例提供了一种存储设备的事务恢复方法,及装置,用于保证数据的一致性。
本发明实施例一方面提供了一种存储设备的事务恢复方法,包括:
在执行事务处理过程中,将所述事务的第二版本数据存储到存储设备的非易失性缓存;若存在所述事务的第一版本数据,则所述第一版本数据存储在所述存储设备的非易失性缓存或者所述存储设备的非易失性存储器;所述第二版本数据为本次执行事务处理过程中产生的数据;所述第一版本数据为本次之前执行所述事务已提交的数据;
在将所述事务的第二版本数据存储到存储设备的非易失性缓存过程中,保持所述第一版本数据;
若需要对所述事务进行恢复,则获取所述第一版本数据。
结合一方面的实现方式,在第一种可能的实现方式中,所述保持所述第一版本数据包括:
禁止回收所述第一版本数据对应的地址空间;
若所述第一版本数据在非易失性缓存,则设置所述第一版本数据对应的地址空间有效;若所述第一版本数据在非易失性存储器,则禁止缓存替换算法选中所述第一版本数据对应的地址空间。
结合一方面的实现方式,在第二种可能的实现方式中,所述方法还包括:
在第二版本数据递交之后,并且在所述第一版本数据回收之前,将所述第二版本数据作为第一版本数据,并更新第一版本数据的逻辑地址与物理地址之间的映射关系;所述逻辑地址为软件可见的地址。
结合一方面的第二种可能的实现方式,在第三种可能的实现方式中,在将所述事务的第二版本数据存储到存储设备的非易失性缓存过程中,所述方法还包括:
记录各事务对应的数据的处理状态,所述处理状态包括:空闲、活跃、已提交、中止以及已更新映射。
结合一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述若需要对所述事务进行恢复,则获取所述第一版本数据包括:
若需要对所述事务进行恢复,则获取非易失性缓存中所述事务的处理状态;若所述事务的处理状态为已提交并且未更新映射,则将所述第二版本数据作为第一版本数据,并更新第一版本数据的逻辑地址与物理地址之间的映射关系。
结合一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述方法,还包括:
若所述事务的处理状态为活跃或者中止,则回收所述事务对应的第二版本数据对应的地址空间。
结合一方面、一方面的第一种、第二种、第三种、第四种或者第五种可能的实现方式,在第六种可能的实现方式中,所述方法还包括:
通过链表记录存储在非易失性缓存或者非易失性存储器的各页面中的数据与事务之间的所属关系。
结合一方面、一方面的第一种、第二种、第三种、第四种或者第五种可能的实现方式,在第七种可能的实现方式中,所述方法还包括:
若所述非易失性缓存的剩余存储空间小于单个事务所需存储空间,在所述非易失性存储器中扩展用于缓存所述第二版本数据的缓存空间。
结合一方面、一方面的第一种、第二种、第三种、第四种或者第五种可能的实现方式,在第八种可能的实现方式中,
若需要对非易失性缓存进行缓存替换,则以事务为最小粒度执行缓存替换算法,并禁止处于未提交状态的数据被替换;或者,若需要对事务的第一版本数据或者第二版本数据的地址空间进行回收,以事务为最小粒度进行地址空间回收。
本发明实施例二方面提供了一种存储设备的事务恢复装置,包括:
数据存储单元,用于在执行事务处理过程中,将所述事务的第二版本数据存储到存储设备的非易失性缓存;若存在所述事务的第一版本数据,则所述第一版本数据存储在所述存储设备的非易失性缓存或者所述存储设备的非易失性存储器;所述第二版本数据为本次执行事务处理过程中产生的数据;所述第一版本数据为本次之前执行所述事务已提交的数据;
存储控制单元,用于在将所述事务的第二版本数据存储到存储设备的非易失性缓存过程中,保持所述第一版本数据;
数据恢复单元,用于若需要对所述事务进行恢复,则获取所述第一版本数据。
结合二方面的实现方式,在第一种可能的实现方式中,所述存储控制单元,用于禁止回收所述第一版本数据对应的地址空间;
若所述第一版本数据在非易失性缓存,则设置所述第一版本数据对应的地址空间有效;若所述第一版本数据在非易失性存储器,则禁止缓存替换算法选中所述第一版本数据对应的地址空间。
结合二方面的实现方式,在第二种可能的实现方式中,所述装置还包括:
映射更新单元,用于在第二版本数据递交之后,并且在所述第一版本数据回收之前,将所述第二版本数据作为第一版本数据,并更新第一版本数据的逻辑地址与物理地址之间的映射关系;所述逻辑地址为软件可见的地址。
结合二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述装置还包括:
状态记录单元,用于在将所述事务的第二版本数据存储到存储设备的非易失性缓存过程中,记录各事务对应的数据的处理状态,所述处理状态包括:空闲、活跃、已提交、中止以及已更新映射。
结合二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述数据恢复单元,用于若需要对所述事务进行恢复,则获取非易失性缓存中所述事务的处理状态;若所述事务的处理状态为已提交并且未更新映射,则将所述第二版本数据作为第一版本数据,并更新第一版本数据的逻辑地址与物理地址之间的映射关系。
结合二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述装置还包括:
回收单元,用于若所述事务的处理状态为活跃或者中止,则回收所述事务对应的第二版本数据对应的地址空间。
结合二方面、二方面的第一种、第二种、第三种、第四种或者第五种可能的实现方式,在第六种可能的实现方式中,所述装置还包括:
数据事务记录单元,用于通过链表记录存储在非易失性缓存或者非易失性存储器的各页面中的数据与事务之间的所属关系。
结合二方面、二方面的第一种、第二种、第三种、第四种或者第五种可能的实现方式,在第七种可能的实现方式中,所述数据存储单元,还用于若所述非易失性缓存的剩余存储空间小于单个事务所需存储空间,在所述非易失性存储器中扩展用于缓存所述第二版本数据的缓存空间。
结合二方面、二方面的第一种、第二种、第三种、第四种或者第五种可能的实现方式,在第八种可能的实现方式中,
所述存储控制单元,还用于若需要对非易失性缓存进行缓存替换,则以事务为最小粒度执行缓存替换算法,并禁止处于未提交状态的数据被替换;或者,若需要对事务的第一版本数据或者第二版本数据的地址空间进行回收,以事务为最小粒度进行地址空间回收。
从以上技术方案可以看出,本发明实施例具有以下优点:事务处理中的数据新版本记录于非易失性缓存,而无需同步刷写至非易失性存储器,可以减轻同步刷写的性能开销;在写入数据新版本时首先记录于非易失性缓存中,而无需记录到非易失性存储器中,通过这种方法避免了数据新版本在非易失性存储器中的两次写;利用非易失性缓存的非易失性和字节寻址特性降低事务处理的开销实现数据一致性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例方法流程示意图;
图2为本发明实施例混合存储设备结构示意图;
图3为本发明实施例的混合存储设备的功能模块示意图;
图4为本发明实施例系统正常运行过程中的事务处理流程示意图;
图5为本发明实施例的事务管理示意图;
图6为本发明实施例的事务状态转换示意图;
图7为本发明实施例在故障发生后的恢复流程示意图;
图8为本发明实施例的事务恢复装置结构示意图;
图9为本发明实施例的事务恢复装置结构示意图;
图10为本发明实施例的事务恢复装置结构示意图;
图11为本发明实施例的事务恢复装置结构示意图;
图12为本发明实施例的事务恢复装置结构示意图;
图13为本发明实施例的存储设备结构示意图;
图14为本发明实施例的服务器结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供了一种存储设备的事务恢复方法,如图1所示,包括:
101:在执行事务处理过程中,将上述事务的第二版本数据存储到存储设备的非易失性缓存;若存在上述事务的第一版本数据,则上述第一版本数据存储在上述存储设备的非易失性缓存或者上述存储设备的非易失性存储器;上述第二版本数据为本次执行事务处理过程中产生的数据;上述第一版本数据为本次之前执行上述事务已提交的数据;
102:在将上述事务的第二版本数据存储到存储设备的非易失性缓存过程中,保持上述第一版本数据;
在本发明实施例中,第二版本数据是本次执行事务处理产生的数据,属于新数据版本,在事务处理提交之前新数据版本并不完整,其正确性无法保证,因此需要保持第一版本数据不被删除,具体的操作方式可以如下:可选地,上述保持上述第一版本数据包括:禁止回收上述第一版本数据对应的地址空间;若上述第一版本数据在非易失性缓存,则设置上述第一版本数据对应的地址空间有效;若上述第一版本数据在非易失性存储器,则禁止缓存替换算法选中上述第一版本数据对应的地址空间。
在本发明实施例中,可以通过映射表的方式来灵活控制软件可见的事务的数据的版本,具体如下:进一步地,上述方法还包括:在第二版本数据递交之后,并且在上述第一版本数据回收之前,将上述第二版本数据作为第一版本数据,并更新第一版本数据的逻辑地址与物理地址之间的映射关系;上述逻辑地址为软件可见的地址。
在本发明实施例中,通过事务的处理状态进行软件可见事务的数据版本控制、地址空间的回收等操作之前需要对事务的处理状态进行记录,以方便后续的控制流程。进一步地,在将上述事务的第二版本数据存储到存储设备的非易失性缓存过程中,上述方法还包括:记录各事务对应的数据的处理状态,上述处理状态包括:空闲、活跃、已提交、中止以及已更新映射。
103:若需要对上述事务进行恢复,则获取上述第一版本数据。
本发明实施例,事务处理中的数据新版本记录于非易失性缓存,而无需同步刷写至非易失性存储器,可以减轻同步刷写的性能开销;在写入数据新版本时首先记录于非易失性缓存中,而无需记录到非易失性存储器中,通过这种方法避免了数据新版本在非易失性存储器中的两次写;利用非易失性缓存的非易失性和字节寻址特性降低事务处理的开销实现数据一致性。
在发生故障等情况下,本发明实施例需要对事务的数据进行恢复,本发明实施例还给出了基于映射表的恢复方式,具体如下:可选地,上述若需要对上述事务进行恢复,则获取上述第一版本数据包括:若需要对上述事务进行恢复,则获取非易失性缓存中上述事务的处理状态;若上述事务的处理状态为已提交并且未更新映射,则将上述第二版本数据作为第一版本数据,并更新第一版本数据的逻辑地址与物理地址之间的映射关系。
以上方案仅需要更新映射表,就可以灵活控制软件可见的数据,不需要重复写入数据,减少同步刷入次数,同时可以降低事务元数据(记录事务的状态和数据页面的数据信息)管理的开销。
本发明实施例还提供了基于前述实施例记录事务的处理状态,进行存储资源回收的方案,具体如下:进一步地,上述方法还包括:若上述事务的处理状态为活跃或者中止,则回收上述事务对应的第二版本数据对应的地址空间。
在本发明实施例中,一个事务在处理过程中可能会产生很多数据,并且存放在不同的页面中,本发明实施例提供了如何确定存放在不同页面中的数据属于一个事务的可选实现方案,具体如下:进一步地,上述方法,还包括:通过链表记录存储在非易失性缓存或者非易失性存储器的各页面中的数据与事务之间的所属关系。
在本发明实施例中,非易失性存储器的空间是有限的,有可能存在非易失性存储器的存储空间不足的问题,本发明实施例提供了可选方案如下:进一步地,上述方法,还包括:若上述非易失性缓存的剩余存储空间小于单个事务所需存储空间,在上述非易失性存储器中扩展用于缓存上述第二版本数据的缓存空间。
可选地,在本发明实施例中,对事务的数据的管理优选地以事务为最小粒度,以确保数据一致性更为高效准确的进行,具体如下:若需要对非易失性缓存进行缓存替换,则以事务为最小粒度执行缓存替换算法,并禁止处于未提交状态的数据被替换;或者,若需要对事务的第一版本数据或者第二版本数据的地址空间进行回收,以事务为最小粒度进行地址空间回收。
以下实施例,将结合结构图对本发明实施例进行更详细的说明。如图2所示,本发明实施例中的存储设备是混合存储设备,包括:非易失性缓存和非易失性存储器两部分。非易失性缓存是缓存的一种,非易失性存储是主要的存储设备,均采用非易失性存储介质,非易失性存储介质可以保证设备掉电后数据不丢失。由于非易失性存储器的访问速度慢,存储设备内部非易失性缓存用于数据写缓冲或读缓存,用于匹配外部读写与非易失性存储器的访问速度。
图2示例了本发明实施例所采用的混合存储设备。该混合存储设备使用字节寻址的非易失性存储介质作为存储设备缓存,与原有非易失性存储器构成两级存储层。在该混合存储设备中,非易失性缓存的介质,既包括新型字节寻址的非易失性存储器件,也包括利用后备电源的易失性存储器件。新型字节寻址的非易失性存储器件包括但不局限于相变存储器(PhaseChangeMemory,PCM)、自旋矩存储器(Spin-TransferTorqueRandom-AccessMemory,STT-RAM)、阻变存储器(ResistiveRandom-AccessMemory,RRAM)。利用后备电源的非易失性存储器件包括但不局限于采用不间断电源(UPS)或电容提供掉电保护的DRAM或SRAM。非易失性存储器的介质,既可以是新型非易失性存储器件,包括闪存和新型字节寻址的非易失性存储器件,也可以是磁介质存储,如磁盘。
图3示例了混合存储设备中实现事务恢复方案的功能模块,可以一并参考图2所示的存储器结构。在混合存储中的用于支持事务处理的功能模块包括:事务扩展编程接口、数据页面缓存模块以及事务元数据的管理模块,FTL(FlashTranslationLayer,闪存转换层)映射表。
另外,在软件层有应用程序、数据库管理系统以及文件系统对本发明实施例方案进行支撑。在非易失性缓存一层还可以包含:空闲空间管理、垃圾回收、磨损均衡等配套功能。非易失性存储器中主要用户存储数据。
事务扩展编程接口相比于传统存储设备的READ(读)、WRITE(写)接口增加了事务处理编程接口:BEGIN(开始)、COMMIT(提交)和ABORT(中止)。其中,BEGIN编程接口用于软件系统向存储设备请求一个新的事务编号(TransactionalIdentifier,TxID),存储设备返回一个可用的事务编号;其后,软件系统在每次数据访问操作中加入该事务编号用于标记访问请求所属事务。COMMIT编程接口用于软件系统通知存储设备提交该事务,存储设备完成事务提交并返回执行状态。ABORT编程接口用于软件系统通知存储设备中止该事务,存储设备处理事务中止并返回执行状态。
数据页面缓存模块的主要功能是:管理数据的新旧版本的存储。数据页面缓存模块的三种功能具体如下:
(1)、在非易失性缓存(本发明实施例中可以简称为缓存)中分配页面并写入数据新版本;
(2)、保护上一提交版本(旧版本,旧版本可能有很多)不受破坏:若上一提交版本在缓存的页面中,则标记该页面不可覆盖写;若上一提交版本在非易失性存储器中,则修改缓存替换算法,标记当前写入数据版本不可替换写回到非易失性存储器;
(3)、在缓存页面空间不足时采用扩展缓存的方式记录数据新版本,即在非易失性存储器中分配单独空间用以实现缓存页面功能。
在非易失性缓存的使用过程中,缓存替换算法可使用原有缓存替换算法,如LRU(LeastRecentlyUsed,近期最少使用)。与原有缓存替换算法有两点不同:
(1)、缓存替换以事务为粒度,而不是以页面为粒度;
(2)、在缓存替换时判断所替换事务是否为已提交状态。若为已提交状态,则可替换;否则不可替换。
事务元数据管理模块主要管理的事务元数据有如下三种:
(1)、数据页面元数据:记录事务中每个数据页面的元数据信息,主要包括:软件可见的逻辑地址、非易失性缓存中的缓存页面地址以及非易失性存储器中地址这三种地址。其中非易失性缓存中的缓存页面地址以及非易失性存储器中地址属于物理地址。
(2)、链表:包括事务链和版本链。其中,事务链通过指针链接同一事务中的所有页面的页面元数据,用来指示那些页面元数据属于同一事务。版本链通过在每个数据页面元数据中记录指针指向上一提交的版本的页面元数据。
(3)、事务元数据,包含事务的处理状态:空闲(FREE)事务、活跃(ACTIVE)事务、已提交(COMMIT)事务、已中止(ABORT)事务以及已更新映射(CHECKPOINT)事务。
此外,数据页面缓存模块还包含其它用于管理设备状态以及存储空间的功能模块。本实施例以闪存存储设备为例,但不限于闪存存储设备。数据页面缓存模块还包括:FTL映射表、空闲空间管理、垃圾回收和磨损均衡。
其中,FTL映射表记录从逻辑地址到物理地址的映射关系。在数据页面更新后,只有当该数据页面的映射关系被更新至FTL映射表后,该数据页面才能被外部数据访问请求访问到,即外部可见。因此,在设备内部实现事务处理时,对于尚未提交的数据页面,其映射关系暂不更新至FTL映射表;直至事务提交后,该事务中数据页面的映射关系才被更新至FTL映射表。
空闲空间管理用于管理闪存存储中每个闪存页的使用状态。
垃圾回收用于选择可回收闪存块并擦除。
磨损均衡用于将闪存擦写操作尽可能均衡到所有的闪存页面,从而避免因部分闪存页面失效导致闪存设备寿命缩短的问题。
图4为本发明实施例系统正常运行过程中的事务处理流程示意图,图5为本发明实施例元数据组织与关联关系。在图5中,左边一列为事务元数据,中间的圆形示意为数据页面元数据,右边示意为数据页面缓存;其中双向箭头为事务链、单向的虚线箭头为版本链,虚线连接的是页面的映射关系。
请参阅图4所示,系统正常运行过程中的事务处理流程如下:
步骤401:初始化事务元数据(记录事务的状态和数据页面的数据信息),从事务元数据中选择状态为空闲(FREE)的事务,记录所开始事务的事务编号,并开始接收后续数据访问请求;
步骤402:确定数据访问请求的数据请求类型;如果是事务写,则接收事务数据访问请求,然后进入下一步骤403;
步骤403:存储设备在数据页面的缓存中为数据新版本的分配页面,并将数据新版本更新至数据页面缓存(首先更新到非易失性缓存的页面进行存储);本步骤更新数据新版本过程中,需要保护事务的数据上一提交版本不被破坏,保护的方式主要有以下两个方面:1、若所更新数据页面的上一提交版本在数据页面缓存中,则选择空闲缓存页面用于缓存数据新版本,避免数据版本的覆盖写;2、若所更新数据页面的上一提交版本在非易失性存储器中,则选择空闲缓存页面用于缓存数据新版本,并标记为不可替换页面,避免缓存替换算法替换该页面至非易失性存储器造成旧版本覆盖写。本步骤具体包括如下方面:
步骤4031:接收事务数据访问请求;
步骤4032:确定缓存剩余空间是否足够;如果否,进入4033,如果是进入4034;
步骤4033:确定缓存的数据页面缓存中剩余空间不足时,通过缓存替换算法获得缓存空间,然后确定缓存剩余空间是否足够,如果是,则进入404,否则使用扩展缓存方式获得存储空间用来缓存数据新版本;
若数据页面缓存中没有剩余页面可供分配,则首先调用缓存替换算法进行页面替换;若缓存替换算法仍不能提供足够的空闲页面,则采用扩展缓存方式:由于缓存替换算法以事务为粒度进行替换,若数据页面缓存空间小于单个事务的大小,则需要在非易失性存储器中分配空间用作扩展缓存;扩展缓存用分配的非易失性存储器空间模拟非易失性。
步骤404:分配数据页面空间;为所更新的数据页面分配数据页面元数据,并更新事务元数据:
本步骤的具体流程如下;
4041:为事务中每个更新的数据页面分配数据页面元数据,记录所更新数据页面的映射关系,并将该数据页面元数据链接到版本链与事务链中;更具体的步骤如下:
在数据页面元数据中记录所更新页面的映射关系,包括该数据页面的逻辑地址、缓存页面地址以及物理地址;
在数据页面元数据中通过指针构建版本链,即记录指针指向该数据页面上一提交版本的数据页面元数据;
在数据页面元数据中通过指针构建事务链,即记录指针双向链接属于同一事务的其它数据页面的页面元数据;并最终将这些数据页面元数据链接到事务元数据。
4042:判断事务状态的转换,更新事务元数据:更具体的方案如下:
若事务已经提交,则事务状态修改为已提交(COMMIT)状态;若事务已经中止,则事务状态修改为已中止(ABORT)状态。
步骤405:根据事务链遍历事务中每个页面的数据页面元数据,利用所记录映射关系更新映射表;
步骤405具体如下:如果是事务提交,则遍历事务链,将映射关系更新至映射表,如果是事务中止,则回收事务中所分配的内存空间,然后中止事务完成;其中事务提交部分如下:若为已提交的事务,将该事务中数据页面的映射关系更新至映射表中,以提供外部访问;更具体的步骤如下:
4051:对每个数据页面元数据,回溯版本链,标记最新提交版本的前一版本所表示数据页面为可回收;
4052:读取每个数据页面元数据中的映射关系,并将该映射关系更新映射表,使得该页面更新外部可见;
4053:修改事务元数据中的事务状态为已更新映射(CHECKPOINT)状态;
4054:等在该事务中所有数据页面元数据均处理完毕后,执行步骤(5);
若为已中止事务,则直接执行步骤406。
步骤406:在执行步骤405直至映射更新完毕,且其所使用内存已回收,则事务状态回归空闲,然后提交事务完成。具体如下:标记事务中数据页面元数据所指向缓存页面为可回收,清理数据页面元数据,并标记事务元数据状态为空闲(FREE),以服务后续请求。
图6示例了事务状态转换,具体如下:事务状态包含五种状态:空闲(FREE)事务、活跃(ACTIVE)事务、已提交(COMMIT)事务、已中止(ABORT)事务以及已更新映射(CHECKPOINT)事务。事务的转换状态如下:状态的转换包括如下几种:
(1)、空闲-活跃:当软件系统通过BEGIN命令向存储设备发送事务启动信号后,事务元数据中活跃状态位被置位(就是触发器写入状态信息),事务处于活跃状态;处于活跃状态的事务接收外部的读写请求,并根据上述数据访问流程(图4的流程)维护相应的数据页面元数据;
(2)、活跃-已提交:当软件系统通过COMMIT命令向存储设备发送事务提交信号后,事务元数据中的已提交状态位被置位;已提交状态位被置位后,该事务中的数据页面映射关系可以开始被更新到映射表中以提供外部访问,同时该事务中缓存的数据页面可以被缓存替换算法替换;
(3)、已提交-已更新映射:当事务已提交状态位(COMMIT)置位后,存储设备遍历该事务中的数据页面元数据,并将数据页面映射关系更新至映射表;等到该事务中所有数据页面映射关系更新完成,该事务的事务元数据中的已更新映射状态位被置位;
(4)、已更新映射-空闲:当事务已更新映射状态位(CHECKPOINT)被置位后,则判断该事务中每个数据页面是否为最新提交版本;若为最新提交版本,则仍然保留,若不为最新提交版本,则可回收该缓存页面及数据页面元数据;直至该事务中所有页面均已回收,该事务的空间状态位被置位;该事务元数据可用作后续事务操作;
(5)、活跃-已中止:当软件系统通过ABORT命令向存储设备发送事务中止信号后,事务元数据中的已中止状态位被置位;
(6)、已中止-空闲:当已中止状态位(ABORT)被置位后,该事务中数据页面的缓存页面以及数据页面元数据被回收;等到该事务中所有数据页面的缓存页面及数据页面元数据被回收完成,事务元数据中的空闲状态位被置位;该事务元数据可用作后续事务操作。
图7示例了本发明实施例混合存储设备在故障发生后的恢复流程。本发明实施例,故障恢复时仅需要判断仍然记录有事务元数据的事务。对于没有事务元数据记录的事务,这些事务在事务状态被设置为空闲(FREE)状态之前,其数据的最新版本已经被持久性记录在非易失性缓存或者非易失性存储器中,并且这些数据页面的映射关系已经被更新到映射表中,即外部的读写请求可以访问到这些事务中的数据页面。这些事务的提交状态已经确定,故而在故障恢复时不需要处理。因而故障恢复时仅需要判断仍然有事务元数据记录的事务。具体步骤如下:
步骤701:扫描事务元数据,找出有事务元数据记录的事务;
步骤702:检查事务状态;如果是活跃/已中止,则进入704,如果为空闲,则跳过继续执行701;如果是已提交事务则进入703;
本步骤中,确定事务的状态,会执行如下操作:
若为空闲状态,则跳过;
若为活跃状态,由于处于活跃状态的事务尚未提交,在系统故障发生后不能继续执行,故而转为已中止状态,则执行步骤704;
若为已提交状态,则执行步骤703;
若为已中止状态,则执行步骤704;
若为已更新映射状态,则执行步骤704;
步骤703:对于已提交状态的事务,首先判断是否其已更新映射并且状态是否置位:若已经置位,则执行步骤704;若未更新映射表并且尚未置位,则将该事务中数据页面的映射关系更新至映射表中,以提供外部访问;具体流程可以如下:
首先,对每个数据页面元数据,回溯版本链,标记最新提交版本的前一版本所表示数据页面为可回收;
然后,读取每个数据页面元数据中的映射关系,并将该映射关系更新映射表,使得该页面更新外部可见;
再然后,修改事务元数据中的事务状态为已更新映射(CHECKPOINT)状态;
最后,在该事务中所有数据页面元数据均处理完毕后,执行步骤704;
步骤704:标记事务中数据页面元数据所指向缓存页面为可回收,清理数据页面元数据,并标记事务元数据状态为空闲(FREE),以服务后续请求。本步骤主要自行的是:清理该事务所使用内存,设置事务状态为空闲;
以上流程中,还可以在执行704之前,确定该事务中是否包含最新提交版本,如果确定结果为是,需要等待上述事务的所有页面均标记为可回收;如果确定结果为否可以直接执行步骤704。
至此,混合存储设备完成已提交事务的重做与已中止事务的清理工作,系统恢复至一致性状态。
本发明实施例还提供了一种存储设备的事务恢复装置,如图8所示,包括:
数据存储单元801,用于在执行事务处理过程中,将上述事务的第二版本数据存储到存储设备的非易失性缓存;若存在上述事务的第一版本数据,则上述第一版本数据存储在上述存储设备的非易失性缓存或者上述存储设备的非易失性存储器;上述第二版本数据为本次执行事务处理过程中产生的数据;上述第一版本数据为本次之前执行上述事务已提交的数据;
存储控制单元802,用于在将上述事务的第二版本数据存储到存储设备的非易失性缓存过程中,保持上述第一版本数据;
数据恢复单元803,用于若需要对上述事务进行恢复,则获取上述第一版本数据。
本发明实施例,事务处理中的数据新版本记录于非易失性缓存,而无需同步刷写至非易失性存储器,可以减轻同步刷写的性能开销;在写入数据新版本时首先记录于非易失性缓存中,而无需记录到非易失性存储器中,通过这种方法避免了数据新版本在非易失性存储器中的两次写;利用非易失性缓存的非易失性和字节寻址特性降低事务处理的开销实现数据一致性。
在本发明实施例中,第二版本数据是本次执行事务处理产生的数据,属于新数据版本,在事务处理提交之前新数据版本并不完整,其正确性无法保证,因此需要保持第一版本数据不被删除,具体的操作方式可以如下:可选地,上述存储控制单元802,用于禁止回收上述第一版本数据对应的地址空间;
若上述第一版本数据在非易失性缓存,则设置上述第一版本数据对应的地址空间有效;若上述第一版本数据在非易失性存储器,则禁止缓存替换算法选中上述第一版本数据对应的地址空间。
在本发明实施例中,可以通过映射表的方式来灵活控制软件可见的事务的数据的版本,具体如下:进一步地,如图9所示,上述装置,还包括:
映射更新单元901,用于在第二版本数据递交之后,并且在上述第一版本数据回收之前,将上述第二版本数据作为第一版本数据,并更新第一版本数据的逻辑地址与物理地址之间的映射关系;上述逻辑地址为软件可见的地址。
在本发明实施例中,通过事务的处理状态进行软件可见事务的数据版本控制、地址空间的回收等操作之前需要对事务的处理状态进行记录,以方便后续的控制流程。进一步地,如图10所示,上述装置,还包括:
状态记录单元1001,用于在将上述事务的第二版本数据存储到存储设备的非易失性缓存过程中,记录各事务对应的数据的处理状态,上述处理状态包括:空闲、活跃、已提交、中止以及已更新映射。
在发生故障等情况下,本发明实施例需要对事务的数据进行恢复,本发明实施例还给出了基于映射表的恢复方式,具体如下:可选地,上述数据恢复单元803,用于若需要对上述事务进行恢复,则获取非易失性缓存中上述事务的处理状态;若上述事务的处理状态为已提交并且未更新映射,则将上述第二版本数据作为第一版本数据,并更新第一版本数据的逻辑地址与物理地址之间的映射关系。
以上方案仅需要更新映射表,就可以灵活控制软件可见的数据,不需要重复写入数据,减少同步刷入次数,同时可以降低事务元数据(记录事务的状态和数据页面的数据信息)管理的开销。
本发明实施例还提供了基于前述实施例记录事务的处理状态,进行存储资源回收的方案,具体如下:进一步地,如图11所示,上述装置,还包括:
回收单元1101,用于若上述事务的处理状态为活跃或者中止,则回收上述事务对应的第二版本数据对应的地址空间。
在本发明实施例中,一个事务在处理过程中可能会产生很多数据,并且存放在不同的页面中,本发明实施例提供了如何确定存放在不同页面中的数据属于一个事务的可选实现方案,具体如下:进一步地,如图12所示,上述装置,还包括:
数据事务记录单元1201,用于通过链表记录存储在非易失性缓存或者非易失性存储器的各页面中的数据与事务之间的所属关系。
在本发明实施例中,非易失性存储器的空间是有限的,有可能存在非易失性存储器的存储空间不足的问题,本发明实施例提供了可选方案如下:进一步地,上述数据存储单元801,还用于若上述非易失性缓存的剩余存储空间小于单个事务所需存储空间,在上述非易失性存储器中扩展用于缓存上述第二版本数据的缓存空间。
可选地,在本发明实施例中,对事务的数据的管理优选地以事务为最小粒度,以确保数据一致性更为高效准确的进行,具体如下:上述存储控制单元802,还用于若需要对非易失性缓存进行缓存替换,则以事务为最小粒度执行缓存替换算法,并禁止处于未提交状态的数据被替换;或者,若需要对事务的第一版本数据或者第二版本数据的地址空间进行回收,以事务为最小粒度进行地址空间回收。
本发明实施例还提供了一种存储设备,如图13所示,包括:接收器1301、发射器1302、处理器1303,以及存储器1304;其中存储器1304为混合存储设备,包含非易失性缓存和非易失性存储器两部分;
其中,处理器1303用于:在执行事务处理过程中,将上述事务的第二版本数据存储到存储设备的非易失性缓存;若存在上述事务的第一版本数据,则上述第一版本数据存储在上述存储设备的非易失性缓存或者上述存储设备的非易失性存储器;上述第二版本数据为本次执行事务处理过程中产生的数据;上述第一版本数据为本次之前执行上述事务已提交的数据;在将上述事务的第二版本数据存储到存储设备的非易失性缓存过程中,保持上述第一版本数据;若需要对上述事务进行恢复,则获取上述第一版本数据。
本发明实施例,事务处理中的数据新版本记录于非易失性缓存,而无需同步刷写至非易失性存储器,可以减轻同步刷写的性能开销;在写入数据新版本时首先记录于非易失性缓存中,而无需记录到非易失性存储器中,通过这种方法避免了数据新版本在非易失性存储器中的两次写;利用非易失性缓存的非易失性和字节寻址特性降低事务处理的开销实现数据一致性。
在本发明实施例中,第二版本数据是本次执行事务处理产生的数据,属于新数据版本,在事务处理提交之前新数据版本并不完整,其正确性无法保证,因此需要保持第一版本数据不被删除,具体的操作方式可以如下:可选地,上述处理器1303用于:保持上述第一版本数据包括:禁止回收上述第一版本数据对应的地址空间;若上述第一版本数据在非易失性缓存,则设置上述第一版本数据对应的地址空间有效;若上述第一版本数据在非易失性存储器,则禁止缓存替换算法选中上述第一版本数据对应的地址空间。
在本发明实施例中,可以通过映射表的方式来灵活控制软件可见的事务的数据的版本,具体如下:进一步地,上述处理器1303还用于:在第二版本数据递交之后,并且在上述第一版本数据回收之前,将上述第二版本数据作为第一版本数据,并更新第一版本数据的逻辑地址与物理地址之间的映射关系;上述逻辑地址为软件可见的地址。
在本发明实施例中,通过事务的处理状态进行软件可见事务的数据版本控制、地址空间的回收等操作之前需要对事务的处理状态进行记录,以方便后续的控制流程。进一步地,上述处理器1303还用于:在将上述事务的第二版本数据存储到存储设备的非易失性缓存过程中,记录各事务对应的数据的处理状态,上述处理状态包括:空闲、活跃、已提交、中止以及已更新映射。
在发生故障等情况下,本发明实施例需要对事务的数据进行恢复,本发明实施例还给出了基于映射表的恢复方式,具体如下:可选地,上述处理器1303用于:若需要对上述事务进行恢复,则获取上述第一版本数据包括:若需要对上述事务进行恢复,则获取非易失性缓存中上述事务的处理状态;若上述事务的处理状态为已提交并且未更新映射,则将上述第二版本数据作为第一版本数据,并更新第一版本数据的逻辑地址与物理地址之间的映射关系。
以上方案仅需要更新映射表,就可以灵活控制软件可见的数据,不需要重复写入数据,减少同步刷入次数,同时可以降低事务元数据(记录事务的状态和数据页面的数据信息)管理的开销。
本发明实施例还提供了基于前述实施例记录事务的处理状态,进行存储资源回收的方案,具体如下:进一步地,上述处理器1303还用于:若上述事务的处理状态为活跃或者中止,则回收上述事务对应的第二版本数据对应的地址空间。
在本发明实施例中,一个事务在处理过程中可能会产生很多数据,并且存放在不同的页面中,本发明实施例提供了如何确定存放在不同页面中的数据属于一个事务的可选实现方案,具体如下:进一步地,上述处理器1303还用于:通过链表记录存储在非易失性缓存或者非易失性存储器的各页面中的数据与事务之间的所属关系。
在本发明实施例中,非易失性存储器的空间是有限的,有可能存在非易失性存储器的存储空间不足的问题,本发明实施例提供了可选方案如下:进一步地,上述处理器1303还用于:若上述非易失性缓存的剩余存储空间小于单个事务所需存储空间,在上述非易失性存储器中扩展用于缓存上述第二版本数据的缓存空间。
可选地,在本发明实施例中,对事务的数据的管理优选地以事务为最小粒度,以确保数据一致性更为高效准确的进行,具体如下:上述处理器1303还用于:若需要对非易失性缓存进行缓存替换,则以事务为最小粒度执行缓存替换算法,并禁止处于未提交状态的数据被替换;或者,若需要对事务的第一版本数据或者第二版本数据的地址空间进行回收,以事务为最小粒度进行地址空间回收。
图14是本发明实施例提供的一种服务器结构示意图,该服务器1400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,CPU)1422(例如,一个或一个以上处理器)和存储器1432,一个或一个以上存储应用程序1442或数据1444的存储介质1430(例如一个或一个以上海量存储设备)。其中,存储器1432和存储介质1430可以是短暂存储或持久存储。存储在存储介质1430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1422可以设置为与存储介质1430通信,在服务器1400上执行存储介质1430中的一系列指令操作。
服务器1400还可以包括一个或一个以上电源1426,一个或一个以上有线或无线网络接口1450,一个或一个以上输入输出接口1458,和/或,一个或一个以上操作系统1441,例如WindowsServerTM,MacOSXTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由存储设备的事务恢复装置所执行的步骤可以基于该图14所示的服务器结构。
值得注意的是,上述装置和设备实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各方法实施例中的全部或部分步骤是可以通过程序来指令相关的硬件完成,相应的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (18)
1.一种存储设备的事务恢复方法,其特征在于,包括:
在执行事务处理过程中,将所述事务的第二版本数据存储到存储设备的非易失性缓存;若存在所述事务的第一版本数据,则所述第一版本数据存储在所述存储设备的非易失性缓存或者所述存储设备的非易失性存储器;所述第二版本数据为本次执行事务处理过程中产生的数据;所述第一版本数据为本次之前执行所述事务已提交的数据;
在将所述事务的第二版本数据存储到存储设备的非易失性缓存过程中,保持所述第一版本数据;
若需要对所述事务进行恢复,则获取所述第一版本数据。
2.根据权利要求1所述方法,其特征在于,所述保持所述第一版本数据包括:
禁止回收所述第一版本数据对应的地址空间;
若所述第一版本数据在非易失性缓存,则设置所述第一版本数据对应的地址空间有效;若所述第一版本数据在非易失性存储器,则禁止缓存替换算法选中所述第一版本数据对应的地址空间。
3.根据权利要求1所述方法,其特征在于,还包括:
在第二版本数据递交之后,并且在所述第一版本数据回收之前,将所述第二版本数据作为第一版本数据,并更新第一版本数据的逻辑地址与物理地址之间的映射关系;所述逻辑地址为软件可见的地址。
4.根据权利要求3所述方法,其特征在于,在将所述事务的第二版本数据存储到存储设备的非易失性缓存过程中,所述方法还包括:
记录各事务对应的数据的处理状态,所述处理状态包括:空闲、活跃、已提交、中止以及已更新映射。
5.根据权利要求4所述方法,其特征在于,所述若需要对所述事务进行恢复,则获取所述第一版本数据包括:
若需要对所述事务进行恢复,则获取非易失性缓存中所述事务的处理状态;若所述事务的处理状态为已提交并且未更新映射,则将所述第二版本数据作为第一版本数据,并更新第一版本数据的逻辑地址与物理地址之间的映射关系。
6.根据权利要求5所述方法,其特征在于,还包括:
若所述事务的处理状态为活跃或者中止,则回收所述事务对应的第二版本数据对应的地址空间。
7.根据权利要求1至6任意一项所述方法,其特征在于,还包括:
通过链表记录存储在非易失性缓存或者非易失性存储器的各页面中的数据与事务之间的所属关系。
8.根据权利要求1至6任意一项所述方法,其特征在于,还包括:
若所述非易失性缓存的剩余存储空间小于单个事务所需存储空间,在所述非易失性存储器中扩展用于缓存所述第二版本数据的缓存空间。
9.根据权利要求1至6任意一项所述方法,其特征在于,
若需要对非易失性缓存进行缓存替换,则以事务为最小粒度执行缓存替换算法,并禁止处于未提交状态的数据被替换;或者,若需要对事务的第一版本数据或者第二版本数据的地址空间进行回收,以事务为最小粒度进行地址空间回收。
10.一种存储设备的事务恢复装置,其特征在于,包括:
数据存储单元,用于在执行事务处理过程中,将所述事务的第二版本数据存储到存储设备的非易失性缓存;若存在所述事务的第一版本数据,则所述第一版本数据存储在所述存储设备的非易失性缓存或者所述存储设备的非易失性存储器;所述第二版本数据为本次执行事务处理过程中产生的数据;所述第一版本数据为本次之前执行所述事务已提交的数据;
存储控制单元,用于在将所述事务的第二版本数据存储到存储设备的非易失性缓存过程中,保持所述第一版本数据;
数据恢复单元,用于若需要对所述事务进行恢复,则获取所述第一版本数据。
11.根据权利要求10所述装置,其特征在于,
所述存储控制单元,用于禁止回收所述第一版本数据对应的地址空间;
若所述第一版本数据在非易失性缓存,则设置所述第一版本数据对应的地址空间有效;若所述第一版本数据在非易失性存储器,则禁止缓存替换算法选中所述第一版本数据对应的地址空间。
12.根据权利要求10所述装置,其特征在于,还包括:
映射更新单元,用于在第二版本数据递交之后,并且在所述第一版本数据回收之前,将所述第二版本数据作为第一版本数据,并更新第一版本数据的逻辑地址与物理地址之间的映射关系;所述逻辑地址为软件可见的地址。
13.根据权利要求12所述装置,其特征在于,所述装置还包括:
状态记录单元,用于在将所述事务的第二版本数据存储到存储设备的非易失性缓存过程中,记录各事务对应的数据的处理状态,所述处理状态包括:空闲、活跃、已提交、中止以及已更新映射。
14.根据权利要求13所述装置,其特征在于,
所述数据恢复单元,用于若需要对所述事务进行恢复,则获取非易失性缓存中所述事务的处理状态;若所述事务的处理状态为已提交并且未更新映射,则将所述第二版本数据作为第一版本数据,并更新第一版本数据的逻辑地址与物理地址之间的映射关系。
15.根据权利要求14所述装置,其特征在于,还包括:
回收单元,用于若所述事务的处理状态为活跃或者中止,则回收所述事务对应的第二版本数据对应的地址空间。
16.根据权利要求10至15任意一项所述装置,其特征在于,还包括:
数据事务记录单元,用于通过链表记录存储在非易失性缓存或者非易失性存储器的各页面中的数据与事务之间的所属关系。
17.根据权利要求10至15任意一项所述装置,其特征在于,
所述数据存储单元,还用于若所述非易失性缓存的剩余存储空间小于单个事务所需存储空间,在所述非易失性存储器中扩展用于缓存所述第二版本数据的缓存空间。
18.根据权利要求10至15任意一项所述装置,其特征在于,
所述存储控制单元,还用于若需要对非易失性缓存进行缓存替换,则以事务为最小粒度执行缓存替换算法,并禁止处于未提交状态的数据被替换;或者,若需要对事务的第一版本数据或者第二版本数据的地址空间进行回收,以事务为最小粒度进行地址空间回收。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410357653.5A CN105335220A (zh) | 2014-07-25 | 2014-07-25 | 一种存储设备的事务恢复方法,及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410357653.5A CN105335220A (zh) | 2014-07-25 | 2014-07-25 | 一种存储设备的事务恢复方法,及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105335220A true CN105335220A (zh) | 2016-02-17 |
Family
ID=55285777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410357653.5A Pending CN105335220A (zh) | 2014-07-25 | 2014-07-25 | 一种存储设备的事务恢复方法,及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105335220A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930500A (zh) * | 2016-05-06 | 2016-09-07 | 华为技术有限公司 | 数据库系统中事务恢复的方法与数据库管理系统 |
CN108763508A (zh) * | 2018-05-30 | 2018-11-06 | 中兴通讯股份有限公司 | 数据页访问方法、存储引擎以及计算机可读存储介质 |
CN113849347A (zh) * | 2021-09-27 | 2021-12-28 | 深圳大学 | 一种数据恢复装置、方法、系统及存储介质 |
CN114171100A (zh) * | 2021-11-12 | 2022-03-11 | 之江实验室 | 一种高故障覆盖率的阻变存储器的测试方法 |
US20230153282A1 (en) * | 2021-11-15 | 2023-05-18 | International Business Machines Corporation | Chaining version data bi-directionally in data page to avoid additional version data accesses |
CN116661981A (zh) * | 2022-02-18 | 2023-08-29 | 华为技术有限公司 | 一种文件处理方法、文件系统、电子设备及介质 |
-
2014
- 2014-07-25 CN CN201410357653.5A patent/CN105335220A/zh active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930500A (zh) * | 2016-05-06 | 2016-09-07 | 华为技术有限公司 | 数据库系统中事务恢复的方法与数据库管理系统 |
WO2017190604A1 (zh) * | 2016-05-06 | 2017-11-09 | 华为技术有限公司 | 数据库系统中事务恢复的方法与数据库管理系统 |
CN108763508A (zh) * | 2018-05-30 | 2018-11-06 | 中兴通讯股份有限公司 | 数据页访问方法、存储引擎以及计算机可读存储介质 |
CN108763508B (zh) * | 2018-05-30 | 2019-07-30 | 中兴通讯股份有限公司 | 数据页访问方法、存储引擎以及计算机可读存储介质 |
CN113849347B (zh) * | 2021-09-27 | 2022-11-11 | 深圳大学 | 一种数据恢复装置、方法、系统及存储介质 |
CN113849347A (zh) * | 2021-09-27 | 2021-12-28 | 深圳大学 | 一种数据恢复装置、方法、系统及存储介质 |
CN114171100A (zh) * | 2021-11-12 | 2022-03-11 | 之江实验室 | 一种高故障覆盖率的阻变存储器的测试方法 |
CN114171100B (zh) * | 2021-11-12 | 2024-05-14 | 之江实验室 | 一种高故障覆盖率的阻变存储器的测试方法 |
US20230153282A1 (en) * | 2021-11-15 | 2023-05-18 | International Business Machines Corporation | Chaining version data bi-directionally in data page to avoid additional version data accesses |
WO2023083118A1 (en) * | 2021-11-15 | 2023-05-19 | International Business Machines Corporation | Chaining version data bi-directionally in data page to avoid additional version data accesses |
US12086118B2 (en) * | 2021-11-15 | 2024-09-10 | International Business Corporation Machines | Chaining version data bi-directionally in data page to avoid additional version data accesses |
CN116661981A (zh) * | 2022-02-18 | 2023-08-29 | 华为技术有限公司 | 一种文件处理方法、文件系统、电子设备及介质 |
CN116661981B (zh) * | 2022-02-18 | 2024-08-27 | 华为技术有限公司 | 一种文件处理方法、文件系统、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7446482B2 (ja) | 順次的にプログラムするメモリサブシステムにおいて非同期電力損失をハンドリングすること | |
CN101784993B (zh) | 使用闪存作为存储器的设备及其操作方法 | |
JP3708047B2 (ja) | フラッシュメモリの管理方法 | |
CN101169751B (zh) | 具有闪存设备的系统及其数据恢复方法 | |
CN103597451B (zh) | 用于高可用性的存储器镜像和冗余生成 | |
CN110795206B (zh) | 用于促进集群级缓存和内存空间的系统和方法 | |
CN101425041B (zh) | 在nand flash存储器上建立fat文件系统的优化方法 | |
US8166233B2 (en) | Garbage collection for solid state disks | |
US8219776B2 (en) | Logical-to-physical address translation for solid state disks | |
CN102612685B (zh) | 经由存储器高速缓存操纵的无阻碍数据传送 | |
KR102252419B1 (ko) | 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법 | |
CN102667739B (zh) | 存储装置管理装置及用于管理存储装置的方法 | |
CN111240586A (zh) | 存储器系统及其操作方法 | |
CN108399134A (zh) | 存储装置及存储装置的操作方法 | |
CN105335220A (zh) | 一种存储设备的事务恢复方法,及装置 | |
US9558108B2 (en) | Half block management for flash storage devices | |
CN102298555A (zh) | 基于nand技术的模块化闪存管理系统 | |
US20180150390A1 (en) | Data Storage Device and Operating Method Therefor | |
CN104854554A (zh) | 储存转换层 | |
CN106557432B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
CN113900586A (zh) | 存储器系统及其操作方法 | |
CN103996412A (zh) | 一种用于智能卡非易失性存储器的掉电保护方法 | |
CN109144899A (zh) | 用于管理表恢复的方法 | |
CN110309077B (zh) | 主机与设备协同工作的闪存转换层构建方法及装置 | |
CN112035294A (zh) | 安全日志文件系统及其实现方法和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160217 |
|
WD01 | Invention patent application deemed withdrawn after publication |