当前位置: 首页 > 专利查询>清华大学专利>正文

基于非易失性主存的高效事务文件系统构建方法技术方案

技术编号:16500044 阅读:64 留言:0更新日期:2017-11-04 11:20
本发明专利技术公开了一种基于非易失性主存的高效事务文件系统构建方法,包括以下步骤:文件系统提供相应的文件操作事务接口;在事务开始时,文件系统给事务分配事务ID;在事务执行时,文件系统将日志区域分割成元数据日志区域和数据日志区域,并针对元数据更新和数据更新采用不同的日志处理方法;在事务提交时,文件系统强制将与事务相关的元数据内容和与事务相关数据日志内容持久化至非易失性主存,并写入提交日志条目代表该事务已完成;已提交的数据日志内容被周期性地写回至文件系统中,数据日志内容的写回采用并发选择写回机制。该方法可以通过文件系统提供的事务接口简化上层应用程序的设计,并可以保证事务处理过程中的高效性和正确性。

Non volatile memory efficient transactional file system construction method based on

The invention discloses a non efficient transactional file system nonvolatile memory based construction method, which comprises the following steps: the file system provides the corresponding file operations interface; at the beginning of the transaction, the file system to the transaction transaction ID distribution; in the transaction execution, the file system will log log data element area is divided into regions and the log data area, and according to the metadata update and data update log by different processing methods; the transaction is committed, the content will be forced to file system metadata associated with the transaction and transaction log data in persistent to nonvolatile memory, and write log entries submitted on behalf of the transaction has been completed; the contents of the log data the submitted is periodically written back to the file system, log data content using the concurrent write back write back selection mechanism. This method can simplify the design of the upper application program through the transaction interface provided by the file system, and ensure the efficiency and correctness in the transaction processing.

