跟踪索引节点的访问模式以及预提取索引节点制造技术

技术编号:22334411 阅读:33 留言:0更新日期:2019-10-19 13:05
本文公开的是跟踪索引节点的访问模式并发出预读指令以将索引节点预提取到存储器中的方法、系统和过程。确定元数据存储区域中元数据单元的位置。确定对应于当前元数据读取操作的元数据存储区域中的另一位置。使用元数据单元的位置和另一位置来确定是否可执行元数据预读操作。响应于确定可执行元数据预读操作而发出元数据预读操作。此外,访问索引节点并且确定索引节点的目录。另外确定目录的条目是否存在于全局索引节点列表中。如果条目存在于全局索引节点列表中,则确定目录的文件结构为顺序的还是非顺序的。如果条目未存在于全局索引节点列表中,则在全局索引节点列表中添加目录的新条目。

Tracking access patterns of inodes and pre extracting inodes

【技术实现步骤摘要】
【国外来华专利技术】跟踪索引节点的访问模式以及预提取索引节点
本公开涉及数据访问。具体而言,本公开涉及跟踪索引节点的访问模式、以及发出索引节点预读指令以预提取索引节点。相关技术描述文件系统出于计算目的用于控制如何存储和检索数据(例如,用于存储和执行应用程序)。文件系统中的数据对象(例如,文件、目录等)具有一个或多个索引节点。索引节点是数据结构,该数据结构用于标识属于文件系统中数据对象的数据。索引节点存储属性(例如,元数据)和数据对象的数据的磁盘块位置。访问文件系统中的文件需要从磁盘(例如,从非易失性存储单元)读取文件的索引节点。诸如备份、定期扫描、管理操作等的数据操作通常访问磁盘上的多个索引节点。从磁盘读取此类“磁盘上”索引节点可不利地影响应用程序性能。例如,如果底层的磁盘缓慢,则从磁盘读取磁盘上索引节点可导致用所需数据为应用程序提供服务之前不合理和/或显著的输入/输出(I/O)等待时间。文件的内容可被载入存储器(例如,随机存取存储器(RAM)),使得当随后访问文件时,从RAM而非磁盘(例如,硬盘驱动器(HDD))读取文件的内容。然而,将文件的内容载入存储器需要索引节点,该索引节点与要从磁盘访问的文件内容对应。
技术实现思路
本文公开的是跟踪索引节点的访问模式以通过将索引节点预提取到存储器中来加快数据访问的方法、系统和过程。一种此类方法涉及确定元数据存储区域中元数据单元的位置,该数据存储区域位于非易失性存储单元中。该方法确定与当前元数据读取操作对应的元数据存储区域中的另一位置,并且使用元数据单元的位置以及另一位置确定是否可执行元数据预读操作。响应于确定可执行元数据预读操作,该方法发出元数据预读操作。在某些实施方案中,元数据存储区域包括磁盘上索引节点。磁盘上索引节点包括元数据单元并且为结构化文件的部分。结构化文件存储在非易失性存储单元中。该方法创建与结构化文件对应的核心内索引节点并将元数据单元的位置存储在核心内索引节点中。在该示例中,元数据单元是最后读取的元数据块,并且元数据单元的位置标识并包括元数据单元的末端偏移。在一些实施方案中,确定是否可执行元数据预读操作包括访问元数据单元的末端偏移并确定另一位置是否邻近末端偏移。在该示例中,发出元数据预读操作包括通过将末端偏移替换为由元数据预读操作读取的另一元数据单元(例如,另一最后读取的元数据块)的另一末端偏移来更新末端偏移,并且如果另一位置未邻近末端偏移,则通过将末端偏移替换为当前元数据读取操作的末端偏移来更新末端偏移。在其他实施方案中,该方法响应于输入/输出(I/O)操作而拦截用于读取一个或多个磁盘上索引节点的命令。在该示例中,该方法通过将发出的预读值以及命令中的块总计进行比较,分析元数据预读操作中发出的元数据预读值。该方法等待I/O操作完成并且/或者发出异步元数据预读指令。在某些实施方案中,确定I/O操作是否完成包括在I/O操作完成的情况下生成队列。队列包括未包括在异步元数据预读指令中的块总计的剩余元数据块。如果I/O操作未完成,则该方法更新元数据预读操作中的块总计。一些实施方案涉及访问索引节点、确定索引节点(例如,磁盘上索引节点)的目录、以及确定目录的条目是否存在于全局索引节点列表中。如果条目存在于全局索引节点列表中,则该方法确定目录的文件结构是为顺序的还是非顺序的,并且如果条目未存在于全局索引节点列表中,则该方法会在全局索引节点列表中为目录添加新条目。在某些实施方案中,确定目录是否存在于全局索引节点列表中包括在全局索引节点列表中搜索条目。如果目录的文件结构为顺序,则该方法确定目录是否包括顺序标记。如果目录包括顺序标记,则该方法为目录中的索引节点发出元数据预读操作。如果父目录的文件结构为非顺序的,则该方法提取目录的索引节点列表并为索引节点列表上的索引节点发出元数据预读操作。在一些实施方案中,该方法响应于输入/输出(I/O)操作而拦截用于读取一个或多个磁盘上索引节点的命令。在该示例中,该方法通过将发出的元数据预读值以及命令中的块总计进行比较,分析元数据预读操作中发出的元数据预读值。该方法等待I/O操作完成并且/或者发出异步元数据预读指令。在其他实施方案中,确定I/O操作是否完成包括在I/O操作完成的情况下生成队列。队列包括未包括在异步元数据预读指令中的块总计的剩余元数据块。如果I/O操作未完成,则该方法更新元数据预读操作中的块总计。以上内容是概述,因此必然包含对细节的简化、概括和省略;因此本领域的技术人员将会理解,该概述仅是说明性的,并不意图进行任何限制。如由权利要求单独定义的那样,本公开的其他方面、专利技术特征和优点将在以下阐述的非限制性详细描述中变得显而易见。附图说明通过参考附图,可以更好地理解本公开,并且其多个目的、特征和优点对于本领域的技术人员而言是显而易见的。图1A是根据本公开的一个实施方案的跟踪索引节点和预提取索引节点的访问模式的系统的框图。图1B是根据本公开的一个实施方案的结构化文件的框图。图1C是根据本公开的一个实施方案的结构化文件和核心内索引节点的框图。图2A是根据本公开的一个实施方案的跟踪索引节点的访问模式并发出元数据预读指令的系统的框图。图2B是根据本公开的一个实施方案的索引节点的偏移元数据的框图。图2C是根据本公开的一个实施方案的示出全局索引节点列表/父目录列表的内容的表格。图2D是根据本公开的一个实施方案的目录访问跟踪器的框图。图2E是根据本公开的一个实施方案的元数据预读发生器的框图。图3A是根据本公开的一个实施方案的带顺序索引节点的目录的框图。图3B是根据本公开的一个实施方案的带非顺序索引节点的目录的框图。图3C是根据本公开的一个实施方案的实现全局索引节点列表的高速缓存的框图。图4A是根据本公开的一个实施方案的示出了用于执行索引节点预提取的过程的流程图。图4B是根据本公开的一个实施方案的示出了用于存储与磁盘上索引节点相关的偏移元数据的过程的流程图。图5A是根据本公开的一个实施方案的示出了用于确定目录的文件结构的过程的流程图。图5B是根据本公开的一个实施方案的示出了用于为磁盘上索引节点发出元数据预读指令的过程的流程图。图6A是根据本公开的一个实施方案的示出了用于处理与索引节点预提取相关的输入/输出(I/O)操作的过程的流程图。图6B是根据本公开的一个实施方案的示出了用于处理与索引节点预提取相关的I/O操作的过程的流程图。图7A是根据本公开的一个实施方案的示出了用于处理磁盘上索引节点的访问的过程的流程图。图7B是根据本公开的一个实施方案的示出了用于处理对访问磁盘上索引节点的请求的过程的流程图。图8是根据本公开的一个实施方案的计算系统的框图,示出了如何可在软件中实现访问模式跟踪器和元数据预读发生器。图9是根据本公开的一个实施方案的联网系统的框图,示出了各种计算设备如何可经由网络进行通信。虽然本公开容许各种修改和替代形式,但是在附图和详细描述中作为示例提供了本公开的特定实施方案。应当理解,附图和详细描述并非旨在将本公开限制于所公开的特定形式。相反,其目的在于覆盖落入由所附权利要求书限定的本公开的实质和范围内的所有修改形式、等同物和替代物。具体实施方式介绍文件系统(例如,Unix文件系统)用于组织数据并控制数据的存储和检索方式。文件系统负责组织数本文档来自技高网...

