CN114253455A - 一种缓存命中率的调整方法、装置、设备和存储介质 - Google Patents
一种缓存命中率的调整方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN114253455A CN114253455A CN202010995183.0A CN202010995183A CN114253455A CN 114253455 A CN114253455 A CN 114253455A CN 202010995183 A CN202010995183 A CN 202010995183A CN 114253455 A CN114253455 A CN 114253455A
- Authority
- CN
- China
- Prior art keywords
- cache
- hit rate
- data
- cache device
- unit
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例提供了一种缓存命中率的调整方法、装置、设备和存储介质。通过获得根据数据读取请求从缓存设备中读取数据所花费的读取时长;根据所述读取时长确定所述缓存设备的负载参数;根据所述缓存设备的负载参数确定是否需对所述缓存设备的缓存命中率进行调整,如果是,则确定与所述负载参数匹配的命中折扣率;根据所述命中折扣率对后续的至少一个数据读取请求进行响应,以使得后续的至少一个数据读取请求的缓存命中率降低。如此可以实现当缓存设备的负载较大时,降低数据读取请求命中该缓存设备的概率,即降低该缓存设备的缓存命中率,进而确保缓存设备保持良好的数据传输性能。
Description
技术领域
本发明涉及数据存储技术领域,特别是涉及一种缓存命中率的调整方法、装置、设备和存储介质。
背景技术
现有的缓存***的特点是每一个磁盘都通过一个固定的IP和端口对外服务,并且独占一个线程。可以认为每一个磁盘都有一个独立的服务实例。当客户端向缓存***请求数据时,只要所请请求的数据为已经缓存在缓存***中的热点数据,缓存***就会将客户端所请求的数据返回给客户端。这种方式下,当客户端持续请求访问的热点数据都大量集中在一个磁盘上时,磁盘输入/输出性能有限,以及网卡的网络带宽限制会导致热点数据的输出受到限制,严重影响磁盘的数据传输性能,进而降低缓存***快速提供热点数据的能力。
发明内容
本发明实施例的目的在于提供一种缓存命中率的调整方法、装置、设备和存储介质,以实现当缓存设备的负载较大时,降低数据读取请求命中该缓存设备的概率,即降低该缓存设备的缓存命中率,进而确保缓存设备保持良好的数据传输性能。具体技术方案如下:
第一方面,一种缓存命中率的调整方法,包括:
获得根据数据读取请求从缓存设备中读取数据所花费的读取时长;
根据所述读取时长确定所述缓存设备的负载参数;
根据所述缓存设备的负载参数确定是否需对所述缓存设备的缓存命中率进行调整,如果是,则确定与所述负载参数匹配的命中折扣率;
根据所述命中折扣率对后续的至少一个数据读取请求进行响应,以使得后续的至少一个数据读取请求的缓存命中率降低。
结合第一方面,在某些可选的实施方式中,所述根据所述命中折扣率对后续的至少一个数据读取请求进行响应,以使得后续的至少一个数据读取请求的缓存命中率降低,包括:
根据所述命中折扣率和所述缓存设备的当前缓存命中率确定所述缓存设备的目标缓存命中率;
根据目标缓存命中率对后续的至少一个数据读取请求进行响应,以使得后续的至少一个数据读取请求的缓存命中率降低。
结合上一个实施方式,在某些可选的实施方式中,所述根据目标缓存命中率对后续的至少一个数据读取请求进行响应,以使得后续的至少一个数据读取请求的缓存命中率降低,包括:
获得第一数据读取请求;
当所述缓存设备中存储有所述第一数据读取请求所请求的数据时,生成随机数,其中,所述随机数位于预设数值范围内;
确定所述随机数是否位于第一数值范围内,如果是,则向所述第一数据读取请求的发送方返回第一保存地址,其中,所述第一保存地址为所述第一数据读取请求所请求读取的数据在所述缓存设备中的保存地址;否则,向所述第一数据读取请求的发送方返回其所请求的数据未保存在所述缓存设备的指示;
其中,所述第一数值范围与所述预设数值范围的数值范围的比值与所述目标缓存命中率匹配。
可选的,在某些可选的实施方式中,所述第一数值范围、所述预设数值范围、所述目标缓存命中率和所述当前缓存命中率之间的数学关系如下:
所述第一数值范围=(所述目标缓存命中率÷所述当前缓存命中率)×所述预设数值范围。
可选的,在某些可选的实施方式中,所述第一数值范围与所述预设数值范围的比值等于所述命中折扣率。
第二方面,一种缓存命中率的调整装置,包括:时长获得单元、负载参数确定单元、调整确定单元、折扣率确定单元和命中率降低单元;
所述时长获得单元,被配置为执行获得根据数据读取请求从缓存设备中读取数据所花费的读取时长;
所述负载参数确定单元,被配置为执行根据所述读取时长确定所述缓存设备的负载参数;
所述调整确定单元,被配置为执行根据所述缓存设备的负载参数确定是否需对所述缓存设备的缓存命中率进行调整,如果是,则触发所述折扣率确定单元
所述折扣率确定单元,被配置为执行确定与所述负载参数匹配的命中折扣率;
所述命中率降低单元,被配置为执行根据所述命中折扣率对后续的至少一个数据读取请求进行响应,以使得后续的至少一个数据读取请求的缓存命中率降低。
结合第二方面,在某些可选的实施方式中,所述命中率降低单元,包括:目标命中率确定单元和第一命中率降低单元;
所述目标命中率确定单元,被配置为执行根据所述命中折扣率和所述缓存设备的当前缓存命中率确定所述缓存设备的目标缓存命中率;
所述第一命中率降低单元,被配置为执行根据目标缓存命中率对后续的至少一个数据读取请求进行响应,以使得后续的至少一个数据读取请求的缓存命中率降低。
结合上一个实施方式,在某些可选的实施方式中,所述第一命中率降低单元,包括:读取请求获得单元、随机数生成单元、范围确定单元、地址返回单元和指示返回单元;
所述读取请求获得单元,被配置为执行获得第一数据读取请求;
所述随机数生成单元,被配置为执行当所述缓存设备中存储有所述第一数据读取请求所请求的数据时,生成随机数,其中,所述随机数位于预设数值范围内;
所述范围确定单元,被配置为执行确定所述随机数是否位于第一数值范围内,如果是,则触发所述地址返回单元,否则,触发所述指示返回单元
所述地址返回单元,被配置为执行向所述第一数据读取请求的发送方返回第一保存地址,其中,所述第一保存地址为所述第一数据读取请求所请求读取的数据在所述缓存设备中的保存地址;
指示返回单元,被配置为执行向所述第一数据读取请求的发送方返回其所请求的数据未保存在所述缓存设备的指示;
其中,所述第一数值范围与所述预设数值范围的数值范围的比值与所述目标缓存命中率匹配。
第三方面,一种存储介质,所述存储介质用于存储程序,所述程序被处理器执行时实现任一项所述的缓存命中率的调整方法。
第四方面,一种设备,所述设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序,所述程序至少用于实现任一项所述的缓存命中率的调整方法。
本发明实施例提供的一种缓存命中率的调整方法、装置、设备和存储介质,通过获得根据数据读取请求从缓存设备中读取数据所花费的读取时长;根据所述读取时长确定所述缓存设备的负载参数;根据所述缓存设备的负载参数确定是否需对所述缓存设备的缓存命中率进行调整,如果是,则确定与所述负载参数匹配的命中折扣率;根据所述命中折扣率对后续的至少一个数据读取请求进行响应,以使得后续的至少一个数据读取请求的缓存命中率降低。由此可知,本发明可以实现当缓存设备的负载较大时,降低数据读取请求命中该缓存设备的概率,即降低该缓存设备的缓存命中率,进而确保缓存设备保持良好的数据传输性能。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的客户端向缓存设备请求热点数据的一种流程图;
图2为本发明提供的客户端向缓存设备请求热点数据的另一种流程图;
图3为本发明提供的一种缓存命中率的调整方法的流程图;
图4为本发明提供的另一种缓存命中率的调整方法的流程图;
图5为本发明提供的一种缓存命中率的调整装置的结构示意图;
图6为本发明提供的一种设备的结构示意图。
具体实施方式
由于在实际的***中,有些数据是经常被访问的数据,这些经常被访问的数据可以称之为热点数据。对于热点数据,目前通常是将热点数据存入到缓存***中的缓存设备,缓存设备具有较高的数据读写速度,可以为其它设备或***快速提供数据,以提高其它设备或***获取数据的速度。
具体的,带有缓存***的存储***可以包括:客户端设备、数据服务器、缓存服务器、缓存设备、索引服务器和非缓存设备,其中,缓存设备可以为内存、固态存储盘等具有较高的数据读写速度的存储设备。非缓存设备可以为机械存储盘等不为缓存设备的存储设备。非缓存设备的数据读写速度一般低于缓存设备,例如机械存储盘的读写速度一般低于内存和固态存储盘。其中,缓存***可以包括:缓存服务器和缓存设备。
客户端设备可以为计算机、手机、平板电脑、可穿戴设备等各种电子设备。
数据服务器可以和客户端设备通过SDK(软件开发工具包,Software DevelopmentKit)进行通信。
缓存服务器中可以保存有缓存设备中保存的数据的索引信息,当数据以数据块为单位进行存储时,缓存服务器中保存的索引信息可以为:(file_id,block_id)=>(disk_id,block_id)。其中,(file_id,block_id)中的file_id为文件ID,(file_id,block_id)中的block_id为数据块ID。(disk_id,block_id)中的disk_id为缓存设备的磁盘ID,(disk_id,block_id)中的block_id为磁盘块ID。
其中,一个磁盘块的存储空间与一个完整的数据块的数据量相同。
通过上述的索引信息就可以确定各文件的各数据块是否存储在缓存设备中以及存储在缓存设备的哪一个磁盘的哪一个磁盘块中。
与缓存服务器类似,索引服务器中可以保存有非缓存设备中保存的数据的索引信息,当数据以数据块为单位进行存储时,索引服务器中保存的索引信息可以为:(file_id,block_id)=>(disk_id,block_id)。其中,(file_id,block_id)中的file_id为文件ID,(file_id,block_id)中的block_id为数据块ID。(disk_id,block_id)中的disk_id为非缓存设备的磁盘ID,(disk_id,block_id)中的block_id为磁盘块ID。
通过上述的索引信息就可以确定各文件的各数据块是否存储在非缓存设备中以及存储在非缓存设备的哪一个磁盘的哪一个磁盘块中。
为方便理解,下面将带有缓存***的存储***的一种数据读取流程公开如下:
当客户端设备所请求读取的数据在缓存设备中有保存时,数据读取流程如图1所示,包括:
S1、客户端设备向数据服务器发送数据访问请求;
S2、数据服务器将数据访问请求发送到缓存服务器中;
S3、缓存服务器确定客户端设备所请求的数据是否保存在缓存设备中,如果是,则执行S4;
S4、缓存服务器将客户端设备所请求的数据在缓存设备中的保存地址发送到数据服务器;
S5、数据服务器在接收到缓存服务器返回的保存地址后,从缓存设备的该保存地址获得客户端设备所请求的数据;
S6、数据服务器将客户端设备所请求的数据返回给客户端设备。
当客户端设备所请求读取的数据没有在缓存设备中有保存时,数据读取流程如图2所示,包括:
S1、客户端设备向数据服务器发送数据访问请求;
S2、数据服务器将数据访问请求发送到缓存服务器中;
S3、缓存服务器确定客户端设备所请求的数据是否保存在缓存设备中,如果没有保存在缓存设备中,执行步骤S7;
S7、缓存服务器将客户端设备所请求的数据未保存在缓存设备中的通知发送到数据服务器;
S8、数据服务器在接收到缓存服务器返回的客户端设备所请求的数据未保存在缓存设备中的通知后,数据服务器向索引服务器发送上述数据访问请求;
S9、索引服务器将客户端设备所请求的数据在非缓存设备中的保存地址发送到数据服务器;
S10、数据服务器在接收到索引服务器返回的保存地址后,从非缓存设备的该保存地址获得客户端设备所请求的数据;
S11、数据服务器将客户端设备所请求的数据返回给客户端设备。
经本发明人研究发现,在上述处理流程下,当客户端向缓存***请求数据时,只要所请求的数据为已经缓存在缓存***中的热点数据,缓存***就会将客户端所请求的数据返回给客户端。当客户端持续请求访问的热点数据都大量集中在一个磁盘上时,由于磁盘输入/输出性能有限,以及网卡的网络带宽限制会导致热点数据的输出受到限制,严重影响磁盘的数据传输性能,进而降低缓存***快速提供热点数据的能力,为解决上述问题,本发明人提供了如下方案。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图3所示,本发明提供了一种缓存命中率的调整方法,包括:
S100、获得根据数据读取请求从缓存设备中读取数据所花费的读取时长;
应理解,本发明的执行主体可以是缓存服务器,当客户端向缓存服务器请求的数据已经缓存至缓存设备中时,即可以认为该数据读取请求命中热点数据。热点数据被命中后,缓存服务器可以从数据服务器中获得所述读取时长,可以是缓存服务器主动向数据服务器请求该读取时长,也可以是数据服务器主动上报给缓存服务器,例如通过ZooKeeper上报的方式将该读取时长上报给缓存服务器,本发明对此不做限制。ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致***的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
上述S5中,数据服务器在接收到缓存服务器返回的保存地址后,从缓存设备的该保存地址获得客户端所请求的数据。即从指定的缓存设备读取数据,这个读取过程的时长可以作为上述读取时长。
数据服务器可以把该时长(或一段时间内的平均时长)上报给缓存服务器,缓存服务器可以对该时长做转换处理,例如转换为该缓存设备的磁盘分数,或者数据服务器先把时长转换为一个“分数”再上报给缓存服务器,本发明对此不做限制。
由于数据读取请求从缓存设备中读取数据所花费的读取时长可能和缓存设备当前的输入/输出性能以及带宽限制有关,因此通过数据读取请求从缓存设备中读取数据所花费的读取时长,可以推测该缓存设备的负载情况。该缓存设备的负载可以为缓存设备根据数据读取请求所处理的任务量。其中,缓存设备根据数据读取请求所处理的任务可以包括:缓存数据读取任务、缓存数据发送任务、缓存设备压缩任务等。
当缓存设备需要处理的数据读取请求的数量较多时,处理这些数据读取请求将使用缓存设备的输入/输出的功能以及网络带宽,由于缓存设备的输入/输出性能有限以及网络带宽有限,从而可能导致处理数据读取请求所花费的读取时长较长。
根据数据读取请求从缓存设备中读取数据所花费的读取时长可以在一定程度上反映出该缓存设备当前的输入/输出性能。例如:读取时长越长,则说明该缓存设备的输入/输出性能可能越差。读取时长也可以一定程度上反映该缓存设备的负载。例如:读取时长越长,则说明该缓存设备的负载可能过大,导致该缓存设备无法及时处理相应的数据读取请求,从而降低了缓存设备的输入/输出性能,进一步降低了缓存***快速提供热点数据的能力。
根据数据读取请求从缓存设备中读取数据所花费的读取时长可以在一定程度上反映出该缓存设备当前的网络带宽的使用程度。例如:读取时长越长,则说明该缓存设备的网络宽带的使用情况已经达到饱和的程度或接近饱和的程度,使得该缓存设备没有多余的网络宽带来提高数据传输能力。
应理解,本文所说的缓存设备可以是磁盘设备,例如是固态盘。缓存设备可以是具体一个固态盘,也可以是一个固态盘服务器及其通信连接的多个固态盘的总称,本发明对此不做限制。
S200、根据所述读取时长确定所述缓存设备的负载参数;
应理解,读取时长一定程度上反映了该缓存设备的负载,即反映了该缓存设备的承受的“任务”的繁重程度,繁重程度可以用负载参数来表征。例如,缓存设备所承受的“任务”越繁重,负载参数越大。
可选的,负载参数可以为负载数量,即:正在处理的数据读取请求的数量。
可选的,负载参数也可以为与读取时长匹配的一个数值范围。例如,负载参数的取值范围可以是从0到100,数值越大,说明缓存设备的负载越大,即缓存设备的输入/输出能力越差。当然,本发明对负载参数的取值范围的设定不做任何限制,任何可行的方式均属于本发明的保护范围。
S300、根据所述缓存设备的负载参数确定是否需对所述缓存设备的缓存命中率进行调整,如果是,则执行S400;
应理解,对于缓存设备而言,由于对于数据的读取能力有限,使得其能承受的负载也有限。所以当缓存设备的负载参数超过一定数值范围后,可以说明该缓存设备已经超“负荷”运行,即缓存设备的性能已经由于负载过大,出现下降。这种情况下,可以对缓存设备的缓存命中率进行调整,即可以降低缓存设备的缓存命中率,从而降低缓存设备的负载。
应理解,可以为缓存设备设定负载上限阈值,当缓存设备的负载参数大于负载上限阈值后,可以确定对缓存设备的缓存命中率进行调整,本发明对此不做限制。
S400、确定与所述负载参数匹配的命中折扣率;
应理解,在步骤S300中确定需对缓存设备的缓存命中率进行调整后,则可以确定具体的命中折扣率。命中折扣率可以体现出对缓存设备的缓存命中率的降低程度,命中折扣率越大,则说明对缓存设备的缓存命中率的降低程度越大。
S500、根据所述命中折扣率对后续的至少一个数据读取请求进行响应,以使得后续的至少一个数据读取请求的缓存命中率降低。
应理解,根据所述命中折扣率对后续的至少一个数据读取请求进行响应,可以有多种方式。例如,第一种方式:若命中折扣率为30%,则可以划分两个数值范围,分别为第一范围和第二范围,例如分别是0至0.7和0.7至1。对于一个数据读取请求而言,可以在确定该数据读取请求命中缓存设备后,再通过获得随机数(取值范围为0至1)的方式,若所获得的随机数位于0至0.7的范围,则将该数据读取请求命中缓存设备的结果返回给客户端。若获得的随机数位于0.7至1的范围,则尽管该数据读取请求已命中缓存设备,但返回给客户端该数据读取请求未命中缓存设备的结果,从而实现了对缓存设备的缓存命中率进行降低的目的。通过上述方式,可以实现将缓存设备的缓存命中率降低。
第二种方式,若命中折扣率为30%,则可以划分两个数值范围,分别为第一范围和第二范围,例如分别是0至70和70至100。对于一个数据读取请求而言,可以未确定该数据读取请求是否命中缓存设备前,先通过获得随机数(取值范围为0至100)的方式,若所获得的随机数位于0至70的范围,则将该数据读取请求对于缓存设备的请求结果返回给客户端,若命中,则返回的请求结果是将该数据读取请求命中缓存设备。若获得的随机数位于70至100的范围,则不管该数据读取请求是否命中缓存设备,返回给客户端的请求结果是该数据读取请求未命中缓存设备的结果,从而实现了对缓存设备的缓存命中率进行降低的目的。通过上述方式,也可以实现将缓存设备的缓存命中率降低。
可选的,在某些可选的实施方式中,所述根据所述命中折扣率对后续的至少一个数据读取请求进行响应,以使得后续的至少一个数据读取请求的缓存命中率降低,包括:
步骤一、根据所述命中折扣率和所述缓存设备的当前缓存命中率确定所述缓存设备的目标缓存命中率;
步骤二、根据目标缓存命中率对后续的至少一个数据读取请求进行响应,以使得后续的至少一个数据读取请求的缓存命中率降低。
应理解,在实际中,在确定命中折扣率之后,还可以根据命中折扣率和缓存设备的当前缓存命中率确定目标命中率。然后将后续数据读取请求命中该缓存设备的缓存命中率调整为目标命中率或接近目标命中率。
应理解,本发明通过上述随机数的方式降低缓存命中率,从一定程度上可以使得该缓存设备被数据读取请求命中的缓存命中率总体上趋近于目标命中率。但对于具体一个数据读取请求而言,其命中该缓存设备的概率并不一定趋近于目标命中率,本发明对此不做限制。
如图4所示,结合上一个实施方式,在某些可选的实施方式中,上述步骤二,包括:
S510、获得第一数据读取请求;
应理解,本文仅以第一数据读取请求为例说明缓存设备如何根据所述命中折扣率对后续的至少一个数据读取请求进行响应,以使得后续的至少一个数据读取请求的缓存命中率降低。对于任何一个数据读取请求而言,均可以采用与本例相同的方案,本发明对此不做限制。
S520、当所述缓存设备中存储有所述第一数据读取请求所请求的数据时,生成随机数,其中,所述随机数位于预设数值范围内;
应理解,缓存设备中可以预先缓存有热点数据,当具体一个数据被确定为热点数据后,可以将其缓存至缓存设备中,并在缓存设备中记录该数据的信息。例如建立该数据的索引信息,以便于可以根据第一数据读取请求所请求的数据,快速确定所请求的数据是否位于缓存设备中。当缓存设备中存在所请求的数据的索引信息时,即可以认为缓存设备中存储有所请求的数据。
应理解,当所述缓存设备中存储有所述第一数据读取请求所请求的数据时,才生成随机数,可以一定程度上减少缓存设备的运行负担。因为若缓存设备中不存在第一数据读取请求所请求的数据,则第一数据读取请求必然不会命中缓存设备,直接向客户端返回第一数据读取请求未命中缓存设备的结果即可,而无需生成随机数,以及后续进行后续根据随机数降低缓存命中率的步骤。
应理解,本发明可以在确定所述缓存设备中存储有所述第一数据读取请求所请求的数据后,再生成随机数。本发明也可以在缓存设备获得第一数据读取请求后,无论缓存设备中是否存储有第一数据读取请求所请求的数据,都可以生成随机数。
S530、确定所述随机数是否位于第一数值范围内,如果是,则执行S540,否则执行S550,其中,所述第一数值范围与所述预设数值范围的数值范围的比值与所述目标缓存命中率匹配;
应理解,可以将随机数的预设数值范围进一步细分划分为两个范围,当随机数位于其中一个数值范围时,可以执行步骤S540,例如其中一个数值范围是第一数值范围,当随机数位于另一个数值范围时,可以执行步骤S550,本发明对此不做限制。
S540、向所述第一数据读取请求的发送方返回第一保存地址,其中,所述第一保存地址为所述第一数据读取请求所请求读取的数据在所述缓存设备中的保存地址;
应理解,若随机数是在本发明确定所述缓存设备中存储有所述第一数据读取请求所请求的数据后生成的,那么当随机数位于第一数值范围时,可以向所述第一数据读取请求的发送方返回第一保存地址。第一数据读取请求的发送方在接收到第一保存地址后,即可从缓存设备中获得所请求读取的数据。
可选的,若随机数是在缓存设备获得第一数据读取请求后生成的随机数。那么当随机数位于第一数值范围时,可以根据第一数据读取请求是否命中缓存设备的实际情况向第一数据读取请求的发送方发送响应。若第一数据读取请求命中缓存设备,则向第一数据读取请求的发送方发送第一保存地址。若第一数据读取请求未命中缓存设备,则向第一数据读取请求的发送方发送第一数据读取请求未命中缓存设备的结果。
可选的,第一保存地址可以为第一数据读取请求所请求读取的数据在缓存设备中的保存地址,也可以是第一数据读取请求所请求读取的数据在其他存储设备中的保存地址,本发明对此不做限制。
应理解,第一数据读取请求的发送方在获得第一保存地址后,可以从缓存设备中获得第一保存地址所保存的数据,即获得第一数据读取请求所请求读取的数据。
S550、向所述第一数据读取请求的发送方返回其所请求的数据未保存在所述缓存设备的指示。
应理解,若随机数不位于第一数值范围内,则可以向第一数据读取请求的发送方发送第一数据读取请求所请求的数据未保存在缓存设备中的指示。指示的方式可以有多种,例如规定二进制数“0”为第一数据读取请求所请求的数据未保存在缓存设备中的指示,当然也可以采用其他的指示方式,本发明对此不做限制。
应理解,只要随机数不位于第一数值范围内,就可以直接向第一数据读取请求的发送方发送第一数据读取请求所请求的数据未保存在缓存设备中的指示。而无需关注第一数据读取请求所请求的数据实际是否真正未保存在缓存设备中,即使第一数据读取请求所请求的数据实际保存在缓存设备中,也向第一数据读取请求的发送方发送第一数据读取请求所请求的数据未保存在缓存设备中的指示,如此可以降低缓存设备的缓存命中率。
应理解,图4中的步骤S100、S200、S300和S400已在上一个实施方式中说明,本实施方式不再赘述。
结合图4所示的实施方式,在某些可选的实施方式中,所述第一数值范围、所述预设数值范围、所述目标缓存命中率和所述当前缓存命中率之间的数学关系如下:
所述第一数值范围=(所述目标缓存命中率÷所述当前缓存命中率)×所述预设数值范围。
应理解,上述数学关系仅是本方案的其中一种可选实施方式,任何在上述数学关系的基础上做的适当变换或改动均属于本发明的保护范围。
可选的,任何通过随机数的结果来确定向第一数据读取请求的返回的结果,从而降低缓存设备的缓存命中率的方式均属于本发明的保护范围。至于将缓存设备的缓存命中率降低多少,可以采用上述数学关系进行设定,也可以采用其他方式进行设定,视实际情况来设定,但最终效果是降低缓存设备的缓存命中率的方式均属于本发明的保护范围。
结合图4所示的实施方式,在某些可选的实施方式中,所述第一数值范围与所述预设数值范围的比值等于所述命中折扣率。
应理解,对于一个数据读取请求而言,可以在确定该数据读取请求命中缓存设备后,再获得随机数,若所获得的随机数位于第一数值范围,则将该数据读取请求命中缓存设备的结果返回给客户端。这种方式下,所述预设数值范围的比值可以等于所述命中折扣率,本发明对此不做限制。
如图5所示,本发明提供了一种缓存命中率的调整装置,包括:时长获得单元100、负载参数确定单元200、调整确定单元300、折扣率确定单元400和命中率降低单元500;
所述时长获得单元100,被配置为执行获得根据数据读取请求从缓存设备中读取数据所花费的读取时长;
所述负载参数确定单元200,被配置为执行根据所述读取时长确定所述缓存设备的负载参数;
所述调整确定单元300,被配置为执行根据所述缓存设备的负载参数确定是否需对所述缓存设备的缓存命中率进行调整,如果是,则触发所述折扣率确定单元
所述折扣率确定单元400,被配置为执行确定与所述负载参数匹配的命中折扣率;
所述命中率降低单元500,被配置为执行根据所述命中折扣率对后续的至少一个数据读取请求进行响应,以使得后续的至少一个数据读取请求的缓存命中率降低。
结合图5所示的实施方式,在某些可选的实施方式中,所述命中率降低单元500,包括:目标命中率确定单元和第一命中率降低单元;
所述目标命中率确定单元,被配置为执行根据所述命中折扣率和所述缓存设备的当前缓存命中率确定所述缓存设备的目标缓存命中率;
所述第一命中率降低单元,被配置为执行根据目标缓存命中率对后续的至少一个数据读取请求进行响应,以使得后续的至少一个数据读取请求的缓存命中率降低。
结合上一个实施方式,在某些可选的实施方式中,所述第一命中率降低单元,包括:读取请求获得单元、随机数生成单元、范围确定单元、地址返回单元和指示返回单元;
所述读取请求获得单元,被配置为执行获得第一数据读取请求;
所述随机数生成单元,被配置为执行当所述缓存设备中存储有所述第一数据读取请求所请求的数据时,生成随机数,其中,所述随机数位于预设数值范围内;
所述范围确定单元,被配置为执行确定所述随机数是否位于第一数值范围内,如果是,则触发所述地址返回单元,否则,触发所述指示返回单元
所述地址返回单元,被配置为执行向所述第一数据读取请求的发送方返回第一保存地址,其中,所述第一保存地址为所述第一数据读取请求所请求读取的数据在所述缓存设备中的保存地址;
指示返回单元,被配置为执行向所述第一数据读取请求的发送方返回其所请求的数据未保存在所述缓存设备的指示;
其中,所述第一数值范围与所述预设数值范围的数值范围的比值与所述目标缓存命中率匹配。
本发明提供了一种存储介质,所述存储介质用于存储程序,所述程序被处理器执行时实现任一项所述的缓存命中率的调整方法。
所述一种缓存命中率的调整装置包括处理器和存储器,上述时长获得单元100、负载参数确定单元200、调整确定单元300、折扣率确定单元400和命中率降低单元500等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现当缓存设备的负载较大时,降低数据读取请求命中该缓存设备的概率,即降低该缓存设备的缓存命中率,进而确保缓存设备保持良好的数据传输性能。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述缓存命中率的调整方法。
如图6所示,本发明实施例提供了一种设备70,设备70包括至少一个处理器701、以及与处理器701连接的至少一个存储器702、总线703;其中,处理器701、存储器702通过总线703完成相互间的通信;处理器701用于调用存储器702中的程序指令,以执行上述的缓存命中率的调整方法。本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有上述的缓存命中率的调整方法包括的步骤的程序。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在一个典型的配置中,设备包括一个或多个处理器(CPU)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种缓存命中率的调整方法,其特征在于,包括:
获得根据数据读取请求从缓存设备中读取数据所花费的读取时长;
根据所述读取时长确定所述缓存设备的负载参数;
根据所述缓存设备的负载参数确定是否需对所述缓存设备的缓存命中率进行调整,如果是,则确定与所述负载参数匹配的命中折扣率;
根据所述命中折扣率对后续的至少一个数据读取请求进行响应,以使得后续的至少一个数据读取请求的缓存命中率降低。
2.根据权利要求1所述的方法,其特征在于,所述根据所述命中折扣率对后续的至少一个数据读取请求进行响应,以使得后续的至少一个数据读取请求的缓存命中率降低,包括:
根据所述命中折扣率和所述缓存设备的当前缓存命中率确定所述缓存设备的目标缓存命中率;
根据目标缓存命中率对后续的至少一个数据读取请求进行响应,以使得后续的至少一个数据读取请求的缓存命中率降低。
3.根据权利要求2所述的方法,其特征在于,所述根据目标缓存命中率对后续的至少一个数据读取请求进行响应,以使得后续的至少一个数据读取请求的缓存命中率降低,包括:
获得第一数据读取请求;
当所述缓存设备中存储有所述第一数据读取请求所请求的数据时,生成随机数,其中,所述随机数位于预设数值范围内;
确定所述随机数是否位于第一数值范围内,如果是,则向所述第一数据读取请求的发送方返回第一保存地址,其中,所述第一保存地址为所述第一数据读取请求所请求读取的数据在所述缓存设备中的保存地址;否则,向所述第一数据读取请求的发送方返回其所请求的数据未保存在所述缓存设备的指示;
其中,所述第一数值范围与所述预设数值范围的数值范围的比值与所述目标缓存命中率匹配。
4.根据权利要求3所述的方法,其特征在于,所述第一数值范围、所述预设数值范围、所述目标缓存命中率和所述当前缓存命中率之间的数学关系如下:
所述第一数值范围=(所述目标缓存命中率÷所述当前缓存命中率)×所述预设数值范围。
5.根据权利要求3所述的方法,其特征在于,所述第一数值范围与所述预设数值范围的比值等于所述命中折扣率。
6.一种缓存命中率的调整装置,其特征在于,包括:时长获得单元、负载参数确定单元、调整确定单元、折扣率确定单元和命中率降低单元;
所述时长获得单元,被配置为执行获得根据数据读取请求从缓存设备中读取数据所花费的读取时长;
所述负载参数确定单元,被配置为执行根据所述读取时长确定所述缓存设备的负载参数;
所述调整确定单元,被配置为执行根据所述缓存设备的负载参数确定是否需对所述缓存设备的缓存命中率进行调整,如果是,则触发所述折扣率确定单元
所述折扣率确定单元,被配置为执行确定与所述负载参数匹配的命中折扣率;
所述命中率降低单元,被配置为执行根据所述命中折扣率对后续的至少一个数据读取请求进行响应,以使得后续的至少一个数据读取请求的缓存命中率降低。
7.根据权利要求6所述的装置,其特征在于,所述命中率降低单元,包括:目标命中率确定单元和第一命中率降低单元;
所述目标命中率确定单元,被配置为执行根据所述命中折扣率和所述缓存设备的当前缓存命中率确定所述缓存设备的目标缓存命中率;
所述第一命中率降低单元,被配置为执行根据目标缓存命中率对后续的至少一个数据读取请求进行响应,以使得后续的至少一个数据读取请求的缓存命中率降低。
8.根据权利要求7所述的装置,其特征在于,所述第一命中率降低单元,包括:读取请求获得单元、随机数生成单元、范围确定单元、地址返回单元和指示返回单元;
所述读取请求获得单元,被配置为执行获得第一数据读取请求;
所述随机数生成单元,被配置为执行当所述缓存设备中存储有所述第一数据读取请求所请求的数据时,生成随机数,其中,所述随机数位于预设数值范围内;
所述范围确定单元,被配置为执行确定所述随机数是否位于第一数值范围内,如果是,则触发所述地址返回单元,否则,触发所述指示返回单元
所述地址返回单元,被配置为执行向所述第一数据读取请求的发送方返回第一保存地址,其中,所述第一保存地址为所述第一数据读取请求所请求读取的数据在所述缓存设备中的保存地址;
指示返回单元,被配置为执行向所述第一数据读取请求的发送方返回其所请求的数据未保存在所述缓存设备的指示;
其中,所述第一数值范围与所述预设数值范围的数值范围的比值与所述目标缓存命中率匹配。
9.一种存储介质,其特征在于,所述存储介质用于存储程序,所述程序被处理器执行时实现权利要求1至5中任一项所述的缓存命中率的调整方法。
10.一种设备,其特征在于,所述设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序,所述程序至少用于实现权利要求1至5中任一项所述的缓存命中率的调整方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010995183.0A CN114253455A (zh) | 2020-09-21 | 2020-09-21 | 一种缓存命中率的调整方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010995183.0A CN114253455A (zh) | 2020-09-21 | 2020-09-21 | 一种缓存命中率的调整方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114253455A true CN114253455A (zh) | 2022-03-29 |
Family
ID=80788264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010995183.0A Pending CN114253455A (zh) | 2020-09-21 | 2020-09-21 | 一种缓存命中率的调整方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114253455A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115829825A (zh) * | 2023-01-10 | 2023-03-21 | 南京砺算科技有限公司 | 图元数据的装载控制方法、图形处理器、设备及存储介质 |
-
2020
- 2020-09-21 CN CN202010995183.0A patent/CN114253455A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115829825A (zh) * | 2023-01-10 | 2023-03-21 | 南京砺算科技有限公司 | 图元数据的装载控制方法、图形处理器、设备及存储介质 |
CN115829825B (zh) * | 2023-01-10 | 2023-05-05 | 南京砺算科技有限公司 | 图元数据的装载控制方法、图形处理器、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9984013B2 (en) | Method, controller, and system for service flow control in object-based storage system | |
CN109005056B (zh) | 基于cdn应用的存储容量评估方法和装置 | |
US9454407B2 (en) | Service resource allocation | |
CN113010818B (zh) | 访问限流方法、装置、电子设备及存储介质 | |
CN106713028B (zh) | 业务降级方法、装置和分布式任务调度*** | |
US10263876B2 (en) | Adaptive service timeouts | |
CN101510219A (zh) | 文件数据访问方法、装置以及*** | |
CN111782692B (zh) | 一种频率控制方法及装置 | |
CN109889451B (zh) | 网络限速的***及其方法和服务器 | |
US20170153909A1 (en) | Methods and Devices for Acquiring Data Using Virtual Machine and Host Machine | |
US20200374376A1 (en) | Distributing Requests for Data Among Servers Based On Indicators of Intent to Access the Data | |
CN109951543A (zh) | 一种cdn节点的数据查找方法、装置及网络设备 | |
CN112422610A (zh) | 一种基于分布式对象存储的智能网关方法和*** | |
CN114253455A (zh) | 一种缓存命中率的调整方法、装置、设备和存储介质 | |
CN104202349B (zh) | 分布式缓存资源调度的方法、装置及*** | |
CN106612263B (zh) | 一种用于处理应用访问请求的方法与设备 | |
US11431669B2 (en) | Server configuration method and apparatus | |
CN110781500A (zh) | 一种数据风控***以及方法 | |
CN116055401A (zh) | 一种消息处理方法、装置、设备及存储介质 | |
CN105763508B (zh) | 一种数据访问方法和应用服务器 | |
CN110868333A (zh) | 一种用于网关的数据缓存方法及*** | |
CN114500484A (zh) | 页面渲染方法、装置、电子设备及可读介质 | |
CN114500663B (zh) | 内容分发网络设备的调度方法、装置、设备及存储介质 | |
CN113989034B (zh) | 银行属性数据管理方法、装置、电子设备及存储介质 | |
CN109302484B (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 |