首页> 中国专利> 基于文件属性的缓存管理方法和装置

基于文件属性的缓存管理方法和装置

摘要

提供了一种基于文件属性的缓存管理方法和装置,所述基于文件属性的缓存管理方法包括:获取当前打开的至少一个文件的属性;从所述至少一个文件的属性中提取与预定分析目标相关的第一属性子集;基于第一属性子集确定相应的待缓存的通用闪存存储(UFS)装置的存储器区域的区域号;基于所述区域号将所述相应的待缓存的UFS装置的存储器区域的数据缓存到缓冲存储器中。

著录项

  • 公开/公告号CN113268201A

    专利类型发明专利

  • 公开/公告日2021-08-17

    原文格式PDF

  • 申请/专利号CN202110521854.4

  • 发明设计人 陈忠刚;

    申请日2021-05-13

  • 分类号G06F3/06(20060101);

  • 代理机构11286 北京铭硕知识产权代理有限公司;

  • 代理人于翔;曾世骁

  • 地址 710000 陕西省西安市高新区洨河北路1999号

  • 入库时间 2023-06-19 12:16:29

说明书

技术领域

本申请涉及存储领域,更具体地,涉及一种基于文件属性的缓存管理方法和装置。

背景技术

在现有技术中,通常在通用闪存存储(UFS)驱动层增加通用闪存存储主机性能增强(UFS HPB)缓冲存储器。UFS驱动层可通过一些简单的加入算法和淘汰算法来提升UFS装置的读性能。这里,加入算法可以是诸如每次缓存或者达到一定的访问阈值才进入缓存,淘汰算法可以是诸如最近最少使用(LRU)、最不常使用(LFU)等。

缓冲存储器命中率的高低取决于加入和淘汰两种算法的搭配,然而在现有技术中,如上所述的加入到缓冲存储器的加入算法过于简单,加入的缓存的数据不合适,又会导致频繁的淘汰,从而造成对缓存资源的利用率不高以及缓存命中率的降低。

发明内容

根据本发明的示例性实施例,提供了一种基于文件属性的缓存管理方法,包括:获取当前打开的至少一个文件的属性;从所述至少一个文件的属性中提取与预定分析目标相关的第一属性子集;基于第一属性子集确定相应的待缓存的通用闪存存储(UFS)装置存储器区域的区域号;基于所述区域号将所述相应的待缓存的UFS装置存储器区域的数据缓存到缓冲存储器中。因此,可实现动态文件访问模式自动识别和可变负载下的自动UFS装置存储器区域管理。

文件的属性可包括文件自身属性和/或文件事件属性。因此,在考虑上述两种文件属性的情况下,可使淘汰算法更准确并更符合系统当前文件状况。

确定相应的待缓存的UFS装置存储器区域的区域号的步骤可包括:基于第一属性子集确定相应的UFS装置存储器区域的第二属性子集;基于第二属性子集将所述相应的UFS装置存储器区域聚类到至少一个类别;将聚类中心值高的预定数量个类别中的UFS装置存储器区域的区域号确定为所述相应的待缓存的UFS装置存储器区域的区域号。

所述预定分析目标可以是文件读取热度。因此,在考虑文件读取热度的情况下对缓冲存储器中缓存的缓冲存储器区域号进行淘汰,相比于现有的淘汰算法提高了缓存资源的利用率以及缓存命中率。

第二属性子集可以包括UFS装置存储器区域中文件的个数、UFS装置存储器区域中文件的读输入输出(IO)次数和UFS装置存储器区域中平均文件大小的缓存概率估计。

缓冲存储器可以是通用闪存存储主机性能增强(UFS HPB)缓冲存储器。

将所述相应的待缓存的UFS装置存储器区域的数据缓存到缓冲存储器中的步骤可包括:基于所述相应的待缓存的UFS装置存储器区域的区域号生成区域预取命令并将区域预取命令发送到UFS装置;基于区域预取命令将所述数据发送到UFS驱动层;将所述数据存储到UFS HPB缓冲存储器中。因此,可在不修改应用甚至Linux内核的情况下(在使用包含HPB特性的UFS驱动层的情况下,不需要任何改动),自动管理针对各种工作负载的UFS装置存储器区域预取工作;此外,当后续请求的LBA地址区间刚好落到预取的UFS装置存储器区域中时,则HPB缓存命中,直接通过UFS装置存储器区域信息中的物理地址(PPN)访问用户数据,大大缩短了获取物理地址的时间开销,从而提升了UFS装置的读性能和用户体验。

