[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN117234431B - 缓存管理方法、装置、电子设备及存储介质 - Google Patents

缓存管理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN117234431B
CN117234431B CN202311509909.5A CN202311509909A CN117234431B CN 117234431 B CN117234431 B CN 117234431B CN 202311509909 A CN202311509909 A CN 202311509909A CN 117234431 B CN117234431 B CN 117234431B
Authority
CN
China
Prior art keywords
target
value
cache page
target cache
identifying
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202311509909.5A
Other languages
English (en)
Other versions
CN117234431A (zh
Inventor
贺康
叶倩嵘
何秋明
李志刚
刘全利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311509909.5A priority Critical patent/CN117234431B/zh
Publication of CN117234431A publication Critical patent/CN117234431A/zh
Application granted granted Critical
Publication of CN117234431B publication Critical patent/CN117234431B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及缓存管理技术领域,公开了一种缓存管理方法、装置、电子设备及存储介质。本发明提供了一种缓存管理方法,包括:接收数据操作请求,数据操作请求用于请求对目标缓存数据执行目标数据操作;确定目标缓存数据所在的目标缓存页;基于目标缓存页对应缓存头中预设的互斥标志位字段,识别目标数据操作是否被允许执行;若目标数据操作被允许执行且目标缓存页处于可操作状态,则对目标缓存页执行目标数据操作,以响应数据操作请求。可以解决缓存页存在互斥访问冲突的问题,能够达到有效提升RAID控制器的处理性能的效果。

Description

缓存管理方法、装置、电子设备及存储介质
技术领域
本发明涉及缓存管理技术领域,具体涉及缓存管理方法、装置、电子设备及存储介质。
背景技术
相关技术中,通过磁盘阵列(Redundant Arrays of Independent Disks,RAID)控制器管理硬盘中的缓存数据,可以提高缓存管理效率。其中,在管理缓存数据的过程中,可以对缓存页执行如下三种基本操作:写操作、读操作以及缓存页数据缓存数据落盘操作。缓存页为缓存管理的最小颗粒度。
但在实际管理过程中,由于写操作与读操作和缓存页数据缓存数据落盘操作存在互斥关系,进而导致当RAID控制器同时下发多个缓存管理任务时,会因触发缓存页互斥保护机制而影响服务器主机发出的数据读写请求(SATA-IO命令)的处理性能。
鉴于此,亟需一种能够针对读写请求提升的处理性能的缓存管理方法。
发明内容
有鉴于此,本发明提供了一种缓存管理方法、装置、电子设备及存储介质,以解决硬盘管理缓存数据的处理性能低的问题。
第一方面,本发明提供了一种缓存管理方法,方法包括:
接收数据操作请求,数据操作请求用于请求对目标缓存数据执行目标数据操作;
确定目标缓存数据所在的目标缓存页;
基于目标缓存页对应缓存头中预设的互斥标志位字段,识别目标数据操作是否被允许执行;
若目标数据操作被允许执行且目标缓存页处于可操作状态,则对目标缓存页执行目标数据操作,以响应数据操作请求。
有益效果:本实施例提供的缓存管理方法,通过缓存头数据中预设的互斥标志位字段,能够快速识别目标数据操作当前是否可以被执行,进而当目标缓存页处于可操作状态时,可以对该目标缓存页执行目标数据操作,以响应数据操作请求,从而可以解决缓存页存在互斥访问冲突的问题,能够达到有效提升RAID控制器的处理性能的效果。
在一种可选的实施方式中,预设的互斥标志位字段包括第一预设字段和第二预设字段;基于目标缓存页对应缓存头中预设的互斥标志位字段,识别目标数据操作是否为非互斥操作,包括:
基于第一预设字段对应的第一数值,识别目标缓存页的当前访问类型,第一预设字段用于标识目标缓存页的排他标志;
若目标缓存页的当前访问状态为允许访问,则基于第二预设字段对应的第二数值,识别目标数据操作是否为非互斥操作,第二预设字段用于标识目标缓存页当前允许执行的操作。
在一种可选的实施方式中,基于第一预设字段对应的第一数值,识别目标缓存页的当前访问类型,包括:
若第一数值为1,则识别目标缓存页当前访问类型为禁止访问;
若第一数值为0,则识别目标缓存页当前访问类型为允许访问。
在一种可选的实施方式中,基于第二预设字段对应的第二数值,识别目标数据操作是否为非互斥操作,包括:
确定目标数据操作对应可执行的最大非排他访问次数;
若第二数值小于最大非排他访问次数,则识别目标数据操作为非互斥操作,第二数值为目标缓存页当前累计执行的非排他访问次数;
若第二数值大于或者等于最大非排他访问次数,则识别目标数据操作为互斥操作。
在一种可选的实施方式中,若目标数据操作为读操作,则目标缓存页处于可操作状态的识别方法包括:
将第一数值和第二数值均缓存在临时变量中;
将第二数值加1,得到更新后的第三数值;
基于第一数值与第一目标数值之间的匹配结果,识别目标缓存页的管理状态,第一目标数值为待执行读操作需写入第一预设字段的数值,管理状态包括可操作状态或者不可操作状态。
在一种可选的实施方式中,基于第一数值与第一目标数值之间的匹配结果,识别目标缓存页的管理状态,包括:
若第一数值与第一目标数值不匹配,则识别目标缓存页的管理状态为不可操作状态;
若第一数值与第一目标数值匹配,则识别目标缓存页的管理状态为可操作状态,并基于第一数值和第三数值更新预设的互斥标志位字段的数值。
在一种可选的实施方式中,若目标数据操作为读操作,则最大非排他访问次数为第二预设字段对应的最大预设阈值。
在一种可选的实施方式中,对目标缓存页执行目标数据操作,包括:
响应读操作,从目标缓存页中读取目标缓存数据;
响应目标缓存数据被读取完成,将第三数值减1,得到更新后的第四数值;
根据第一数值和第四数值,更新预设的互斥标志位字段;
响应预设的互斥标志位字段更新成功,完成读操作。
在一种可选的实施方式中,若目标数据操作为写操作,则目标缓存页处于可操作状态的识别方法包括:
将第一数值和第二数值均缓存在临时变量中;
将第一数值设置为1,得到更新后的第五数值;
基于第五数值与第二目标数值之间的匹配结果,识别目标缓存页的管理状态,第二目标数值为待执行写操作需写入第一预设字段的数值。
在一种可选的实施方式中,基于第一数值与待写入第一预设字段的目标数值之间的匹配结果,识别目标缓存页的管理状态,包括:
若第五数值与第二目标数值不匹配,则识别目标缓存页的管理状态为不可操作状态;
若第五数值与第二目标数值匹配,则识别目标缓存页的管理状态为可操作状态,并基于第五数值和第二数值更新预设的互斥标志位字段的数值。
在一种可选的实施方式中,若目标数据操作为写操作,则最大非排他访问次数为第二预设字段对应的最小预设阈值。
在一种可选的实施方式中,对目标缓存页执行目标数据操作,包括:
响应写操作,将目标缓存数据写入目标缓存页中;
响应目标缓存数据被写入完成,将第五数值设置为0,完成写操作。
在一种可选的实施方式中,若目标数据操作为缓存数据落盘操作,则接收数据操作请求,包括:
监测缓存资源的资源占有率;
若资源占有率大于或者等于指定阈值,则生成并接收数据操作请求,数据操作请求用于对目标缓存数据执行缓存数据落盘操作。
在一种可选的实施方式中,当目标数据操作为缓存数据落盘操作时,最大非排他访问次数为第二预设字段对应的最大预设阈值。
在一种可选的实施方式中,对目标缓存页执行目标数据操作,包括:
响应缓存数据落盘操作,将第一数值设置为1,得到更新后的第六数值,并将目标缓存页中的第三目标数据写入物理存储介质中;
确定第二预设字段当前对应的第七数值,并将第七数值减1,得到更新后的第八数值;
根据第六数值和第八数值,更新预设的互斥标志位字段;
当监测到第八数值为0时,确认缓存数据落盘操作执行完成,并回收目标缓存页。
在一种可选的实施方式中,第一预设字段和第二预设字段均采用位域的方式进行定义。
有益效果:采用位域的方式定义第一预设字段和第二预设字段,可以有效减少目标缓存页对应缓存头对内存空间的占用,且降低硬件成本。
在一种可选的实施方式中,方法还包括:
若目标数据操作被允许执行但目标缓存页处于不可操作状态,则挂起目标数据操作。
有益效果:本实施例提供的缓存管理方法,有利于提升缓存资源的利用率,避免忙等待的情况发生,从而有助于提升RAID控制器针对缓存数据进行缓存管理的性能。
第二方面,本发明提供了一种缓存管理装置,装置包括:
接收模块,用于接收数据操作请求,数据操作请求用于请求对目标缓存数据执行目标数据操作;
目标确定模块,用于确定目标缓存数据所在的目标缓存页;
识别模块,用于基于目标缓存页对应缓存头中预设的互斥标志位字段,识别目标数据操作是否被允许执行;
第一执行模块,用于若目标数据操作被允许执行且目标缓存页处于可操作状态,则对目标缓存页执行目标数据操作,以响应数据操作请求。
第三方面,本发明提供了一种电子设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机请求,处理器通过执行计算机请求,从而执行上述第一方面或其对应的任一实施方式的缓存管理方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机请求,计算机请求用于使计算机执行上述第一方面或其对应的任一实施方式的缓存管理方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据现有技术的RAID控制器的工作模型示意图;
图2是根据本发明实施例的缓存管理方法的流程示意图;
图3是根据本发明实施例的另一缓存管理方法的流程示意图;
图4是根据本发明实施例的又一缓存管理方法的流程示意图;
图5是根据本发明实施例的再一缓存管理方法的流程示意图;
图6是根据本发明实施例的在另一缓存管理方法的流程示意图;
图7是根据本发明实施例的在又一缓存管理方法的流程示意图;
图8是根据本发明实施例的缓存管理装置的结构框图;
图9是本发明实施例的电子设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,基于服务器主机与PCIE(Peripheral Component InterconnectExpress,一种高速串行计算机扩展总线标准)板卡之间的通信连接,服务器主机通过PCI-Express总线将数据处理请求发送至RAID控制器芯片内的输入/输出(Input/Output,IO)预处理中,进而通过缓存管理确定双倍速率同步动态随机存储器(DDR)中被命中的缓存页,以及通过缓存管理从静态随机存取存储器(Static Random-Access Memory,SRAM)中确定管理缓存页的关键数据结构,从而通过RAID计算,结合串行ATA(Serial AdvancedTechnology Attachment,SATA)驱动,管理RAID硬盘组的数据。
其中,针对缓存页有三种基本操作,即:写操作、读操作、缓存页数据缓存数据落盘操作。这些操作之间是否存在互斥关系如下:
1)前台读和前台读不冲突;
2)前台写和前台写互斥;
3)前台写和前台读互斥;
4)前台写和后台缓存页落盘互斥;
5)前台读和后台缓存页落盘不冲突,但落盘完成后在进行缓存页资源回收时和前台读是有冲突的,回收操作要等读操作全部完成才能进行。
鉴于此,本发明实施例提供了一种缓存管理方法,包括:接收数据操作请求,数据操作请求用于请求对目标缓存数据执行目标数据操作;确定目标缓存数据所在的目标缓存页;基于目标缓存页对应缓存头中预设的互斥标志位字段,识别目标数据操作是否被允许执行;若目标数据操作被允许执行且目标缓存页处于可操作状态,则对目标缓存页执行目标数据操作,以响应数据操作请求。通过缓存头数据中预设的互斥标志位字段,能够快速识别目标数据操作当前是否可以被执行,进而当目标缓存页处于可操作状态时,可以对该目标缓存页执行目标数据操作,以响应数据操作请求,从而可以解决缓存页存在互斥访问冲突的问题,能够达到有效提升RAID控制器的处理性能的效果。
根据本发明实施例,提供了一种缓存管理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行请求的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种缓存管理方法,可用于部署RAID控制器芯片的电子设备,如手机、平板电脑等,图2是根据本发明实施例的缓存管理方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,接收数据操作请求。
在本发明实施例中,数据操作请求用于请求对目标缓存数据执行目标数据操作。其中,数据操作请求可以是服务器主机通过PCIE总线下发的。目标数据操作可以包括:读操作、写操作或者缓存数据落盘操作。
步骤S202,确定目标缓存数据所在的目标缓存页。
在本发明实施例中,为便于对目标缓存数据进行针对性处理,则识别该目标缓存数据当前所在的目标缓存页,以保障后续执行目标数据操作的有效性。在此对目标缓存页的确定方式并不做任何限定,具体根据实际需求进行确定即可。
步骤S203,基于目标缓存页对应缓存头中预设的互斥标志位字段,识别目标数据操作是否被允许执行。
在本发明实施例中,目标缓存页对应缓存头(CacheHead)用于管理目标缓存页中的数据。为提高RAID控制器的响应效率,则在目标缓存页对应缓存头中预设互斥标志位字段,进而通过该互斥标志位字段上的数值,检测该目标数据操作针对目标缓存页当前的访问状态是否为互斥访问操作,从而达到快速识别目标数据操作是否为被允许执行的目的。
步骤S204,若目标数据操作被允许执行且目标缓存页处于可操作状态,则对目标缓存页执行目标数据操作,以响应数据操作请求。
在本发明实施例中,若目标数据操作被允许执行,则表征该目标操作数据针对目标缓存页当前访问状态来说不是互斥操作,且当目标缓存页处于可操作状态时,表征当前目标缓存页处于空闲状态,因此,可以对目标缓存页执行目标数据操作,以响应数据操作请求。
本实施例提供的缓存管理方法,通过缓存头数据中预设的互斥标志位字段,能够快速识别目标数据操作当前是否可以被执行,进而当目标缓存页处于可操作状态时,可以对该目标缓存页执行目标数据操作,以响应数据操作请求,从而可以解决缓存页存在互斥访问冲突的问题,能够达到有效提升RAID控制器的处理性能的效果。
在一些可选地实施方式中,若目标数据操作被允许执行但目标缓存页处于不可操作状态,则挂起目标数据操作。即,当目标缓存页处于不可操作状态时,表征当前目标缓存页处于被占用状态,例如:被其他线程占用。因此,需将目标数据操作挂起,直至该目标缓存页处于空闲状态时,对目标缓存页执行目标数据操作,进而有利于提升缓存资源的利用率,避免忙等待的情况发生,从而有助于提升RAID控制器针对缓存数据进行缓存管理的性能。
在本实施例中提供了一种缓存管理方法,可用于上述的电子设备,如手机、平板电脑等,图3是根据本发明实施例的缓存管理方法的流程图,如图3所示,该流程包括如下步骤:
步骤S301,接收数据操作请求。详细请参见图2所示实施例的步骤S201,在此不再赘述。
步骤S302,确定目标缓存数据所在的目标缓存页。详细请参见图2所示实施例的步骤S202,在此不再赘述。
步骤S303,基于目标缓存页对应缓存头中预设的互斥标志位字段,识别目标数据操作是否被允许执行。
具体地,预设的互斥标志位字段包括第一预设字段和第二预设字段,上述步骤S303包括:
步骤S3031,基于第一预设字段对应的第一数值,识别目标缓存页的当前访问类型。
在本发明实施例中,第一预设字段用于标识目标缓存页的排他标志。为快速确定目标缓存页的当前访问类型,避免无效访问,则通过第一预设字段对应的第一数值进行区分。即,第一预设字段上的数值不同,对应的目标缓存页不同的当前访问类型。其中,当前访问类型包括禁止访问或者允许访问。
在一些可选的实施方式中,上述步骤S3031包括:
步骤a1,若第一数值为1,则识别目标缓存页当前访问类型为禁止访问。
步骤a2,若第一数值为0,则识别目标缓存页当前访问类型为允许访问。
具体的,预先配置第一预设字段上的第一数值为0或1。当第一数值为1时,则表示目标缓存页当前访问类型为禁止访问;当第一数值为0时,则表示目标缓存页当前访问类型为允许访问。
在一例中,当第一数值为0时,则表示目标缓存页当前访问类型为禁止访问;当第一数值为1时,则表示目标缓存页当前访问类型为允许访问。即,第一数值为0或1对应表示的目标缓存页当前访问类型可以自行根据需求进行设定,在本发明中不进行限制。
因此,采用该种设置方式,可以提高识别目标缓存页当前访问类型的效率,便于快速确定该目标缓存页是否可以允许目标数据操作对其进行数据访问。
步骤S3032,若目标缓存页的当前访问状态为允许访问,则基于第二预设字段对应的第二数值,识别目标数据操作是否为非互斥操作。
在本发明实施例中,第二预设字段用于标识目标缓存页当前允许执行的操作。若目标缓存页的当前访问状态为允许访问,则表征当前目标缓存页可以进行数据访问,进而通过第二预设字段对应的第二数值,识别目标数据操作针对目标缓存页的当前访问状态来说是否为互斥操作,识别该目标数据操作是否为非互斥操作,从而避免缓存页存在互斥访问冲突的问题发生。
在一些可选的实施方式中,上述步骤S3032包括:
步骤b1,确定目标数据操作对应可执行的最大非排他访问次数。
步骤b2,若第二数值小于最大非排他访问次数,则识别目标数据操作为非互斥操作。
步骤b3,若第二数值大于或者等于最大非排他访问次数,则识别目标数据操作为互斥操作。
具体的,第二数值为目标缓存页当前累计执行的非排他访问次数。为避免某目标数据操作长时间占据目标缓存页面,导致其他数据操作不能被有效执行,进而影响缓存管理的性能,则针对不同的数据操作设置不同的最大非排他访问次数,进而通过比较第二数值与目标数据操作对应可执行的最大非排他访问次数,识别目标数据操作对目标缓存页的当前访问状态来说是否为互斥操作,能够有效提升识别效率,从而可以及时避免缓存页存在互斥访问冲突的问题。
步骤S304,若目标数据操作被允许执行且目标缓存页处于可操作状态,则对目标缓存页执行目标数据操作,以响应数据操作请求。详细请参见图2所示实施例的步骤S204,在此不再赘述。
本实施例提供的缓存管理方法,通过缓存头中的第一预设字段和第二预设字段,能够快速识别目标缓存页的当前访问状态以及识别该目标数据操作是否可以被允许执行,进而可以保障在并发多个数据操作的情况下,可以安全地处理目标缓存页资源,并且还可以有效解决目标数据操作与目标缓存页的访问状态存在互斥冲突的问题,从而能够有效提升缓存资源的管理效果,有利于提升RAID控制器的响应效率。
在一些可选地实施方式中,第一预设字段和第二预设字段均采用位域的方式进行定义,进而可以有效减少目标缓存页对应缓存头对内存空间的占用,且降低硬件成本。
在一示例中,第一预设字段可以采用exclude flag表示,第二预设字段可以采用non-exclude cnt表示,进而目标缓存页对应缓存头的数据结构伪代码可以如下:
MutexFlag结构体 {
non-exclude cnt(3 bits);// 不排他计数器
exclude flag(1 bit);// 排他标志
rsvd(4 bits);// 保留字段
}
CacheHead结构体{
原有字段
Struct MutexFlag mtx_flag;
}
其中,CacheHead结构体是指缓存头的数据结构体;MutexFlag结构体是指预设的互斥标志位字段;保留字段属于填充字段,用于保障数据结构完整。
在一些可选地实施方式中,若目标数据操作为读操作,则目标缓存页处于可操作状态的识别方法包括:
步骤c1,将第一数值和第二数值均缓存在临时变量中。
步骤c2,将第二数值加1,得到更新后的第三数值。
步骤c3,基于第一数值与第一目标数值之间的匹配结果,识别目标缓存页的管理状态。
具体的,在确定目标缓存页之后,为避免污染数据,则先将第一数值和第二数值缓存至临时变量中。在本申请中,读操作属于非排他操作,由于读操作被允许执行,因此,需将第二数值加1,以更新当前累计执行的非排他访问次数,得到第三数值。
基于比较并交换(Compare and Swap,CAS)原理,将第一数值与第一目标数值进行匹配,进而基于匹配结果,识别目标缓存页的管理状态。其中,第一目标数值为待执行读操作需写入第一预设字段的数值,管理状态包括可操作状态或者不可操作状态。
在一些可选的实施方式中,上述步骤c3包括:
步骤c31,若第一数值与第一目标数值不匹配,则识别目标缓存页的管理状态为不可操作状态;
步骤c32,若第一数值与第一目标数值匹配,则识别目标缓存页的管理状态为可操作状态,并基于第一数值和第三数值更新预设的互斥标志位字段的数值。
即,若第一数值与第一目标数值不匹配,则表征目标缓存页当前被其他线程占用,需重新抢占,因此,可以识别目标缓存页的管理状态为不可操作状态。若第一数值与第一目标数值匹配,则表征目标缓存页当前未被其他线程占用,可以直接对目标缓存页执行读操作,进而可以识别目标缓存页的管理状态为可操作状态,并基于第一数值和第三数值更新预设的互斥标志位字段的数值。
在另一些可选的实施方式中,目标数据操作为读操作,则最大非排他访问次数为第二预设字段对应的最大预设阈值。例如:第二预设字段上最大预设阈值为7,则最大非排他访问次数为7,进而当通过第二数值检测读操作是否为互斥操作时,则可以检测第二数值是否大于或者等于7。若第二数值小于7,则可以识别读操作为非互斥操作,进而可以允许读操作被执行。若第二数值大于或者等于7,则可以识别读操作为互斥操作,进而不允许读操作被执行。
在又一些可选的实施方式中,在目标操作请求为读操作的情况下,上述步骤S304包括:
步骤d1,响应读操作,从目标缓存页中读取目标缓存数据;
步骤d2,响应目标缓存数据被读取完成,将第三数值减1,得到更新后的第四数值;
步骤d3,根据第一数值和第四数值,更新预设的互斥标志位字段;
步骤d4,响应预设的互斥标志位字段更新成功,完成读操作。
具体地,在对目标缓存页执行读操作的过程中,从目标缓存页中读取目标缓存数据,进而在目标缓存数据读取完成后,将第三数值减1,以表征当前读操作已执行完成,可以将本次累计执行的非排他访问次数释放掉,从而得到更新后的第四数值。根据第一数值和第四数值,更新预设的互斥标志位字段,以便保障缓存数据的一致性以及当前占用目标缓存页的线程安全。
当预设的互斥标志位字段更新完成后,再次基于CAS原理,将第一数值与第一目标数值进行匹配,进而当匹配成功时,表征目标缓存页的当前访问状态处于正常状态,未被其他线程抢占或者出现异常,从而可以确定读操作完成。
在一些可选地实施场景中,以目标操作请求为读操作为例,RAID控制器执行缓存管理的过程可以如图4所示:
在进入读操作入口后,将目标缓存页对应缓存头中预设的互斥标志位字段对应的数值存放到临时变量中。
若第一预设字段对应的第一数值为1,则将读操作挂起。
若第一预设字段对应的第一数值不为1(例如:第一数值为0),则继续判断第二预设字段对应的第二数值是否达到第二预设字段对应的最大预设阈值。若第二预设字段对应的第二数值达到第二预设字段对应的最大预设阈值,则将读操作挂起。
若第二预设字段对应的第二数值未达到第二预设字段对应的最大预设阈值,则将第二数值+1,得到第三数值。
基于第一数值与第一目标数值之间的匹配结果,识别目标缓存页的管理状态,若目标缓存页的管理状态为不可操作状态,则重新获取预设的互斥标志位字段对应的数值。
若目标缓存页的管理状态为可操作状态,则基于第一数值和第三数值更新预设的互斥标志位字段的数值。
在对目标缓存页执行读操作的过程中,从目标缓存页中读取目标缓存数据,进而在目标缓存数据读取完成后,将第三数值减1,得到更新后的第四数值。
根据第一数值和第四数值,更新预设的互斥标志位字段,以便保障缓存数据的一致性以及当前占用目标缓存页的线程安全。
当预设的互斥标志位字段更新完成后,再次基于CAS原理,将第一数值与第一目标数值进行匹配,进而当匹配成功时,表征目标缓存页的当前访问状态处于正常状态,未被其他线程抢占或者出现异常,从而可以确定读操作完成。
在一些可选地实施方式中,若目标数据操作为写操作,则目标缓存页处于可操作状态的识别方法包括:
步骤e1,将第一数值和第二数值均缓存在临时变量中。
步骤e2,将第一数值设置为1,得到更新后的第五数值。
步骤e3,基于第五数值与第二目标数值之间的匹配结果,识别目标缓存页的管理状态。
具体地,在确定目标缓存页之后,为避免污染数据,则先将第一数值和第二数值缓存至临时变量中。在本申请中,写操作属于排他操作,由于写操作被允许执行,因此,需将第一数值设置为1,以使目标缓存页的当前访问状态处于排他状态,进而避免在执行写操作的过程中出现互斥冲突的问题,进而得到第五数值。
基于比较并交换(Compare and Swap,CAS)原理,将第五数值与第二目标数值进行匹配,进而基于匹配结果,识别目标缓存页的管理状态。其中,第二目标数值为待执行写操作需写入第一预设字段的数值。
在一些可选的实施方式中,上述步骤e3包括:
步骤e31,若第五数值与第二目标数值不匹配,则识别目标缓存页的管理状态为不可操作状态;
步骤e32,若第五数值与第二目标数值匹配,则识别目标缓存页的管理状态为可操作状态,并基于第五数值和第二数值更新预设的互斥标志位字段的数值。
即,若第五数值与第二目标数值不匹配,则表征目标缓存页当前被其他线程占用,需重新抢占,因此,可以识别目标缓存页的管理状态为不可操作状态。若第五数值与第二目标数值匹配,则表征目标缓存页当前未被其他线程占用,可以直接对目标缓存页执行写操作,进而可以识别目标缓存页的管理状态为可操作状态,并基于第五数值和第二数值更新预设的互斥标志位字段的数值。
在另一些可选的实施方式中,若目标数据操作为写操作,则最大非排他访问次数为第二预设字段对应的最小预设阈值。例如:第二预设字段对应的最小预设阈值为0,则最大非排他访问次数为0,进而当通过第二数值检测读操作是否为互斥操作时,则可以检测第二数值是否大于0。若第二数值等于0,则可以识别读操作为非互斥操作,进而可以允许写操作被执行。若第二数值大于0,则可以识别写操作为互斥操作,进而不允许写操作被执行。
在又一些可选的实施方式中,在目标操作请求为写操作的情况下,上述步骤S304包括:
步骤f1,响应写操作,将目标缓存数据写入目标缓存页中;
步骤f2,响应目标缓存数据被写入完成,将第五数值设置为0,完成写操作。
具体地,在对目标缓存页执行写操作的过程中,将目标缓存数据写入目标缓存页中,进而当目标数据写入完成后,将第五数值设置为0,以使目标缓存页的当前访问状态处于非排他状态,从而完成写操作。
在一些可选地实施场景中,以目标操作请求为写操作为例,RAID控制器执行缓存管理的过程可以如图5所示:
在进入写操作入口后,将目标缓存页对应缓存头中预设的互斥标志位字段对应的数值存放到临时变量中。
若第一预设字段对应的第一数值为1,则将写操作挂起。
若第一预设字段对应的第一数值不为1(例如:第一数值为0),则继续判断第二预设字段对应的第二数值是否大于第二预设字段对应的最小预设阈值。若第二预设字段对应的第二数值大于第二预设字段对应的最小预设阈值,则将写操作挂起。
若第二预设字段对应的第二数值等于或者小于第二预设字段对应的最小预设阈值,则将第一数值设置为1,得到第五数值。
基于第五数值与第二目标数值之间的匹配结果,识别目标缓存页的管理状态,若目标缓存页的管理状态为不可操作状态,则重新获取预设的互斥标志位字段对应的数值。
若目标缓存页的管理状态为可操作状态,则基于第五数值和第二数值更新预设的互斥标志位字段的数值。
在对目标缓存页执行写操作的过程中,将目标缓存数据写入目标缓存页中,进而当目标数据写入完成后,将第五数值设置为0,以使目标缓存页的当前访问状态处于非排他状态,从而完成写操作。
在本实施例中提供了一种缓存管理方法,可用于上述的电子设备,如手机、平板电脑等,图6是根据本发明实施例的缓存管理方法的流程图,如图6所示,该流程包括如下步骤:
步骤S601,接收数据操作请求。
具体地,上述步骤S601包括:
步骤S6011,监测缓存资源的资源占有率。
在本发明实施例中,为保障缓存数据的持久性和安全,则监测缓存资源的资源占有率,以当资源占有率大于或者等于指定阈值时,可以及时触发针对目标缓存数据执行缓存数据落盘操作的数据操作请求,从而避免因内存缓存资源紧张而影响RAID控制器针对缓存数据进行管理的性能。其中,指定阈值可以理解为是触发对目标缓存数据执行缓存数据落盘操作的资源占有率的临界值。
若资源占有率大于或者等于指定阈值,则生成该数据操作请求;若资源占有率小于指定阈值,则表征内存缓存资源相对充足,进而可以无需执行缓存数据落盘操作。
步骤S6012,若资源占有率大于或者等于指定阈值,则生成并接收数据操作请求。
在本发明实施例中,数据操作请求用于对目标缓存数据执行缓存数据落盘操作。当监测到资源占有率大于或者等于指定阈值,则表征当前缓存资源较为紧张,进而通过触发后台任务,生成并接收数据操作请求,以便可以及时释放目标缓存数据,从而保障缓存管理的稳定性和性能。
步骤S602,确定目标缓存数据所在的目标缓存页。
步骤S603,基于目标缓存页对应缓存头中预设的互斥标志位字段,识别目标数据操作是否被允许执行。
步骤S604,若目标数据操作被允许执行且目标缓存页处于可操作状态,则对目标缓存页执行目标数据操作,以响应数据操作请求。
具体地,上述步骤S304包括:
步骤g1,响应缓存数据落盘操作,将第一数值设置为1,得到更新后的第六数值,并将目标缓存页中的第三目标数据写入物理存储介质中;
步骤g2,确定第二预设字段当前对应的第七数值,并将第七数值减1,得到更新后的第八数值;
步骤g3,根据第六数值和第八数值,更新预设的互斥标志位字段;
步骤g4,当监测到第八数值为0时,确认缓存数据落盘操作执行完成,并回收目标缓存页。
具体地,在对目标缓存页执行缓存数据落盘操作的过程中,先将第一数值设置为1,得到更新后的第六数值,以使目标缓存页的当前访问状态处于排他状态,防止在将目标缓存页中的第三目标数据写入物理存储介质的过程中被写操作破坏。在本申请中,缓存数据落盘操作属于非排他操作,因此,当目标缓存数据被存放到物理存储介质之后,确定第二预设字段当前对应的第七数值,并将第七数值减1,得到更新后的第八数值,进而根据第六数值和第八数值,更新预设的互斥标志位字段。
当监测到第八数值为0时,则表征目标缓存页当前执行的其他非排他操作(例如:读操作)均已完成,进而可以确认缓存数据落盘操作执行完成,并回收目标缓存页,从而能够有效保障执行其他非排他操作时的数据完整性。
本实施例提供的缓存管理方法,能够提高RAID控制器针对缓存数据进行管理的系统整体性能,从而到达对IO处理性能进行优化的目的。
在一些可选地实施场景中,当目标数据操作为缓存数据落盘操作时,最大非排他访问次数为第二预设字段对应的最大预设阈值。例如:第二预设字段上最大预设阈值为7,则最大非排他访问次数为7,进而当通过第二数值检测缓存数据落盘操作是否为互斥操作时,则可以检测第二数值是否大于或者等于7。若第二数值小于7,则可以识别缓存数据落盘操作为非互斥操作,进而可以允许缓存数据落盘操作被执行。若第二数值大于或者等于7,则可以识别缓存数据落盘操作为互斥操作,进而不允许缓存数据落盘操作被执行。
在另一些可选地实施场景中,以目标操作请求为缓存数据落盘操作为例,RAID控制器执行缓存管理的过程可以如图7所示:
在进入缓存数据落盘操作入口后,将目标缓存页对应缓存头中预设的互斥标志位字段对应的数值存放到临时变量中。
若第一预设字段对应的第一数值为1,则将缓存数据落盘操作挂起。
若第一预设字段对应的第一数值不为1(例如:第一数值为0),则继续判断第二预设字段对应的第二数值是否达到第二预设字段对应的最大预设阈值。若第二预设字段对应的第二数值达到第二预设字段对应的最大预设阈值,则将缓存数据落盘操作挂起。
若第二预设字段对应的第二数值未达到第二预设字段对应的最大预设阈值,则将第二数值+1,得到第七数值。
基于第一数值与第一目标数值之间的匹配结果,识别目标缓存页的管理状态,若目标缓存页的管理状态为不可操作状态,则重新获取预设的互斥标志位字段对应的数值。
若目标缓存页的管理状态为可操作状态,则基于第一数值和第三数值更新预设的互斥标志位字段的数值。
在对目标缓存页执行缓存数据落盘操作的过程中,先将第一数值设置为1,得到更新后的第六数值。当目标缓存数据被存放到物理存储介质之后,将第七数值减1,得到更新后的第八数值,进而根据第六数值和第八数值,更新预设的互斥标志位字段。当监测到第八数值为0时,确认缓存数据落盘操作执行完成,并回收目标缓存页,以保障执行其他非排他操作时的数据完整性。
在又一些可选的实施场景中,通过第一预设字段和第二预设字段,确定目标缓存页当前访问类型的过程可以如下:
1)当exclude flag置位(第一数值为1)时,禁止对该目标缓存页进行访问。
2)当exclude flag未置位(第一数值为0)、non-exclude cnt等于0(第二数值=0)时,不允许对目标缓存页进行非排他(non-exclude)访问,允许进行排他(exclude)的访问。
3)当exclude flag未置位(第一数值为0)、non-exclude cnt大于或者等于0且小于7(0<第二数值<7)时,允许对目标缓存页进行非排他(non-exclude)访问,不允许进行排他(exclude)的访问。
4)当exclude flag未置位(第一数值为0)且non-exclude cnt等于7(第二数值=7)时,禁止对该目标缓存页进行访问。
其中,写操作属于排他操作;读操作和缓存数据落盘操作均属于非排他操作。
在再一些可选的实施场景中,通过本发明提供的缓存管理方法,能够减小缓存头内存消耗,降低硬件成本。由于采用了基于位域的CAS操作,单个缓存头可以节省大约3个字节大小,由于缓存头的个数通常很大,因此,能够有效降低RAID控制器芯片的成本。
进一步的,通过限制读操作占有锁的次数上限,可以达到优化IO处理的整体性能的目的,进而能够有效提高RAID控制器在读操作压制写操作场景的系统整体性能。
并且,预设的互斥标志位字段是采用位域字段的方式定义的,进而能够提高芯片固件程序的可移植性,使RAID控制器在进行缓存管理时,可以不依赖于实时操作系统(Real-Time Operating System,RTOS)平台。
在本实施例中还提供了一种缓存管理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种缓存管理装置,如图8所示,包括:
接收模块801,用于接收数据操作请求,数据操作请求用于请求对目标缓存数据执行目标数据操作;
目标确定模块802,用于确定目标缓存数据所在的目标缓存页;
识别模块803,用于基于目标缓存页对应缓存头中预设的互斥标志位字段,识别目标数据操作是否被允许执行;
第一执行模块804,用于若目标数据操作被允许执行且目标缓存页处于可操作状态,则对目标缓存页执行目标数据操作,以响应数据操作请求。
在一些可选的实施方式中,预设的互斥标志位字段包括第一预设字段和第二预设字段;识别模块803包括:第一识别单元,用于基于第一预设字段对应的第一数值,识别目标缓存页的当前访问类型,第一预设字段用于标识目标缓存页的排他标志;第二识别单元,用于若目标缓存页的当前访问状态为允许访问,则基于第二预设字段对应的第二数值,识别目标数据操作是否为非互斥操作,第二预设字段用于标识目标缓存页当前允许执行的操作。
在一些可选的实施方式中,第一识别单元包括:第一判别单元,用于若第一数值为1,则识别目标缓存页当前访问类型为禁止访问;第二判别单元,用于若第一数值为0,则识别目标缓存页当前访问类型为允许访问。
在一些可选的实施方式中,第二识别单元包括:第一确定单元,用于确定目标数据操作对应可执行的最大非排他访问次数;第三判别单元,用于若第二数值小于最大非排他访问次数,则识别目标数据操作为非互斥操作,第二数值为目标缓存页当前累计执行的非排他访问次数;第四判别单元,用于若第二数值大于或者等于最大非排他访问次数,则识别目标数据操作为互斥操作。
在一些可选的实施方式中,若目标数据操作为读操作,则目标缓存页处于可操作状态的识别装置包括:第一缓存模块,用于将第一数值和第二数值均缓存在临时变量中;第一处理单元,用于将第二数值加1,得到更新后的第三数值;第三识别单元,用于基于第一数值与第一目标数值之间的匹配结果,识别目标缓存页的管理状态,第一目标数值为待执行读操作需写入第一预设字段的数值,管理状态包括可操作状态或者不可操作状态。
在一些可选的实施方式中,第三识别单元包括:第一状态确定单元,用于若第一数值与第一目标数值不匹配,则识别目标缓存页的管理状态为不可操作状态;第二状态确定单元,用于若第一数值与第一目标数值匹配,则识别目标缓存页的管理状态为可操作状态,并基于第一数值和第三数值更新预设的互斥标志位字段的数值。
在一些可选的实施方式中,若目标数据操作为读操作,则最大非排他访问次数为第二预设字段对应的最大预设阈值。
在一些可选的实施方式中,第一执行模块804包括:第二处理单元,用于响应读操作,从目标缓存页中读取目标缓存数据;第三处理单元,用于响应目标缓存数据被读取完成,将第三数值减1,得到更新后的第四数值;第一更新单元,用于根据第一数值和第四数值,更新预设的互斥标志位字段;第一执行单元,用于响应预设的互斥标志位字段更新成功,完成读操作。
在一些可选的实施方式中,若目标数据操作为写操作,则目标缓存页处于可操作状态的识别装置包括:第二缓存单元,用于将第一数值和第二数值均缓存在临时变量中;第四处理单元,用于将第一数值设置为1,得到更新后的第五数值;第五处理单元,用于基于第五数值与第二目标数值之间的匹配结果,识别目标缓存页的管理状态,第二目标数值为待执行写操作需写入第一预设字段的数值。
在一些可选的实施方式中,第五处理单元包括:第三状态确定单元,用于若第五数值与第二目标数值不匹配,则识别目标缓存页的管理状态为不可操作状态;第四状态确定单元,用于若第五数值与第二目标数值匹配,则识别目标缓存页的管理状态为可操作状态,并基于第五数值和第二数值更新预设的互斥标志位字段的数值。
在一些可选的实施方式中,若目标数据操作为写操作,则最大非排他访问次数为第二预设字段对应的最小预设阈值。
在一些可选的实施方式中,第一执行模块804包括:第六处理单元,用于响应写操作,将目标缓存数据写入目标缓存页中;第二执行单元,用于响应目标缓存数据被写入完成,将第五数值设置为0,完成写操作。
在一些可选的实施方式中,若目标数据操作为缓存数据落盘操作,则接收模块801包括:监测单元,用于监测缓存资源的资源占有率;请求接收单元,用于若资源占有率大于或者等于指定阈值,则生成并接收数据操作请求,数据操作请求用于对目标缓存数据执行缓存数据落盘操作。
在一些可选的实施方式中,当目标数据操作为缓存数据落盘操作时,最大非排他访问次数为第二预设字段对应的最大预设阈值。
在一些可选的实施方式中,第一执行模块804包括:第七处理单元,用于缓存数据落盘操作,将第一数值设置为1,得到更新后的第六数值,并将目标缓存页中的第三目标数据写入物理存储介质中;第八处理单元,用于确定第二预设字段当前对应的第七数值,并将第七数值减1,得到更新后的第八数值;第二更新单元,用于根据第六数值和第八数值,更新预设的互斥标志位字段;第三执行单元,用于当监测到第八数值为0时,确认缓存数据落盘操作执行完成,并回收目标缓存页。
在一些可选的实施方式中,第一预设字段和第二预设字段均采用位域的方式进行定义。
在一些可选的实施方式中,装置还包括:第二执行模块,用于若目标数据操作被允许执行但目标缓存页处于不可操作状态,则挂起目标数据操作。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的缓存管理装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种电子设备,具有上述图8所示的缓存管理装置。
请参阅图9,图9是本发明可选实施例提供的一种电子设备的结构示意图,如图9所示,该电子设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的请求进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的请求。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器20存储有可由至少一个处理器10执行的请求,以使至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该电子设备还包括输入装置30和输出装置40。处理器10、存储器20、输入装置30和输出装置40可以通过总线或者其他方式连接,图9中以通过总线连接为例。
输入装置30可接收输入的数字或字符信息,以及产生与该电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等。输出装置40可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。上述显示设备包括但不限于液晶显示器,发光二极管,显示器和等离子体显示器。在一些可选的实施方式中,显示设备可以是触摸屏。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (18)