【技术实现步骤摘要】
基于非易失性主存的高效事务文件系统构建方法
本专利技术涉及非易失性主存存储
,特别涉及一种基于非易失性主存的高效事务文件系统构建方法。
技术介绍
新兴的快速非易失性存储器(Non-VolatileMemory,NVM)技术,如相变存储器(PhaseChangeMemory,PCM)、自旋矩存储器(Spin-TorqueTransferRAM,STT-RAM)、以及阻变存储器(ResistiveRAM,RRAM),具有非易失性、高访问速度、字节寻址等特性。把这些非易失性存储器连接到主存总线上将产生非易失性主存(Non-VolatileMainMemory,NVMM),并使得存储设备能够具有内存级别的性能。相关技术中的应用程序(例如文本编辑器,传统关系型数据库,以及key-value存储系统等)均需要保证他们的数据一致性。此外,这些应用程序大多数都是在文件系统之上实现。因此,为了使得应用程序能够运行在高速的非易失性主存上,已有不少研究单位或机构提出了基于非易失性主存的文件系统构建方法。然而,已有的非易失性主存文件系统仅仅提供保证文件系统自身元数据或者数据一致性的相关机制,而忽略了对上层应用程序数据一致性的保障,即这些文件系统均不提供任何机制保证上层应用程序的数据一致性。为此,大多数应用程序需要设计并实现自己的一致性保证协议来防止数据丢失或者损坏。然而,威斯康辛大学麦迪逊分校已有研究表明,由于应用程序无法感知下层文件系统的持久性特性,应用程序层实现的一致性协议通常非常复杂并且容易出错。例如,由CPU乱序写导致的乱序持久化操作或者非易失性文件系统中无法保证sector粒度的原子性更新将都会导致应用程序在发生系统错误时仍然丢失或者损坏数据。此外,大部分应用程序使用基于磁盘而优化的日志机制来保证数据一致性,这些机制会进一步损害应用程序运行在非易失性主存上时的性能,因为它们将产生过多的数据拷贝。
技术实现思路
本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术的目的在于提出一种基于非易失性主存的高效事务文件系统构建方法,该方法可以保证事务处理过程中的高效性和正确性。为达到上述目的,本专利技术实施例提出了一种基于非易失性主存的高效事务文件系统构建方法,包括以下步骤:文件系统给上层应用程序提供相应的文件操作事务接口,从而所述上层应用程序利用所述事务接口执行相关事务,以保证应用程序所需的一致性;在事务开始时,所述文件系统给事务分配事务ID,以跟踪和执行应用程序发出的事务操作,并保证事务操作的原子性和持久性;在事务执行时,所述文件系统将日志区域分割成元数据日志区域和数据日志区域,并针对元数据更新和数据更新采用不同的日志处理方法;在事务提交时,所述文件系统强制将与事务相关的元数据内容和与事务相关数据日志内容持久化至非易失性主存,并写入提交日志条目代表该事务已完成;已提交的数据日志内容被周期性地写回至所述文件系统中,数据日志内容的写回采用并发选择写回机制。本专利技术实施例的基于非易失性主存的高效事务文件系统构建方法,文件系统为上层应用程序提供一系列基于文件操作的事务接口。应用程序可以直接利用这些事务接口有选择性地执行相关事务以保证其所需的一致性,而无需单独实现一套一致性保证机制,并且可以保证事务处理过程中的高效性和正确性。另外,根据本专利技术上述实施例的基于非易失性主存的高效事务文件系统构建方法还可以具有以下附加的技术特征:进一步地,在本专利技术的一个实施例中,当发生错误或者故障时,所述文件系统采用快速恢复机制进行系统故障恢复。进一步地,在本专利技术的一个实施例中,对于元数据更新,所述文件系统使用字级别的回滚日志记录方法来记录元数据更新的日志,并且对于数据更新,所述文件系统使用cacheline粒度的重做日志记录方法来记录数据更新的日志。进一步地,在本专利技术的一个实施例中,所述数据日志进一步分离日志头部和日志数据,其中,所述日志头部包括日志元数据,并存储在非易失性主存的全局可见区域,而所述日志数据存放于待定块中,所述待定块的空间由所述文件系统动态分配,所述日志元数据中包含相应指针指向与其对应的待定块。进一步地,在本专利技术的一个实施例中,所述文件系统采用高效的两级易失性索引来检索数据日志区域内已提交但未写回的数据,以有效地跟踪数据日志区域的最新数据。进一步地,在本专利技术的一个实施例中,所述两级易失性索引完全位于DRAM中以提供高效的索引操作,其中,首先给定一个逻辑块号和所述逻辑块号内的cacheline编号,索引将返回包含cacheline最新数据的物理块号,并且所述索引将和同一个逻辑块相关的待定块通过事务提交顺序组成待定链表。进一步地,在本专利技术的一个实施例中,在每个待定块中,所述文件系统使用cacheline位图来识别在事务执行过程中所更新的cacheline。进一步地,在本专利技术的一个实施例中,所述两级易失性索引具体包括以下两层索引:第一层索引,使用Linux内核中的基数树(radixtree)结构将每个文件中所有逻辑块对应的待定链表表头组织成一个基数树结构,以通过给定的逻辑块号,索引出对应该逻辑块号的待定链表表头;第二层索引,根据所述第一层索引得到的待定链表表头,从链表头部开始顺序遍历所述待定链表中的每个待定块,直到在其中一个待定块的cacheline位图中,和所要查询的cacheline编号对应的位显示为1时,退出并返回该待定块的块号,反之,相应位在所述待定链表中所有待定块的cacheline位图中都显示为0,则使用文件系统块索引机制,返回和该查询逻辑块对应的文件系统数据块的块号。进一步地,在本专利技术的一个实施例中,所述并发选择写回机制将数据日志中属于不同逻辑块的已提交待定块并发地写回至所述文件系统中以提高写回操作的并发性,而属于同一逻辑块的不同版本的已提交待定块则在同一组中进行写回处理以保证写回操作的正确性,并且已提交待定块的写回操作采用选择写回算法以减少数据拷贝。进一步地,在本专利技术的一个实施例中,所述选择写回算法为属于同一组已提交的待定块被写回至一个挑选的块中,所述挑选的块从属于该组的所有已提交待定块和与该组相对应的原始数据块中选出,其中该块含有的最新的cacheline数据在以上数据块中最多。本专利技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明本专利技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为根据本专利技术一个实施例的基于非易失性主存的高效事务文件系统构建方法的流程图;图2为根据本专利技术一个实施例的使用事务文件系统接口执行事务的示例图;图3为根据本专利技术一个实施例的事务文件系统的数据布局和事务数据结构图;图4为根据本专利技术一个实施例的日志条目结构在事务执行过程中的状态转换示意图;图5为根据本专利技术一个实施例的文件系统块在事务执行过程中的状态转换示意图;图6为根据本专利技术一个实施例的两级易失性索引结构示意图;图7为根据本专利技术一个实施例的使用选择写回算法进行已提交待定块的写回操作的示意图;以及图8为根据本专利技术一个实施例的日志条目的结构体设计示意图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中本文档来自技高网
...
基于非易失性主存的高效事务文件系统构建方法