将所述数据缓存到缓冲存储器中的步骤可包括:在预定情况下,基于预定淘汰算法使用所述数据来淘汰UFS HPB缓冲存储器中已缓存的数据。

可周期性地获取当前打开的至少一个文件的属性。

根据本发明的另一示例性实施例,提供了一种基于文件属性的缓存管理装置,包括:文件监视单元,用于获取当前打开的至少一个文件的属性;文件属性分析单元,用于从所述至少一个文件的属性中提取与预定分析目标相关的第一属性子集;区域确定单元,用于基于第一属性子集确定相应的待缓存的通用闪存存储(UFS)装置存储器区域的区域号;缓存单元,基于所述区域号将所述相应的待缓存的UFS装置存储器区域的数据存储到缓冲存储器中。

文件的属性可包括文件自身属性和/或文件事件属性。

区域确定单元还可进行以下操作:基于第一属性子集确定相应的UFS装置存储器区域的第二属性子集;基于第二属性子集将所述相应的UFS装置存储器区域聚类到至少一个类别;将聚类中心值高的预定数量个类别中的UFS装置存储器区域的区域号确定为所述相应的待缓存的UFS装置存储器区域的区域号。

所述预定分析目标可以是文件读取热度。

第二属性子集可以包括UFS装置存储器区域中文件的个数、UFS装置存储器区域中文件的读输入输出(IO)次数和UFS装置存储器区域中平均文件大小的缓存概率估计。

缓冲存储器可以是通用闪存存储主机性能增强(UFS HPB)缓冲存储器。

缓存单元还可进行以下操作:基于所述相应的待缓存的UFS装置存储器区域的区域号在UFS HPB缓冲存储器生成区域预取命令并将区域预取命令发送到UFS装置;基于区域预取命令将所述数据发送到UFS驱动层;将所述数据存储到UFS HPB缓冲存储器中。

缓存单元还可进行以下操作:在预定情况下,基于预定淘汰算法使用所述数据来淘汰UFS HPB缓冲存储器中已缓存的数据。

文件监视单元可周期性地获取当前打开的至少一个文件的属性。

根据本发明的另一示例性实施例,提供了一种电子设备,包括存储器和处理器,存储器上存储有计算机可执行指令,当所述指令由处理器执行时,执行前述方法。

根据本发明的另一示例性实施例,提供了一种计算机可读介质,其上存储有计算机可执行指令,当执行所述指令时,执行前述方法。

将在接下来的描述中部分阐述本发明总体构思另外的方面和/或优点,还有一部分通过描述将是清楚的,或者可以经过本发明总体构思的实施而得知。

附图说明

通过下面结合附图进行的详细描述,本发明的上述和其它目的和特点将会变得更加清楚,其中:

图1是示出根据本发明示例性实施例的基于文件属性的缓存管理方法的流程图;

图2是示出根据本发明示例性实施例的访问模式的示意图;

图3是示出根据本发明示例性实施例的聚类的示意图;

图4是示出根据本发明示例性实施例的长短期记忆(LSTM,Long Short-TermMemory)网络的示意图;

图5是示出根据本发明示例性实施例的UFS装置存储器区域与文件的对应关系的示意图;

图6是示出根据本发明示例性实施例的基于文件属性的缓存管理装置的框图;

图7是示出根据本发明示例性实施例的基于文件属性的缓存管理装置和缓冲存储器的示意图。

具体实施方式

现将详细参照本发明的实施例,所述实施例的示例在附图中示出,其中,相同的标号始终指的是相同的部件。以下将通过参照附图来说明所述实施例,以便解释本发明。

在现有技术的UFS装置和操作系统(诸如,Linux内核等)组成的系统中,操作系统可包括应用、虚拟文件系统(VFS)、原始块I/O、文件系统、块层和UFS驱动层等,其中,应用可通过原始块I/O以原始数据块的形式访问UFS装置或可通过文件系统以文件的形式访问UFS装置,以对UFS装置中的文件进行各种操作;VFS是针对不同文件系统的用于管理文件的抽象统一接口,并可通过VFS查询到UFS装置中的文件的索引节点(inode);块层为针对通用装置的公共模块,可用于对UFS装置进行公共操作;UFS驱动层通过各种算法来管理UFS HPB缓冲存储器。本发明即聚焦于对将数据缓存到UFS HPB缓冲存储器的算法进行改进,即,通过挖掘数据特征来动态地生成进入UFS HPB缓冲存储器的算法策略,下面进行其详细描述。

