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

文档序号:8905181阅读:来源:国知局
了解到。
【附图说明】
[0022]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
[0023]图1为本发明实施例的方法的持久性内存示意图;
[0024]图2为本发明中持久性内存的事务处理缓存管理方法的数据流程与处理方法的示意图;
[0025]图3为本发明中缓存窃取写回技术中日志格式的示意图;
[0026]图4为本发明中日志记录中的日志数据块格式示意图;
[0027]图5为本发明中日志记录中的日志元数据块格式示意图;
[0028]图6为本发明中缓存非强制写回技术中多事务竞争时数据多版本写回顺序示意图。
【具体实施方式】
[0029]下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0030]在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0031]在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0032]下面结合附图描述根据本发明实施例的持久性内存事务处理缓存管理方法与装置。
[0033]持久性内存是一种采用非易失性存储器作为内存介质且能够在内存提供数据持久性的存储系统。与传统内存存储系统不同的地方在于,持久性内存采用了非易失性存储器作为内存。图1示出了持久性内存的存储结构图。持久性内存由CPU缓存(即处理器缓存)和非易失性内存两部分组成。CPU缓存为易失性存储,即数据在系统掉电之后丢失。非易失性内存包括但不局限于以相变存储器(PCM,Phase Change Memory)、自旋矩存储器(STT-RAM, Spin-Torque Transfer RAM)或阻变存储器(RRAM,Resistive RAM)等新型字节寻址的非易失性存储器构建的内存,或采用NVDIMM接口的字节寻址的非易失性内存。非易失性内存在系统掉电之后数据不丢失。持久性内存中的内存可以是采用非易失性存储器和易失性存储器组合的混合内存。易失性存储器包括DRAM存储器。如图1所示,传统外存储,包括磁盘、固态盘等,可接入持久性内存,以提供更大的存储容量。在本实施例中,外存储不作为持久性内存的一部分。
[0034]由于持久性内存在内存级别提供了数据持久性,易失性-持久性边界即位于CPU缓存与内存之间。这与传统内存存储系统不同,在传统内存存储系统中,内存不能提供数据持久性,只能由外存提供,因而易失性-持久性边界位于内存与外存之间。由于这个不同点,在持久性内存中,从CPU缓存写回内存的操作也被成为持久化操作。持久化操作的作用是将数据写入非易失性介质,在系统掉电后数据不丢失。
[0035]事务机制用于维护存储系统的数据一致性。本示例以事务机制中的写前日志方式为例。写前日志的执行主要分为三个阶段:执行阶段、日志阶段以及数据回写阶段。在执行阶段,事务数据从持久性存储中读取到缓存中执行,并生成新数据版本。在日志阶段,数据新版本被写入日志中,并被持久化写入持久性存储。在事务提交后,事务进入数据写回阶段。在数据写回阶段,事务数据被复制到数据原有位置,并写回持久性存储。在事务执行过程中,事务在数据新版本未持久化写入持久性存储之前应当保护数据旧版本不受破坏,即事务在任一时刻需要在持久性存储中维护一个完整的版本。同时,事务要求数据新版本及时持久化写回持久性存储,以提供事务的持久性(Durability)特性。这些要求事务缓存管理能够维护跟踪未提交的数据和待写回数据,阻止未提交数据写回,及时持久化待写回数据。
[0036]在持久性内存中,事务将内存区域划分为执行区域、数据区域和日志区域。执行区域用于为事务执行阶段的数据分配空间,主要用于保存未提交的数据。数据区域为事务数据的持久化存储地址,在事务提交之前保存事务旧版本数据,在事务提交之后保存事务新版本数据。日志区域用于在事务写前日志技术中在数据写回阶段之前临时存储事务数据新版本。在这三种区域中,执行区域既可以在易失性内存中分配,也可以在非易失性内存中分配。数据区域和日志区域只能在非易失性内存中分配。尽管这三种区域在内存中分配,CPU缓存中数据按照缓存映射关系可缓存其中任一区域数据。在CPU缓存中,各缓存块所属区域依据其所缓存数据块所属内存区域确定。因此,本发明也称在非易失性内存中的区域为持久性区域,如持久性日志区域、持久性数据区域,在易失性缓存中的区域为易失性区域,如易失性日志区域、易失性数据区域。
[0037]本发明实施例的方法,包括以下步骤:持久性内存事务处理缓存管理方法,其特征在于,包括以下步骤:
[0038]在事务开始时,所述事务从非易失性内存中读取原版数据至处理器缓存,并由所述处理器执行所述事务;
[0039]在事务执行过程中,所述事务为产生的新版数据分配空间,并采用缓存窃取写回技术以允许对未提交数据进行持久化;
[0040]在事务提交或中止时,将事务数据或状态强制持久化至非易失性内存;
[0041]在事务数据或状态已持久化至非易失性内存之后,将所述事务数据写回至原数据地址,并采用缓存非强制写回技术不强制已提交数据持久化至非易失性内存;
[0042]其中,事务周期性以强制整体刷回的形式将缓存数据持久化至所述非易失性内存;
[0043]当系统发生故障时,对事务数据进行故障恢复处理。
[0044]需要说明的是,在以非易失性存储器为主存构建的持久性内存中,采用缓存窃取写回技术和缓存非强制写回技术,对CPU缓存中的事务数据放松其持久化至非易失性内存的要求,降低事务数据状态维护和持久化开销。
[0045]在本发明的一个实施例中,所述持久性内存包括易失性处理器缓存和非易失性内存;所述事务数据首先缓存于易失性处理器缓存中,并按照依赖关系的先后顺序写回所述非易失性内存以保证数据的一致性。
[0046]在本发明的一个实施例中,所述持久性内存的缓存窃取写回技术包括:在事务的执行过程中,直接从所述非易失性内存中为事务产生的新版数据分配空间,以避免对数据进行复制操作;对日志区域采用固定格式的数据组织方式进行记录,为所述数据块分配对应元数据以提供系统故障后数据块状态检测,其中,所述元数据块用于记录数据块的描述信息。
[0047]在本发明的一个实施例中,所述持久性内存的缓存窃取写回技术还包括:如果事务中止,在所述元数据中对中止的事务的数据块进行如下标记:对已分配内存空间且已写回非易失性内存的数据块以及对已分配内存空间但未写回非易失性内存的数据块,采用元数据标记为中止事务数据块的方式标记;对尚未分配内存空间的数据块,直接丢弃。
[0048]在本发明的一个实施例中,所述的持久性内存的缓存非强制写回技术包括:在事务提交时,对已提交数据复制其至原版数据位置,如果其在非易失性内存的其余地址空间中存在持久性副本,则允许持久性副本缓存于处理器缓存中;通过周期性强制整体写回处理器缓存中缓存数据的方法延后持久化至非易失性内存。
[0049]在本发明的一个实施例中,非强制写回和强制整体写回,具体包括:在系统故障发生时,如果已提交数据未能及时持久化至非易失性内存,则将其由非易失性内存中其余地址空间的副本进行恢复;在强制写回处理器缓存时
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1