【技术保护点】
一种基于非易失性主存的高效事务文件系统构建方法,其特征在于,包括以下步骤:文件系统给上层应用程序提供相应的文件操作事务接口,从而所述上层应用程序利用所述事务接口执行相关事务,以保证应用程序所需的一致性;在事务开始时,所述文件系统给事务分配事务ID,以跟踪和执行应用程序发出的事务操作,并保证事务操作的原子性和持久性;在事务执行时,所述文件系统将日志区域分割成元数据日志区域和数据日志区域,并针对元数据更新和数据更新采用不同的日志处理方法;在事务提交时,所述文件系统强制将与事务相关的元数据内容和与事务相关数据日志内容持久化至非易失性主存,并写入提交日志条目代表该事务已完成;以及已提交的数据日志内容被周期性地写回至所述文件系统中,数据日志内容的写回采用并发选择写回机制。

【技术特征摘要】
1.一种基于非易失性主存的高效事务文件系统构建方法,其特征在于,包括以下步骤:文件系统给上层应用程序提供相应的文件操作事务接口,从而所述上层应用程序利用所述事务接口执行相关事务,以保证应用程序所需的一致性;在事务开始时,所述文件系统给事务分配事务ID,以跟踪和执行应用程序发出的事务操作,并保证事务操作的原子性和持久性;在事务执行时,所述文件系统将日志区域分割成元数据日志区域和数据日志区域,并针对元数据更新和数据更新采用不同的日志处理方法;在事务提交时,所述文件系统强制将与事务相关的元数据内容和与事务相关数据日志内容持久化至非易失性主存,并写入提交日志条目代表该事务已完成;以及已提交的数据日志内容被周期性地写回至所述文件系统中,数据日志内容的写回采用并发选择写回机制。2.如权利要求1所述的基于非易失性主存的高效事务文件系统构建方法,其特征在于,当发生错误或者故障时,所述文件系统采用快速恢复机制进行系统故障恢复。3.如权利要求1所述的基于非易失性主存的高效事务文件系统构建方法,其特征在于,对于元数据更新,所述文件系统使用字级别的回滚日志记录方法来记录元数据更新的日志,并且对于数据更新,所述文件系统使用cacheline粒度的重做日志记录方法来记录数据更新的日志。4.如权利要求1所述的基于非易失性主存的高效事务文件系统构建方法,其特征在于,所述数据日志进一步分离日志头部和日志数据,其中,所述日志头部包括日志元数据,并存储在非易失性主存的全局可见区域,而所述日志数据存放于待定块中,所述待定块的空间由所述文件系统动态分配,所述日志元数据中包含相应指针指向与其对应的待定块。5.如权利要求1所述的基于非易失性主存的高效事务文件系统构建方法,其特征在于,所述文件系统采用高效的两级易失性索引来检索数据日志区域内已提交但未写回的数据,以有效地跟踪数据日志区域的最新数据。6.如权利要求5所述的基于非易失性主存的高效事务文件系统构建方法,其特征在于,所述两级易失性索引完全位于DRAM中以提...

【专利技术属性】
技术研发人员:舒继武欧佳欣陆游游
申请(专利权)人:清华大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1