图1是示出根据本发明示例性实施例的基于文件属性的缓存管理方法的流程图。

参照图1,在步骤S110,可获取当前打开的至少一个文件的属性。这里,文件的属性可包括文件自身属性和文件事件属性中的至少一个,并且可创建包括文件自身属性和文件事件属性中的至少一个的文件属性表,并可将当前打开的至少一个文件的属性记录在该文件属性表中。此外,可对当前打开的至少一个文件进行监视并更新在文件属性表中的属性。

更具体地,每个文件均可对应一个索引节点(inode),该索引节点存储与文件自身属性相关的信息,诸如,文件的字节数、文件拥有者的用户ID、文件的群组ID、文件的读、写、执行权限、文件的时间戳(诸如,ctime,可表示inode上一次变动的时间;mtime,可表示文件内容上一次变动的时间;atime,可表示文件上一次打开的时间)、文件数据块的位置等,但本发明不限于此。可通过操作系统中的VFS查询到UFS装置中的文件的inode。此外,仅作为示例而非限制,文件事件属性可包括如下事件:

IN_ACCESS/*文件被访问*/

IN_MODIFY/*文件被修改*/

IN_ATTRIB/*元数据改变*/

IN_CLOSE_WRITE/*可写文件被关闭*/

IN_CLOSE_NOWRITE/*不可写文件被关闭*/

IN_OPEN/*文件被打开*/

IN_MOVED_FROM/*文件从…移动*/

IN_MOVED_TO/*文件被移动到*/

IN_CREATE/*子文件被创建*/

IN_DELETE/*子文件被删除*/

IN_DELETE_SELF/*自身被删除*/

IN_MOVE_SELF/*自身被移动*/

此外,由于索引节点号与文件是一一对应的,因此可将索引节点号用作上述文件属性表中的ID。表1示出根据本发明示例性实施例的文件属性表,应注意,虽然下表1中示出的文件属性表仅包括文件事件属性,但本发明不限于此。

[表1]

在步骤S120,可从所述至少一个文件的属性中提取与预定分析目标相关的第一属性子集。仅作为示例而非限制,所述预定分析目标可以为文件读取热度、文件修改热度等,第一属性子集可以为所述至少一个文件的属性的子集,包含诸如打开、访问、修改、关闭、删除等属性(仅作为示例而非限制,可使用Linux内核提供的工具或其他方法从inode获取)。图2是示出根据本发明示例性实施例的访问模式的示意图,这里,第一属性子集可反映文件访问模式,如图2所示。

在步骤S130,可基于第一属性子集确定相应的待缓存的UFS装置存储器存储器区域的区域号。

更具体地,确定相应的待缓存的UFS装置存储器存储器区域的区域号的步骤可进一步包括:基于第一属性子集确定相应的UFS装置存储器区域的第二属性子集,基于第二属性子集将所述相应的UFS装置存储器区域聚类到至少一个类别,并将聚类中心值高的预定数量个类别中的UFS装置存储器区域的区域号确定为相应的待缓存的UFS装置存储器区域的区域号。这里,仅作为示例而非限制,所述预定分析目标可以为文件读取热度,并且可通过使用K均值算法来进行聚类的步骤。此外,与针对文件属性的第一属性子集不同,第二属性子集为针对UFS装置存储器区域的属性,上述基于第一属性子集确定第二属性子集的步骤实际上就是将文件属性转换为存储文件的UFS装置存储器区域的属性(即,UFS装置存储器的各个区域中存储的文件的属性),并且第二属性子集可以包括UFS装置存储器区域中文件的个数、UFS装置存储器区域中文件的读输入输出(IO)次数和UFS装置存储器区域中平均文件大小的缓存概率估计e