【技术保护点】
1.一种方法,包括:确定元数据存储区域中元数据单元的位置,其中所述元数据存储区域位于非易失性存储单元中;确定所述元数据存储区域中的另一位置,其中所述另一位置对应于当前元数据读取操作;使用所述元数据单元的所述位置和所述另一位置来确定是否可执行元数据预读操作;以及响应于确定可执行所述元数据预读操作而发出所述元数据预读操作。

【技术特征摘要】
【国外来华专利技术】2016.09.29 US 15/279694;2016.09.29 US 15/2797211.一种方法,包括:确定元数据存储区域中元数据单元的位置,其中所述元数据存储区域位于非易失性存储单元中;确定所述元数据存储区域中的另一位置,其中所述另一位置对应于当前元数据读取操作;使用所述元数据单元的所述位置和所述另一位置来确定是否可执行元数据预读操作;以及响应于确定可执行所述元数据预读操作而发出所述元数据预读操作。2.根据权利要求1所述的方法,其中所述元数据存储区域包括多个磁盘上索引节点,其中所述磁盘上索引节点包括所述元数据单元,所述磁盘上索引节点为结构化文件的部分,并且所述结构化文件存储在所述非易失性存储单元中。3.根据权利要求2所述的方法,还包括:创建核心内索引节点,其中所述核心内索引节点对应于所述结构化文件;以及在所述核心内索引节点中存储所述元数据单元的所述位置,其中所述元数据单元为最后读取的元数据块,并且所述元数据单元的所述位置标识所述元数据单元的末端偏移。4.根据权利要求3所述的方法,其中确定是否可执行所述元数据预读操作,包括访问所述元数据单元的所述末端偏移,以及确定所述另一位置是否邻近所述末端偏移。5.根据权利要求3所述的方法,其中发出所述元数据预读操作,包括通过将所述末端偏移替换为由所述元数据预读操作读取的另一元数据单元的另一末端偏移来更新所述末端偏移,其中所述另一元数据单元为另一最后读取的元数据块。6.根据权利要求3所述的方法,还包括:如果所述另一位置未邻近所述末端偏移,则通过将所述末端偏移替换为当前元数据读取操作的末端偏移来更新所述末端偏移。7.根据权利要求2所述的方法,还包括:拦截用于读取一个或多个磁盘上索引节点的命令,其中所述一个或多个磁盘上索引节点为所述多个磁盘上索引节点的部分,所述拦截响应于输入/输出(I/O)操作而执行,并且所述I/O操作导致所述命令;在所述元数据预读操作中分析所发出的元数据预读值,其中所述分析包括将所发出的元数据预读值和所述命令中的块总计进行比较;如果所述分析指示所述I/O操作应当完成,则等待所述I/O操作完成;以及如果所述分析指示可发出异步元数据预读指令,则发出异步元数据预读指令。8.根据权利要求7所述的方法,还包括:确定所述I/O操作是否完成;如果所述I/O操作完成则生成队列,其中所述队列包括所述块总计的一个或多个剩余元数据块,并且所述一个或多个剩余元数据块未包括在所述异步元数据预读指令中;以及如果所述I/O操作未完成,则更新所述元数据预读操作中的所述块总计。9.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括程序指令,所述程序指令能够执行以:确定元数据存储区域中元数据单元的位置,其中所述元数据存储区域位于非易失性存储单元中;确定所述元数据存储区域中的另一位置,其中所述另一位置对应于当前元数据读取操作;使用所述元数据单元的所述位置和所述另一位置来确定是否可执行元数据预读操作;以及响应于确定可执行所述元数据预读操作而发出所述元数据预读操作。10.根据权利要求9所述的非暂态计算机可读存储介质,其中所述元数据存储区域包括多个磁盘上索引节点,其中所述磁盘上索引节点包括所述元数据单元,所述磁盘上索引节点为结构化文件的部分,并且所述结构化文件存储在所述非易失性存储单元中。11.根据权利要求10所述的非暂态计算机可读存储介质,还包括:创建核心内索引节点,其中所述核心内索引节点对应于所述结构化文件;以及在所述核心内索引节点中存储所述元数据单元的所述位置,其中所述元数据单元为最后读取的元数据块,并且所述元数据单元的所述位置标识所述元数据单元的末端偏移。12.根据权利要求11所述的非暂态计算机可读存储介质,其中确定是否可执行所述元数据预读操作,包括访问所述元数据单元的所述末端偏移,以及确定所述另一位置是否邻近所述末端偏移。13.根据权利要求12所述的非暂态计算机可读存储介质,其中发出所述元数据预读操作,包括如果所述另一位置邻近所述末端偏移,则通过将所述末端偏移替换为由所述元数据预读操作读取的另一元数据单元的另一末端偏移来更新所述末端偏移,其中所述另一元数据单元为另一最后读取的元数据块;以及如果所述另一位置未邻近所述末端偏移,则通过将所述末端偏移替换为当前元数据读取操作的末端偏移来更新所述末端偏移。14.根据权利要求10所述的非暂态计算机可读存储介质,还包括:拦截用于读取一个或多个磁盘上索引节点的命令,其中所述一个或多个磁盘上索引节点为所述多个磁盘上索引节点的部分,所述拦截响应于输入/输出(I/O)操作而执行,并且所述I/O操作导致所述命令;在所述元数据预读操作中分析发出的元数据预读值,其中所述分析包括将所发出的元数据预读值和所述命令中的块总计进行比较;如果所述分析指示所述I/O操作应当完成,则等待所述I/O操作完成;如果所述分析指示可发出异步元数据预读指令,则发出异步元数据预读指令;确定所述I/O操作是否完成;如果所述I/O操作完成则生成队列,其中所述队列包括所述块总计的一个或多个剩余元数据块,并且所述一个或多个剩余元数据块未包括在所述异步元数据预读指令中;以及如果所述I/O操作未完成,则更新所述元数据预读操作中的所述块总计。15.一种系统,包括:一个或多个处理器;和存储器,所述存储器耦接到所述一个或多个处理器,其中所述存储器存储能够由所述一个或多个处理器执行的程序指令,所述程序指令用于:确定元数据存储区域中元数据单元的位置,其中所述元数据存储区域位于非易失性存储单元中;确定所述元数据存储区域中的另一位置,其中所述另一位置对应于当前元数据读取操作;使用所述元数据单元的所述位置和所述另一位置来确定是否可执行元数据预读操作;以及响应于确定可执行所述元数据预读操作而发出所述元数据预读操作。16.根据权利要求15所述的系统,其中所述元数据存储区域包括多个磁盘上索引节点,其中所述磁盘上索引节点包括所述元数据单元,所述磁盘上索引节点为结构化文件的部分,并且所述结构化文件存储在所述非易失性存储单元中。17.根据权利要求16所述的系统,还包括:创建核心内索引节点,其中所述核心内索引节点对应于所述结构化文件;以及在所述核心内索引节点中存储所述元数据单元的所述位置,其中所述元数据单元为最后读取的元数据块,并且所述元数据单元的所述位置标识所述元数据单元的末端偏移。18.根据权利要求17所述的系统,其中确定是否可执行所述元数据预读操作,包括访问所述元数据单元的所述末端偏移,以及确定所述另一位置是否邻近所述末端偏移。19.根据权利要求18所述的系统,其中发出所述元数据预读操作,包括如果所述另一位置邻近所述末端偏移,则通过将所述末端偏移替换为由所述元数据预读操作读取的另一元数据单元的另一末端偏移来更新所述末端偏移,其中所述另一元数据单元为另一最后读取的元数据块;以及如果所述另一位置未邻近所述末端偏移,则通过将所述末端偏移替换为当前元数据读取操作的末端偏移来更新所述末端偏移。20.根据权利要求16所述的系统,...

【专利技术属性】
技术研发人员:B·帕特尔F·詹姆斯M·科塔里A·班纳吉
申请(专利权)人:华睿泰科技有限责任公司
类型:发明
国别省市:美国,US

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

1