持久性内存事务处理缓存管理方法与装置的制造方法

文档序号:8905181阅读:374来源:国知局
持久性内存事务处理缓存管理方法与装置的制造方法
【技术领域】
[0001]本发明涉及非易失性主存存储技术领域,特别涉及一种持久性内存事务处理缓存管理方法与装置。
【背景技术】
[0002]非易失性存储器(Non-Volatile Memory, NVM)是一种新型的字节寻址的内存级存储器件,如相变存储器(PCM,Phase Change Memory)、自旋矩存储器(STT-RAM,Spin-TorqueTransfer RAM)、阻变存储器(RRAM,Resistive RAM)等。非易失性存储器具有读写延迟低、带宽高、非易失、能耗低等优点,其读写性能接近于传统DRAM内存,且提供与传统磁盘外存相同的持久性。因而,以非易失性存储器构建的内存级持久性存储(也被称为“持久性内存”)可在内存级别提供数据持久性,无需写回磁盘,大幅提高存储系统的性能。
[0003]在存储系统中,数据一致性是存储系统正确可靠运行的重要特性之一。数据一致性要求存储系统在发生意外故障后能够恢复到一致的状态。事务管理是数据一致性维护中的常见方式之一。事务管理将同一操作中的不同数据访问组合成一个事务,并维护该事务的原子性(atomicity)与持久性(durability)。原子性要求该事务中的数据访问全部完成或全部失败。持久性要求该事务中的数据更新在系统掉电后不丢失。
[0004]在持久性内存中维护数据一致性与传统磁盘存储系统中维护方式存在较大的不同。传统磁盘存储系统在内存中维护事务数据的读写状态与写回顺序性,以保证写回磁盘的数据可恢复至一致性状态。而持久性内存在CPU缓存中维护事务数据的读写状态与写回顺序性,从而保证写回持久性内存的数据可恢复至一致性状态。传统磁盘存储系统的内存缓存维护由操作系统管理,可在软件中实现;而持久性内存中的内存缓存维护由CPU缓存管理,在硬件中实现。传统软件方式的事务管理方式在持久性内存中需要引入较多的刷回(^Dclflush)和屏障Gnmfence)等操作,这对CPU缓存效率影响较大,进而影响整体性能的系统。
[0005]为降低持久性内存中数据一致性维护开销,现有不少做法提出对CPU缓存硬件进行功能扩展,以支持事务处理中事务数据的状态跟踪与写回顺序性保证。该类做法包括微软研宄院的BPFS系统中所提的时间节点(epoch)机制,密西根大学所提出的多线一致性(strand consistency)机制,以及清华大学所提出的放松顺序一致性(loose-orderingconsistency)机制。然而,这些方法均需要对CPU缓存硬件进行修改。

【发明内容】