图3是示出根据本发明示例性实施例的聚类的示意图。下面将参照图3给出上面描述的聚类的示例。假设第二属性子集包括如上所述的属性,即,UFS装置存储器区域中文件的个数、UFS装置存储器区域中文件的读输入输出(IO)次数和UFS装置存储器区域中平均文件大小的缓存概率估计。从而,UFS装置存储器区域可具有各自的如上所述的三种属性。随后,基于UFS装置存储器区域的这些属性对UFS装置存储器区域进行聚类操作,假设如图3所示得到四个类别,即,类别1、类别2、类别3和类别4(这里,每个类别可对上述三个属性进行不同的限定,诸如,类别1可包括UFS装置存储器区域中文件的个数大于第一预定值、UFS装置存储器区域中文件的读输入输出(IO)次数大于第二预定值并且UFS装置存储器区域中平均文件大小的缓存概率估计大于第三预定值的UFS装置存储器区域),如果预定数量个类别(诸如,类别1和类别2)的聚类中心值较高,则可将类别1和类别2中的UFS装置存储器区域(如方框所示)的区域号确定为相应的待缓存的UFS装置存储器区域的区域号。应注意,如上所述的第二属性子集中的属性数量、类别的预定数量等等均为示例,本领域技术人员可根据实际需要进行改变。