1.一种缓存管理方法,其特征在于,所述方法包括:
接收数据操作请求,所述数据操作请求用于请求对目标缓存数据执行目标数据操作;
确定所述目标缓存数据所在的目标缓存页;
基于所述目标缓存页对应缓存头中预设的互斥标志位字段,识别所述目标数据操作是否被允许执行,所述预设的互斥标志位字段包括第一预设字段和第二预设字段,所述第一预设字段用于标识所述目标缓存页的排他标志,所述第二预设字段用于标识所述目标缓存页当前允许执行的操作;
若所述目标数据操作被允许执行且所述目标缓存页处于可操作状态,则对所述目标缓存页执行所述目标数据操作,以响应所述数据操作请求;
其中,所述基于所述目标缓存页对应缓存头中预设的互斥标志位字段,识别所述目标数据操作是否被允许执行,包括:基于所述第一预设字段对应的第一数值,识别所述目标缓存页的当前访问类型;若所述目标缓存页的当前访问状态为允许访问,则基于所述第二预设字段对应的第二数值,识别所述目标数据操作是否为非互斥操作,包括:确定所述目标数据操作对应可执行的最大非排他访问次数;若所述第二数值小于所述最大非排他访问次数,则识别所述目标数据操作为非互斥操作,所述第二数值为所述目标缓存页当前累计执行的非排他访问次数;若所述第二数值大于或者等于所述最大非排他访问次数,则识别所述目标数据操作为互斥操作。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一预设字段对应的第一数值,识别所述目标缓存页的当前访问类型,包括:
若所述第一数值为1,则识别所述目标缓存页当前访问类型为禁止访问;
若所述第一数值为0,则识别所述目标缓存页当前访问类型为允许访问。
3.根据权利要求1所述的方法,其特征在于,若所述目标数据操作为读操作,则所述目标缓存页处于可操作状态的识别方法包括:
将所述第一数值和所述第二数值均缓存在临时变量中;
将所述第二数值加1,得到更新后的第三数值;
基于所述第一数值与第一目标数值之间的匹配结果,识别所述目标缓存页的管理状态,所述第一目标数值为待执行所述读操作需写入所述第一预设字段的数值,所述管理状态包括可操作状态或者不可操作状态。
4.根据权利要求3所述的方法,其特征在于,所述基于所述第一数值与第一目标数值之间的匹配结果,识别所述目标缓存页的管理状态,包括:
若所述第一数值与所述第一目标数值不匹配,则识别所述目标缓存页的管理状态为不可操作状态;
若所述第一数值与所述第一目标数值匹配,则识别所述目标缓存页的管理状态为可操作状态,并基于所述第一数值和所述第三数值更新所述预设的互斥标志位字段的数值。
5.根据权利要求3所述的方法,其特征在于,若所述目标数据操作为读操作,则所述最大非排他访问次数为所述第二预设字段对应的最大预设阈值。
6.根据权利要求3所述的方法,其特征在于,所述对所述目标缓存页执行所述目标数据操作,包括:
响应所述读操作,从所述目标缓存页中读取所述目标缓存数据;
响应所述目标缓存数据被读取完成,将所述第三数值减1,得到更新后的第四数值;
根据所述第一数值和所述第四数值,更新所述预设的互斥标志位字段;
响应所述预设的互斥标志位字段更新成功,完成所述读操作。
7.根据权利要求1所述的方法,其特征在于,若所述目标数据操作为写操作,则所述目标缓存页处于可操作状态的识别方法包括:
将所述第一数值和所述第二数值均缓存在临时变量中;
将所述第一数值设置为1,得到更新后的第五数值;
基于所述第五数值与第二目标数值之间的匹配结果,识别所述目标缓存页的管理状态,所述第二目标数值为待执行所述写操作需写入所述第一预设字段的数值。
8.根据权利要求7所述的方法,其特征在于,所述基于所述第一数值与待写入所述第一预设字段的目标数值之间的匹配结果,识别所述目标缓存页的管理状态,包括:
若所述第五数值与所述第二目标数值不匹配,则识别所述目标缓存页的管理状态为不可操作状态;
若所述第五数值与所述第二目标数值匹配,则识别所述目标缓存页的管理状态为可操作状态,并基于所述第五数值和所述第二数值更新所述预设的互斥标志位字段的数值。
9.根据权利要求7所述的方法,其特征在于,若所述目标数据操作为写操作,则所述最大非排他访问次数为所述第二预设字段对应的最小预设阈值。
10.根据权利要求7所述的方法,其特征在于,所述对所述目标缓存页执行所述目标数据操作,包括:
响应所述写操作,将所述目标缓存数据写入所述目标缓存页中;
响应所述目标缓存数据被写入完成,将所述第五数值设置为0,完成所述写操作。
11.根据权利要求1所述的方法,其特征在于,若所述目标数据操作为缓存数据落盘操作,则所述接收数据操作请求,包括:
监测缓存资源的资源占有率;
若所述资源占有率大于或者等于指定阈值,则生成并接收所述数据操作请求,所述数据操作请求用于对目标缓存数据执行缓存数据落盘操作。
12.根据权利要求11所述的方法,其特征在于,当所述目标数据操作为所述缓存数据落盘操作时,所述最大非排他访问次数为所述第二预设字段对应的最大预设阈值。
13.根据权利要求11所述的方法,其特征在于,所述对所述目标缓存页执行所述目标数据操作,包括:
响应所述缓存数据落盘操作,将所述第一数值设置为1,得到更新后的第六数值,并将所述目标缓存页中的第三目标数据写入物理存储介质中;
确定所述第二预设字段当前对应的第七数值,并将所述第七数值减1,得到更新后的第八数值;
根据所述第六数值和所述第八数值,更新所述预设的互斥标志位字段;
当监测到所述第八数值为0时,确认所述缓存数据落盘操作执行完成,并回收所述目标缓存页。
14.根据权利要求1所述的方法,其特征在于,所述第一预设字段和所述第二预设字段均采用位域的方式进行定义。
15.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述目标数据操作被允许执行但所述目标缓存页处于不可操作状态,则挂起所述目标数据操作。
16.一种缓存管理装置,其特征在于,所述装置包括:
接收模块,用于接收数据操作请求,所述数据操作请求用于请求对目标缓存数据执行目标数据操作;
目标确定模块,用于确定所述目标缓存数据所在的目标缓存页;
识别模块,用于基于所述目标缓存页对应缓存头中预设的互斥标志位字段,识别所述目标数据操作是否被允许执行,所述预设的互斥标志位字段包括第一预设字段和第二预设字段,所述第一预设字段用于标识所述目标缓存页的排他标志,所述第二预设字段用于标识所述目标缓存页当前允许执行的操作;
第一执行模块,用于若所述目标数据操作被允许执行且所述目标缓存页处于可操作状态,则对所述目标缓存页执行所述目标数据操作,以响应所述数据操作请求;
其中,所述识别模块包括:第一识别单元,用于基于所述第一预设字段对应的第一数值,识别所述目标缓存页的当前访问类型;第二识别单元,用于若所述目标缓存页的当前访问状态为允许访问,则基于所述第二预设字段对应的第二数值,识别所述目标数据操作是否为非互斥操作,包括:确定所述目标数据操作对应可执行的最大非排他访问次数;若所述第二数值小于所述最大非排他访问次数,则识别所述目标数据操作为非互斥操作,所述第二数值为所述目标缓存页当前累计执行的非排他访问次数;若所述第二数值大于或者等于所述最大非排他访问次数,则识别所述目标数据操作为互斥操作。
17.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机请求,所述处理器通过执行所述计算机请求,从而执行权利要求1至15中任一项所述的缓存管理方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机请求,所述计算机请求用于使计算机执行权利要求1至15中任一项所述的缓存管理方法。
CN202311509909.5A 2023-11-14 2023-11-14 缓存管理方法、装置、电子设备及存储介质 Active CN117234431B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311509909.5A CN117234431B (zh) 2023-11-14 2023-11-14 缓存管理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311509909.5A CN117234431B (zh) 2023-11-14 2023-11-14 缓存管理方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN117234431A CN117234431A (zh) 2023-12-15
CN117234431B true CN117234431B (zh) 2024-02-06