[0006]本发明的目的旨在至少解决上述的技术缺陷之一。
[0007]为此,本发明的一个目的在于提出一种持久性内存事务处理缓存管理方法。该方法可减少持久性内存中的数据复制、数据持久化频率,并在程序软件中提高持久性内存缓存管理效率。
[0008]本发明的另一个目的在于提出一种持久性内存事务处理缓存管理装置。
[0009]为了实现上述目的,本发明的第一方面的实施例公开了一种持久性内存事务处理缓存管理方法,包括以下步骤:在事务开始时,所述事务从非易失性内存中读取原版数据至处理器缓存,并由所述处理器执行所述事务;在事务执行过程中,所述事务为产生的新版数据分配空间,并采用缓存窃取写回技术以允许对未提交数据进行持久化;在事务提交或中止时,将事务数据或状态强制持久化至非易失性内存;在事务数据或状态已持久化至非易失性内存之后,将所述事务数据写回至原数据地址,并采用缓存非强制写回技术不强制已提交数据持久化至非易失性内存;其中,事务周期性以强制整体刷回的形式将缓存数据持久化至所述非易失性内存;当系统发生故障时,对事务数据进行故障恢复处理。
[0010]根据本发明的持久性内存事务处理缓存管理方法,事务处理中的数据新版本直接在非易失性内存中分配空间,减少了临时空间分配与数据复制,提高了内存使用效率。另夕卜,允许未提交的数据被持久化至非易失性内存,降低了未提交数据的状态跟踪代价,此夕卜,该方法利用已提交数据在非易失性内存其余地址空间的持久性版本,允许已提交数据缓存于CPU缓存中,不强制持久化,降低了数据持久化开销。该方法具有以下优点:提升持久性内存中事务处理效率,且在程序软件中实现,无需特定硬件支持,适用性强。
[0011]另外,根据本发明上述实施例的持久性内存事务处理缓存管理方法还可以具有如下附加的技术特征:
[0012]进一步地,所述持久性内存包括易失性处理器缓存和非易失性内存;所述事务数据首先缓存于易失性处理器缓存中,并按照依赖关系的先后顺序写回所述非易失性内存以保证数据的一致性。
[0013]进一步地,所述持久性内存的缓存窃取写回技术包括:在事务的执行过程中,直接从所述非易失性内存中为事务产生的新版数据分配空间,以避免对数据进行复制操作;对日志区域采用固定格式的数据组织方式进行记录,为所述数据块分配对应元数据以提供系统故障后数据块状态检测,其中,所述元数据块用于记录数据块的描述信息。
[0014]进一步地,所述持久性内存的缓存窃取写回技术还包括:如果事务中止,在所述元数据中对中止的事务的数据块进行如下标记:对已分配内存空间且已写回非易失性内存的数据块以及对已分配内存空间但未写回非易失性内存的数据块,采用元数据标记为中止事务数据块的方式标记;对尚未分配内存空间的数据块,直接丢弃。
[0015]进一步地,所述的持久性内存的缓存非强制写回技术包括:在事务提交时,对已提交数据复制其至原版数据位置,如果其在非易失性内存的其余地址空间中存在持久性副本,则允许持久性副本缓存于处理器缓存中;通过周期性强制整体写回处理器缓存中缓存数据的方法延后持久化至非易失性内存。
[0016]进一步地,非强制写回和强制整体写回,具体包括:在系统故障发生时,如果已提交数据未能及时持久化至非易失性内存,则将其由非易失性内存中其余地址空间的副本进行恢复;在强制写回处理器缓存时,由缓存窃取写回技术将事务执行过程中的未提交数据写回非易失性内存。
[0017]进一步地,还包括:当多个事务并发执行时,如果多个事务对同一数据块进行更新,则将数据的多版本持久化至非易失性内存中的顺序按照事务提交顺序进行。
[0018]进一步地,当系统发生故障时,对事务数据进行故障恢复处理,进一步包括:从非易失性内存中按所设定格式分离记录的数据块与元数据块,以获取每个数据块的状态信息,从而判定数据块的提交与未提交状态,并丢弃未提交数据块;对提交的数据块,根据所对应元数据块所记录的信息判定对应事务的提交顺序,并进行排序;对提交事务,按照提交顺序排序进行重放操作。
[0019]本发明第二方面的实施例公开了一种持久性内存事务处理缓存管理装置,包括:非易失性内存;处理器缓存;和事务处理模块,用于在事务开始时,所述事务从非易失性内存中读取原版数据至处理器缓存,并由所述处理器执行所述事务,在事务执行过程中,所述事务为产生的新版数据分配空间,并采用缓存窃取写回技术以允许对未提交数据进行持久化,在事务提交或中止时,将事务数据或状态强制持久化至非易失性内存,在事务数据或状态已持久化至非易失性内存之后,将所述事务数据写回至原数据地址,并采用缓存非强制写回技术不强制已提交数据持久化至非易失性内存,其中,事务周期性以强制整体刷回的形式将缓存数据持久化至所述非易失性内存,并当系统发生故障时,对事务数据进行故障恢复处理。
[0020]根据本发明的持久性内存事务处理缓存管理装置,事务处理中的数据新版本直接在非易失性内存中分配空间,减少了临时空间分配与数据复制,提高了内存使用效率。另夕卜,允许未提交的数据被持久化至非易失性内存,降低了未提交数据的状态跟踪代价,此夕卜,该装置利用已提交数据在非易失性内存其余地址空间的持久性版本,允许已提交数据缓存于CPU缓存中,不强制持久化,降低了数据持久化开销。该装置具有以下优点:提升持久性内存中事务处理效率,且在程序软件中实现,无需特定硬件支持,适用性强。
[0021]本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1