另一方面,应了解,除了聚类之外还可采用各种方式来确定文件读取热度高的UFS装置存储器区域的区域号,诸如,采用预测的方式。图4是示出根据本发明示例性实施例的LSTM网络的示意图。如图4所示,输入为T时刻被访问的UFS装置存储器区域的序列,输出为S时刻后的K个UFS装置存储器区域的序列,即,将过去预定时间窗口内的UFS装置存储器区域的访问序列(序列中的元素值为三维向量,诸如,UFS装置存储器区域中文件的个数、UFS装置存储器区域中文件的读输入输出(IO)次数和UFS装置存储器区域中平均文件大小的缓存概率估计e

返回图1,在步骤S140,可基于所述区域号将所述相应的待缓存的UFS装置存储器区域的数据缓存到缓冲存储器中。这里,基于所述区域号所述相应的待缓存的UFS装置存储器区域的数据可以理解为所述区域号对应的UFS装置存储器区域的地址信息。诸如,UFS装置存储器区域的物理地址与逻辑地址的映射表(mapping table)。

更具体地,仅作为示例而非限制,缓冲存储器可以是通用闪存存储主机性能增强(UFS HPB)缓冲存储器。此外,将所述相应的待缓存的UFS装置存储器区域的数据缓存到缓冲存储器中的步骤可进一步包括:由UFS驱动层基于所述相应的待缓存的UFS装置存储器区域的区域号在UFS HPB缓冲存储器生成区域预取命令并将区域预取命令发送到UFS装置;在接收到预取命令后,可由UFS装置基于区域预取命令将所述数据发送到UFS驱动层;可由UFS驱动层将所述数据存储到UFS HPB缓冲存储器中。此外,在预定情况下(诸如,当缓冲存储器已满或缓冲存储器中已缓存的UFS装置存储器区域号达到上限时),可将相应的待缓存的UFS装置存储器区域的区域号(可采用区域列表的形式)发送到UFS驱动层,并由UFS驱动层基于预定淘汰算法使用所述数据来淘汰UFS HPB缓冲存储器中已缓存的数据。这里,仅作为示例而非限制,预定淘汰算法可以是最近最少使用(LRU)和最不常使用(LFU)中的至少一个。此外,仅作为示例而非限制,可由UFS驱动层中的HPB驱动来执行上述由UFS驱动层执行的操作。

此外,在上述步骤中,仅作为示例而非限制,可通过如下方式获知文件所对应的UFS装置存储器区域的区域号。下表2是示出诸如安卓系统的文件大小分布的统计表。

[表2]

如上表2所示,通过对诸如安卓系统上的文件大小的统计分析表明,99%的文件大小小于4M。此外,UFS装置存储器区域的大小可以存储16M的UFS物理页号(PPN)信息,所以UFS装置存储器区域和文件是多对一的关系。因此,可针对每个打开的文件建立文件逻辑区块地址(LBA)与UFS装置存储器区域之间的对应关系,并可周期性地进行维护。图5是示出根据本发明示例性实施例的UFS装置存储器区域与文件的对应关系的示意图。如图5所示,诸如,UFS装置存储器区域region0对应的LBA区间包含了两个文件file1和file2。

此外,由于打开的文件会随着用户的使用和时间而发生变化,故可保持对打开的文件的监控,周期性地获取当前打开的至少一个文件的属性,或者可每隔预定时间重复执行步骤S110~S120。

图6是示出根据本发明示例性实施例的基于文件属性的缓存管理装置的框图。图7是示出根据本发明示例性实施例的基于文件属性的缓存管理装置和缓冲存储器的示意图。

参照图6,根据本发明示例性实施例的基于文件属性的缓存管理装置可包括文件监视单元610、文件属性分析单元620、区域确定单元630和缓存单元640。

文件监视单元610可获取当前打开的至少一个文件的属性。这里,可由文件监视单元610来创建如上所述的文件属性表,并将打开的文件的信息记录在文件属性表中。文件监视单元可周期性地获取当前打开的至少一个文件的属性。

文件属性分析单元620可从所述至少一个文件的属性中提取与预定分析目标相关的第一属性子集。这里,可由文件属性分析单元620维护如上所述的文件属性表。

区域确定单元630可基于第一属性子集确定相应的待缓存的UFS装置存储器区域的区域号。更具体地,区域确定单元630还可进行以下操作:基于第一属性子集确定相应的UFS装置存储器区域的第二属性子集,基于第二属性子集将所述相应的UFS装置存储器区域聚类到至少一个类别,并将聚类中心值高的预定数量个类别中的UFS装置存储器区域的区域号确定为相应的待缓存的UFS装置存储器区域的区域号。

缓存单元640可基于所述区域号将所述相应的待缓存的UFS装置存储器区域的数据缓存到缓冲存储器中。更具体地,缓存单元640可进行以下操作:基于所述相应的待缓存的UFS装置存储器区域的区域号生成区域预取命令并将区域预取命令发送到UFS装置;基于区域预取命令将所述数据发送到UFS驱动层;将所述数据存储到UFS HPB缓冲存储器中。此外,在预定情况下,缓存单元640还可基于预定淘汰算法使用所述数据来淘汰UFS HPB缓冲存储器中已缓存的数据。应注意,缓存单元640可以为根据本发明示例性实施例的基于文件属性的缓存管理装置的可选单元。如图7所示,在UFS HPB缓冲存储器的情况下,可由UFS驱动层来实现其相应的功能。

此外,根据本发明示例性实施例的基于文件属性的缓存管理装置还可包括其它单元来分别实现与上述根据本发明示例性实施例的基于文件属性的缓存管理方法的其它步骤相应的功能。例如,如图7所示,根据本发明示例性实施例的基于文件属性的缓存管理装置还可包括用于建立LBA与UFS装置存储器区域之间的对应关系的LBA-区域映射单元、用于进行聚类的聚类单元、用于将UFS装置存储器区域列表发送到UFS驱动层的区域分发单元等,UFS驱动层可在UFS HPB缓冲存储器生成区域预取命令并将区域预取命令发送到UFS装置,在接收到预取命令后,UFS装置可将需要的区域信息发送到UFS驱动层,并且UFS驱动层可将需要的区域信息存储到UFS HPB缓冲存储器中,在此不再赘述。

此外,根据本发明的示例性实施例,还可提供一种电子设备,包括存储器和处理器,存储器上存储有计算机可执行指令,当所述指令由处理器执行时,执行前述的方法。根据本发明的示例性实施例,还可提供一种计算机可读介质,其上存储有计算机可执行指令,当执行所述指令时,执行前述的方法。

根据本发明的示例性实施例,当后续请求的LBA地址区间刚好落到预取的UFS装置存储器区域中时,则HPB缓存命中,直接通过UFS装置存储器区域信息中的物理地址(PPN)访问用户数据,大大缩短了获取物理地址的时间开销,从而提升了UFS装置的读性能和用户体验;在不修改应用甚至Linux内核的情况下(在使用包含HPB特性的UFS驱动层的情况下,不需要任何改动),自动管理针对各种工作负载的UFS装置存储器区域预取工作;可实现动态文件访问模式自动识别和可变负载下的自动UFS装置存储器区域管理;可根据历史UFS装置存储器区域的访问情况预测未来时间窗口内UFS装置存储器区域的访问序列;并对多种工作负载具有良好的适应性。

虽然已经参照特定示例性实施例示出和描述了本发明,但是本领域的技术人员将理解,在不脱离范围由权利要求及其等同物限定的本发明的精神和范围的情况下可作出形式和细节上的各种改变。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号