Family

ID=89093303

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311509909.5A Active CN117234431B (zh) 2023-11-14 2023-11-14 缓存管理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117234431B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101089829A (zh) * 2007-08-01 2007-12-19 杭州华三通信技术有限公司 一种共享缓存系统及实现方法
CN102073533A (zh) * 2011-01-14 2011-05-25 中国人民解放军国防科学技术大学 支持动态二进制翻译的多核体系结构
CN106537361A (zh) * 2014-07-17 2017-03-22 高通股份有限公司 用于通过组和通路将缓存灵活划分成组件缓存的方法和装置
CN110362504A (zh) * 2018-04-09 2019-10-22 英特尔公司 对一致性链路和多级存储器的管理
CN111417934A (zh) * 2017-12-05 2020-07-14 Arm有限公司 用于处理写入操作的装置和方法
CN112749103A (zh) * 2019-10-31 2021-05-04 华为技术有限公司 数据缓存系统和数据缓存系统的控制方法
CN112749111A (zh) * 2019-10-31 2021-05-04 华为技术有限公司 访问数据的方法、计算设备和计算机系统
US11074113B1 (en) * 2020-05-21 2021-07-27 EMC IP Holding Company LLC Method and apparatus for performing atomic operations on local cache slots of a shared global memory
CN116501267A (zh) * 2023-06-27 2023-07-28 苏州浪潮智能科技有限公司 一种独立冗余磁盘阵列卡控制方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200257630A1 (en) * 2017-12-18 2020-08-13 Mitsubishi Electric Corporation Information processing apparatus, information processing method, and computer readable medium
US11086672B2 (en) * 2019-05-07 2021-08-10 International Business Machines Corporation Low latency management of processor core wait state

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101089829A (zh) * 2007-08-01 2007-12-19 杭州华三通信技术有限公司 一种共享缓存系统及实现方法
CN102073533A (zh) * 2011-01-14 2011-05-25 中国人民解放军国防科学技术大学 支持动态二进制翻译的多核体系结构
CN106537361A (zh) * 2014-07-17 2017-03-22 高通股份有限公司 用于通过组和通路将缓存灵活划分成组件缓存的方法和装置
CN111417934A (zh) * 2017-12-05 2020-07-14 Arm有限公司 用于处理写入操作的装置和方法
CN110362504A (zh) * 2018-04-09 2019-10-22 英特尔公司 对一致性链路和多级存储器的管理
CN112749103A (zh) * 2019-10-31 2021-05-04 华为技术有限公司 数据缓存系统和数据缓存系统的控制方法
CN112749111A (zh) * 2019-10-31 2021-05-04 华为技术有限公司 访问数据的方法、计算设备和计算机系统
US11074113B1 (en) * 2020-05-21 2021-07-27 EMC IP Holding Company LLC Method and apparatus for performing atomic operations on local cache slots of a shared global memory
CN116501267A (zh) * 2023-06-27 2023-07-28 苏州浪潮智能科技有限公司 一种独立冗余磁盘阵列卡控制方法和装置

Also Published As

Publication number Publication date
CN117234431A (zh) 2023-12-15

Similar Documents

Publication Publication Date Title
WO2014138411A1 (en) System and method for tiered caching and storage allocation
CN101211289A (zh) 恢复操作管理系统和方法
TWI417724B (zh) 使用替代頁池管理直接記憶器存取寫入頁錯誤之電腦執行方法、裝置、及電腦程式產品
WO2021004256A1 (zh) 一种节点故障时进行节点切换的方法及相关设备
CN113722131A (zh) 用于促进存储设备中的快速崩溃恢复的方法和系统
US9442790B2 (en) Computer and dumping control method
US9460014B2 (en) Sharing local cache from a failover node
US7536694B2 (en) Exception handling in a multiprocessor system
CN117234431B (zh) 缓存管理方法、装置、电子设备及存储介质
US11315028B2 (en) Method and apparatus for increasing the accuracy of predicting future IO operations on a storage system
US10025521B2 (en) Obtaining additional data storage from another data storage system
CN108628761B (zh) 原子命令执行方法与装置
CN117234729B (zh) 动态内存保护方法、装置、计算机设备及存储介质
CN118312102A (zh) Io请求处理方法、装置、存储设备及存储介质
CN105279094A (zh) NAND Flash操作处理方法、装置及逻辑器件
US20130318310A1 (en) Processor processing method and processor system
US9058270B2 (en) False sharing detection logic for performance monitoring
CN108733479B (zh) 卸载固态硬盘卡的方法以及使用该方法的装置
US20150269092A1 (en) Information processing device and shared memory management method
EP4170503A1 (en) Data reading method, data writing method, device, and system
US9239792B2 (en) Sharing cache in a computing system
US7934067B2 (en) Data update history storage apparatus and data update history storage method
CN115840635A (zh) 计算资源管理方法、电子设备和程序产品
CN117075822B (zh) 数据读写方法、装置、设备及存储介质
CN118394284B (zh) 数据处理方法、独立磁盘冗余阵列卡、产品、装置及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant