CN108595347A - 一种缓存控制方法、装置及计算机可读存储介质 - Google Patents

一种缓存控制方法、装置及计算机可读存储介质 Download PDF

Info

Publication number
CN108595347A
CN108595347A CN201810381232.4A CN201810381232A CN108595347A CN 108595347 A CN108595347 A CN 108595347A CN 201810381232 A CN201810381232 A CN 201810381232A CN 108595347 A CN108595347 A CN 108595347A
Authority
CN
China
Prior art keywords
read
writing
buffer
write
storage ratio
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.)
Granted
Application number
CN201810381232.4A
Other languages
English (en)
Other versions
CN108595347B (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.)
China Mobile Communications Group Co Ltd
MIGU Music Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
MIGU Music 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 China Mobile Communications Group Co Ltd, MIGU Music Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201810381232.4A priority Critical patent/CN108595347B/zh
Publication of CN108595347A publication Critical patent/CN108595347A/zh
Application granted granted Critical
Publication of CN108595347B publication Critical patent/CN108595347B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating

Abstract

本发明公开了一种缓存控制方法,包括:获取读缓存在历史单位时间段内存入的第一读取量,以及写缓存在历史单位时间段内存入的第一写入量;将所述第一读取量与所述第一写入量进行比较,得到比较结果;根据所述比较结果确定存储比率待更新的缓存;利用所述第一读取量以及所述第一写入量,以及预先确定的读缓存的预估读取量以及写缓存的预估写入量,确定所述存储比率待更新的缓存对应的存储比率;所述存储比率表征当满足读写需求时所述存储比率待更新的缓存的内存使用率;利用确定的存储比率,对所述存储比率待更新的缓存的内存使用率进行更新。本发明还同时公开了一种缓存控制装置以及计算机可读存储介质。

Description

一种缓存控制方法、装置及计算机可读存储介质
技术领域
本发明涉及互联网技术领域,尤其涉及一种缓存控制方法、装置及计算机可读存储介质。
背景技术
目前,随着数据量急剧增大以及数据挖掘技术的快速发展,面对日益增长的海量数据,分布式数据库凭借其更高的数据访问速度以及高可靠性,成为目前比较常用的数据库。
目前,分布式数据库HBase包括:BlockCache(读缓存)、MemStore(写缓存)、StoreFile(HFile)(磁盘文件)。当BlockCache中的数据存满以后,需要通过StoreFile获取,而从StoreFile中读取数据比直接从BlockCache中读取数据的开销要大,因而大大影响读取性能。当MemStore中的数据存满以后,会自动将其中缓存的数据通过flush操作写入到StoreFile中,由于刷入hdfs次数大大增加,因而大大影响写入性能。
因此亟需找到一种能够通过更新缓存的内存使用率以提高读写性能的技术方案。
发明内容
有鉴于此,本发明实施例期望提供一种缓存控制方法、装置及计算机可读存储介质,能够通过更新缓存的内存使用率以提高读写性能。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种缓存控制方法,所述方法包括:
获取读缓存在历史单位时间段内存入的第一读取量,以及写缓存在历史单位时间段内存入的第一写入量;
将所述第一读取量与所述第一写入量进行比较,得到比较结果;根据所述比较结果确定存储比率待更新的缓存;
利用所述第一读取量以及所述第一写入量,以及预先确定的读缓存的预估读取量以及写缓存的预估写入量,确定所述存储比率待更新的缓存对应的存储比率;所述存储比率表征当满足读写需求时所述存储比率待更新的缓存的内存使用率;
利用确定的存储比率,对所述存储比率待更新的缓存的内存使用率进行更新。
上述方案中,所述根据所述比较结果确定存储比率待更新的缓存,包括:
当根据所述比较结果确定所述第一读取量大于所述第一写入量时,确定对读缓存的存储比率进行更新;
当根据所述比较结果确定所述第一读取量小于所述第一写入量时,确定对写缓存的存储比率进行更新。
上述方案中,所述方法还包括:
基于所述读缓存在当前单位时间段内存入的第二读取量,确定在与历史单位时间段时长相同的时间段内所述读缓存存入的预估读取量;
基于所述写缓存在当前单位时间段内存入的第二写入量,得到在与历史单位时间段时长相同的时间段内所述写缓存存入的预估写入量;
其中,所述当前单位时间段的时长小于所述历史单位时间段的时长。
上述方案中,所述存储比率待更新的缓存为读缓存;
所述利用所述第一读取量以及所述第一写入量,以及预先确定的读缓存的预估读取量以及写缓存的预估写入量,确定所述存储比率待更新的缓存对应的存储比率,包括:
利用所述第一读取量,以及所述第一写入量,确定在历史单位时间段内的第一读取量占第一读写总量的第一比例;所述第一读写总量为所述第一读取量与所述第一写入量之和;
利用读缓存的预估读取量以及写缓存的预估写入量,确定在与历史单位时间段时长相同的时间段内的预估读取量与预估读写总量的第二比例;所述预估读写总量为预估读取量与预估写入量之和;
基于所述第一比例和所述第二比例,以及所述读缓存的预设内存使用率,确定所述读缓存对应的存储比率。
上述方案中,所述存储比率待更新的缓存为写缓存;
所述利用所述第一读取量以及所述第一写入量,以及预先确定的所述读缓存的预估读取量以及所述写缓存的预估写入量,确定所述存储比率待更新的缓存对应的存储比率,包括:
利用所述第一读取量,以及所述第一写入量,确定在历史单位时间段内的第一写入量占第一读写总量的第三比例;所述第一读写总量为所述第一读取量与所述第一写入量之和;
利用读缓存的预估读取量以及写缓存的预估写入量,确定在与历史单位时间段时长相同的时间段内的预估写入量与预估读写总量的第四比例;所述预估读写总量为预估读取量与预估写入量之和;
基于所述第三比例和所述第四比例,以及所述写缓存的预设内存使用率,确定所述写缓存对应的存储比率。
本发明实施例提供一种缓存控制装置,所述装置包括:
获取模块,用于获取读缓存在历史单位时间段内存入的第一读取量,以及写缓存在历史单位时间段内存入的第一写入量;
比较模块,用于将所述第一读取量与所述第一写入量进行比较,得到比较结果;
确定模块,用于根据所述比较结果确定存储比率待更新的缓存;还用于利用所述第一读取量以及所述第一写入量,以及预先确定的读缓存的预估读取量以及写缓存的预估写入量,确定所述存储比率待更新的缓存对应的存储比率;所述存储比率表征当满足读写需求时所述存储比率待更新的缓存的内存使用率;
更新模块,用于利用确定的存储比率,对所述存储比率待更新的缓存的内存使用率进行更新。
上述方案中,所述确定模块,具体用于当根据所述比较结果确定所述第一读取量大于所述第一写入量时,确定对读缓存的存储比率进行更新;当根据所述比较结果确定所述第一读取量小于所述第一写入量时,确定对写缓存的存储比率进行更新。
上述方案中,所述确定模块,具体用于所述基于所述读缓存在当前单位时间段内存入的第二读取量,确定在与历史单位时间段时长相同的时间段内所述读缓存存入的预估读取量;基于所述写缓存在当前单位时间段内存入的第二写入量,得到在与历史单位时间段时长相同的时间段内所述写缓存存入的预估写入量;其中,所述当前单位时间段的时长小于所述历史单位时间段的时长。
本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上面所述任一种缓存控制方法的步骤。
本发明实施例提供一种缓存控制装置,包括:存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序;
其中,所述处理器用于运行所述计算机程序时,执行上面所述任一种缓存控制方法的步骤。
本发明实施例提供的缓存控制方法、装置及计算机可读存储介质,获取读缓存在历史单位时间段内存入的第一读取量,以及写缓存在历史单位时间段内存入的第一写入量;将所述第一读取量与所述第一写入量进行比较,得到比较结果;根据所述比较结果确定存储比率待更新的缓存;利用所述第一读取量以及所述第一写入量,以及预先确定的读缓存的预估读取量以及写缓存的预估写入量,确定所述存储比率待更新的缓存对应的存储比率;所述存储比率表征当满足读写需求时所述存储比率待更新的缓存的内存使用率;利用确定的存储比率,对所述存储比率待更新的缓存的内存使用率进行更新。在本发明实施例中,可以利用所述第一读取量以及所述第一写入量,以及预先确定的读缓存的预估读取量以及写缓存的预估写入量,确定存储比率,并利用确定的存储比率对缓存对应的内存使用率进行更新,不仅能够满足读写需求,而且保证通过读缓存读取数据,并减少写缓存的hush次数,进而提高读写性能。
附图说明
图1为本发明实施例缓存控制方法的实现流程示意图;
图2为本发明实施例缓存控制的具体实现流程示意图;
图3为本发明实施例缓存控制装置的组成结构示意图一;
图4为本发明实施例缓存控制装置的组成结构示意图二。
具体实施方式
相关技术中,随着大数据时代的到来,面对日益增长的海量数据,传统的集中式数据库的弊端日益显现,分布式数据库为了保证数据的高可靠性,往往采用备份的策略实现容错,所以,在读取数据的时候,客户端可以并发地从多个备份服务器同时读取,从而提高了数据访问速度。分布式数据库可以通过增添存储节点来实现存储容量的线性扩展。分布式数据库由于采用多台主机组成存储集群,所以相对集中式数据库,它可以提供更高的用户并发访问量。因而,分布式数据库成为目前比较常用的数据库。
在分布式数据库中,传统的文件存放hdfs(Hadoop Distributed File System,分布式文件系统)系统上,用读文件和写文件的方式来获取和存放数据。一般情况下,采用hdfs存放文件,举例来说,在计费系统中,将新增数据写入Hbase memstore中,在到达默认定值时从Hbase memstore中flush到hdfs系统,然后从hdfs文件系统里获取数据文件,经过预处理后,将经过预处理后的数据文件存放于hdfs系统中。随着云计算的发展,在应用软件系统云化后,传统的读写来获取数据已经不能满足云化后系统的需求。
但是,分布式数据库HBase存在读取缺点:当BlockCache中数据缓存满以后,会自动将其中缓存的数据写入到StoreFile(HFile)中,并当BlockCache将缓存数据写入到StoreFile(HFile)后,BlockCache会将缓存数据清除,则在这种情况下,通过BlockCache将无法读取到数据,只能通过StoreFile(HFile)去读取数据,从StoreFile(HFile)中读取数据的开销比直接读BlockCache要大,因而会大大影响读取性能。另外,BlockCache的存储比率一般默认设置为20%,不会根据当前业务量自动增加BlockCache的存储比率。如果盲目将BlockCache的存储比率设置过大,则会占用大量的系统资源,从而影响整个系统读取性能进而直接影响Hbase服务。分布式数据库HBase存在写入缺点:reg读写n server接到请求时,先在Memstore中将操作(key value、时间戳、操作类型)保存为HLog,然后在保存到HDFS(磁盘),然后即可返回写入成功的请求。其中,Memstore保存在内存中,写满后flush为hdfs文件。只要每次memstore刷入hdfs后,会判断hdfs刷入的中最早的操作,然后由另外的线程根据此记录删除旧的HLog文件,在大量写入量时,由于刷入hdfs次数大大增加,会大大影响写入性能。
基于此,本发明实施例中,获取读缓存在历史单位时间段内存入的第一读取量,以及写缓存在历史单位时间段内存入的第一写入量;将所述第一读取量与所述第一写入量进行比较,得到比较结果;根据所述比较结果确定待更新比率的缓存;利用所述第一读取量以及所述第一写入量,以及读缓存的预估读取量以及写缓存的预估写入量,确定所述待更新比率的缓存对应的存储比率;所述存储比率表征当满足读写需求时所述待更新比率的缓存能够存储的最大比值;利用确定的存储比率,对所述待更新比率的缓存的内存使用比率进行更新。
为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明。
如图1所示,详细说明本发明实施例缓存控制方法,包括以下步骤:
步骤101:获取读缓存在历史单位时间段内存入的第一读取量,以及写缓存在历史单位时间段内存入的第一写入量。
实际应用于Hbase系统时,可以定时获取预设历史时间段内的读写量,并将计算的平均读取量作为所述第一读取量,将计算的平均写入量作为所述第一写入量。
步骤102:将所述第一读取量与所述第一写入量进行比较,得到比较结果;根据所述比较结果确定存储比率待更新的缓存。
在一实施例中,所述根据所述比较结果确定存储比率待更新的缓存,包括:当根据所述比较结果确定所述第一读取量大于所述第一写入量时,确定对读缓存的存储比率进行更新;当根据所述比较结果确定所述第一读取量小于所述第一写入量时,确定对写缓存的存储比率进行更新。
实际应用时,针对不需要更新存储比率的缓存,仍然按照缓存预设的内存使用率工作。
步骤103:利用所述第一读取量以及所述第一写入量,以及预先确定的读缓存的预估读取量以及写缓存的预估写入量,确定所述存储比率待更新的缓存对应的存储比率;所述存储比率表征当满足读写需求时所述存储比率待更新的缓存的内存使用率。
在一实施例中,所述方法还包括:基于所述读缓存在当前单位时间段内存入的第二读取量,确定在与历史单位时间段时长相同的时间段内所述读缓存存入的预估读取量;基于所述写缓存在当前单位时间段内存入的第二写入量,得到在与历史单位时间段时长相同的时间段内所述写缓存存入的预估写入量;其中,所述当前单位时间段的时长小于所述历史单位时间段的时长。
需要注意的是,预估读取量与所述第一读取量对应的时间段的时长相同。
在一实施例中,所述存储比率待更新的缓存为读缓存;所述利用所述第一读取量以及所述第一写入量,以及预先确定的读缓存的预估读取量以及写缓存的预估写入量,确定所述存储比率待更新的缓存对应的存储比率,包括:利用所述第一读取量,以及所述第一写入量,确定在历史单位时间段内的第一读取量占第一读写总量的第一比例;所述第一读写总量为所述第一读取量与所述第一写入量之和;利用读缓存的预估读取量以及写缓存的预估写入量,确定在与历史单位时间段时长相同的时间段内的预估读取量与预估读写总量的第二比例;所述预估读写总量为预估读取量与预估写入量之和;基于所述第一比例和所述第二比例,以及所述读缓存的预设内存使用率,确定所述读缓存对应的存储比率。
实际应用时,基于预估读取量和预估写入量,确定读缓存对应的存储比率,可以使得读缓存满足对应所述预估读取量的读取需求。
在一实施例中,所述存储比率待更新的缓存为写缓存;所述利用所述第一读取量以及所述第一写入量,以及预先确定的所述读缓存的预估读取量以及所述写缓存的预估写入量,确定所述存储比率待更新的缓存对应的存储比率,包括:利用所述第一读取量,以及所述第一写入量,确定在历史单位时间段内的第一写入量占第一读写总量的第三比例;所述第一读写总量为所述第一读取量与所述第一写入量之和;利用读缓存的预估读取量以及写缓存的预估写入量,确定在与历史单位时间段时长相同的时间段内的预估写入量与预估读写总量的第四比例;所述预估读写总量为预估读取量与预估写入量之和;基于所述第三比例和所述第四比例,以及所述写缓存的预设内存使用率,确定所述写缓存对应的存储比率。
实际应用时,基于预估读取量和预估写入量,确定写缓存对应的存储比率,可以使得写缓存满足对应所述预估写入量的写入需求。
步骤104:利用确定的存储比率,对所述存储比率待更新的缓存的内存使用率进行更新。
这里,对读缓存的内存使用率进行更新后,可以直接从读缓存中获取数据,能够极大地降低系统开销,并提高Hbase系统的读取性能。对写缓存的内存使用率进行更新后,可以以减少flush次数,并提高Hbase系统的写入性能。
本发明实施例提供的缓存控制方法,由于存储比率是根据历史读取量、历史写入量、预估读取量以及预估写入量实时计算得到的,并根据实时计算的存储比率对缓存的存储空间进行设置,因而,能够满足读取数据存储需求,从而避免将缓存中的数据flush到磁盘文件中带来的开销比特增大等问题的产生,有助于提高文件的读写效率。
另外,根据存储比率设置的存储空间并不会超过缓存的内存使用率的最大值,因而也不会占用较多的系统资源。
下面以具体实施例为例,详细说明本发明在实际应用中的实现过程及原理。
图2为本发明实施例缓存控制的具体实现流程示意图,具体实现过程,包括如下步骤:
步骤201:Hbase系统通过CollectData程序采集预设历史时间段内的读写量。
Hbase系统通过在采集层中通过CollectData程序配置定时任务,以定时提取Hbase系统在预设历史时间段内的读写使用情况指标,以确定统Hbase系统的读写量。
需要说明的是,Hbase系统通过CollectData程序统计读写量的频率与Habse系统进行读写优化的频率相同。也就是说,假设Hbase系统每天都会进行读写量优化,则需要每天都对Hbase前一天的读写量进行统计,以保证根据获取到的前一天的读写量而得到的当天的预估读写量尽量接近实际值。
步骤202:确定读缓存在历史单位时间段内存入的第一读取量与写缓存在历史单位时间段内存入的第一写入量的大小关系,当确定所述第一读取量大于所述第一写入量时,执行步骤204;当确定所述第一读取量小于所述第一写入量时,执行步骤205。
Hbase系统利用AnalysisData程序,并结合公式(1)对采集的预设历史时间段内的读取量进行处理,得到读缓存在历史单位时间段内存入的第一读取量Re;结合根据公式(2)对采集的预设历史时间段内的写入量进行处理,得到写缓存在历史单位时间段内存入的第一写入量Wr。通过比较Re与Wr的大小,确定所述第一读取量与所述第一写入量的大小关系。其中,历史单位时间段的时长可以是每月的同一天,还可以是每天的同一时段。
Re=(rc1+rc2+rc3+...+rcN)/d (1)
Wr=(wc1+wc2+wc3+...+wcN)/d (2)
其中,d表示总天数,wcN表示第N个节点RegionServer在d天内的总写入量,rcN表示第N个节点RegionServer在d天内的总读取量。
步骤203:确定所述读缓存的预估读取量以及所述写缓存的预估写入量。
根据公式(3)确定预估读取量。
R=(rps1+rps2+...+rpsN)×86400 (3)
其中,rpsN表示第N个节点在当天的每秒读取量,86400表示一天的总秒数。
根据公式(4)确定预估写入量。
W=(rc1/(nt-st)+rc2/(nt-st)+...+rcN/(nt-st))×86400 (4)
其中,rc1为当前时间的写入总量,nt为当前时间戳,st为节点启动时的时间戳,86400表示一天的总秒数。
步骤204:确定读缓存对应的存储比率,利用所述存储比率对读缓存BlockCache进行优化。
Hbase系统根据步骤203确定的预估读取量和预估写入量,按照优化公式(5)确定读缓存BlockCache的存储比率。
其中,f表示hfile.block即读缓存blockcache对应的存储比率,R表示当天的预估读取量,W表示当天的预估写入量,rcj表示前一天的第一读取量,wcj表示前一天的第一写入量。
举例来说,假设R为100000,W为10000,rcj为100001,wcj为10001,按照公式(5)得出设置的存储比率为0.64。Hbase系统自动通过Setpara程序对读缓存BlockCache的内存使用率即hfile.block.cache.size参数进行优化。
需要说明的是,读缓存BlockCache对于读性能来说至关重要。为保护系统资源,读缓存BlockCache设置的内存使用率最大不超过80%。
步骤205:确定写缓存对应的存储比率,利用所述存储比率对写缓存memstore进行优化。
Hbase系统根据步骤203确定的预估读取量和预估写入量,按照优化公式(6)确定写缓存memstore的存储比率。
其中,f表示hfile.block即读缓存blockcache对应的存储比率,R表示当天的预估读取量,W表示当天的预估写入量,rcj表示前一天的第一读取量,wcj表示前一天的第一写入量。
需要说明的是,当写缓存memStore的大小达到一个阈值时,写缓存memStore会被flush到文件,即生成一个快照。Hbase系统会通过一个线程负责写缓存memStore的flush操作,通过减少flush次数实现写入性能的提高。
本发明实施例中,Hbase系统通过CollectData程序对Hbase数据库中在历史预设时间段内如一天的读写量进行收集,并进行读写量对比;根据读取量与写入量的大小关系,确定是对读缓存进行优化还是对写缓存进行优化;根据预估读取量、预估写入量,以及第一读取量、第一写入量,确定存储比率,并根据存储比率设置读缓存Blockcache以及写缓存memstore的内存使用率。因而能够保证读缓存Blockcache以及写缓存memstore的内存使用率可以适应当天的数据读写量的需求,既可以通过读缓存Blockcache获取数据,还可以在写入时最大限度的减小flush次数,而且能够保证读缓存Blockcache以及写缓存memstore不会因为内存使用率设置过大从而对Hbase系统的负荷造成影响,以此达到优化Hbase数据库的读写性能的目的。
基于本申请各实施例缓存控制方法,本申请还提供了一种缓存控制装置,如图3所示,所述装置包括:获取模块31、比较模块32、确定模块33、更新模块34;其中,
获取模块31,用于获取读缓存在历史单位时间段内存入的第一读取量,以及写缓存在历史单位时间段内存入的第一写入量;
比较模块32,用于将所述第一读取量与所述第一写入量进行比较,得到比较结果;
确定模块33,用于根据所述比较结果确定存储比率待更新的缓存;还用于利用所述第一读取量以及所述第一写入量,以及预先确定的读缓存的预估读取量以及写缓存的预估写入量,确定所述存储比率待更新的缓存对应的存储比率;所述存储比率表征当满足读写需求时所述存储比率待更新的缓存的内存使用率;
更新模块34,用于利用确定的存储比率,对所述存储比率待更新的缓存的内存使用率进行更新。
在一实施例中,所述确定模块33,具体用于当根据所述比较结果确定所述第一读取量大于所述第一写入量时,确定对读缓存的存储比率进行更新;当根据所述比较结果确定所述第一读取量小于所述第一写入量时,确定对写缓存的存储比率进行更新。
在一实施例中,所述确定模块33,具体用于所述基于所述读缓存在当前单位时间段内存入的第二读取量,确定在与历史单位时间段时长相同的时间段内所述读缓存存入的预估读取量;基于所述写缓存在当前单位时间段内存入的第二写入量,得到在与历史单位时间段时长相同的时间段内所述写缓存存入的预估写入量;其中,所述当前单位时间段的时长小于所述历史单位时间段的时长。
在实际应用中,获取模块31由位于缓存控制装置上的网络接口实现;比较模块32、确定模块33、更新模块34可由位于缓存控制装置上的处理器比如中央处理器(CPU,CentralProcessing Unit)、微处理器(MPU,Micro Processor Unit)、数字信号处理器(DSP,Digital Signal Processor)、或现场可编程门阵列(FPGA,Field Programmable GateArray)等实现。
图4是本发明缓存控制装置的结构示意图,图4所示的缓存控制装置400包括:至少一个处理器401、存储器402、用户接口403、至少一个网络接口404。缓存控制装置400中的各个组件通过总线系统405耦合在一起。可理解,总线系统405用于实现这些组件之间的连接通信。总线系统405除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线系统405。
其中,用户接口403可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。
本发明实施例中的存储器402用于存储各种类型的数据以支持缓存控制装置400的操作。这些数据的示例包括:用于在缓存控制装置400上操作的任何计算机程序,如操作系统4021和应用程序4022;其中,操作系统4021包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序4022可以包含各种应用程序,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序4022中。
上述本发明实施例揭示的方法可以应用于处理器401中,或者由处理器401实现。处理器401可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器401中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器401可以是通用处理器、数字信号处理器,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器401可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器402,处理器401读取存储器402中的信息,结合其硬件完成缓存控制方法的步骤。
可以理解,存储器402可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器402旨在包括但不限于这些和任意其它适合类型的存储器。
基于本申请各实施例提供的缓存控制方法,本发明实施例还提供一种计算机可读存储介质,参照图4所示,所述计算机可读存储介质可以包括:用于存储计算机程序的存储器402,上述计算机程序可由缓存控制装置400的处理器401执行,以完成服务器侧缓存控制方法所述步骤。
计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。
需要说明的是:本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (10)

1.一种缓存控制方法,其特征在于,所述方法包括:
获取读缓存在历史单位时间段内存入的第一读取量,以及写缓存在历史单位时间段内存入的第一写入量;
将所述第一读取量与所述第一写入量进行比较,得到比较结果;根据所述比较结果确定存储比率待更新的缓存;
利用所述第一读取量以及所述第一写入量,以及预先确定的读缓存的预估读取量以及写缓存的预估写入量,确定所述存储比率待更新的缓存对应的存储比率;所述存储比率表征当满足读写需求时所述存储比率待更新的缓存的内存使用率;
利用确定的存储比率,对所述存储比率待更新的缓存的内存使用率进行更新。
2.根据权利要求1所述的方法,其特征在于,所述根据所述比较结果确定存储比率待更新的缓存,包括:
当根据所述比较结果确定所述第一读取量大于所述第一写入量时,确定对读缓存的存储比率进行更新;
当根据所述比较结果确定所述第一读取量小于所述第一写入量时,确定对写缓存的存储比率进行更新。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述读缓存在当前单位时间段内存入的第二读取量,确定在与历史单位时间段时长相同的时间段内所述读缓存存入的预估读取量;
基于所述写缓存在当前单位时间段内存入的第二写入量,得到在与历史单位时间段时长相同的时间段内所述写缓存存入的预估写入量;
其中,所述当前单位时间段的时长小于所述历史单位时间段的时长。
4.根据权利要求3所述的方法,其特征在于,所述存储比率待更新的缓存为读缓存;
所述利用所述第一读取量以及所述第一写入量,以及预先确定的读缓存的预估读取量以及写缓存的预估写入量,确定所述存储比率待更新的缓存对应的存储比率,包括:
利用所述第一读取量,以及所述第一写入量,确定在历史单位时间段内的第一读取量占第一读写总量的第一比例;所述第一读写总量为所述第一读取量与所述第一写入量之和;
利用读缓存的预估读取量以及写缓存的预估写入量,确定在与历史单位时间段时长相同的时间段内的预估读取量与预估读写总量的第二比例;所述预估读写总量为预估读取量与预估写入量之和;
基于所述第一比例和所述第二比例,以及所述读缓存的预设内存使用率,确定所述读缓存对应的存储比率。
5.根据权利要求3所述的方法,其特征在于,所述存储比率待更新的缓存为写缓存;
所述利用所述第一读取量以及所述第一写入量,以及预先确定的所述读缓存的预估读取量以及所述写缓存的预估写入量,确定所述存储比率待更新的缓存对应的存储比率,包括:
利用所述第一读取量,以及所述第一写入量,确定在历史单位时间段内的第一写入量占第一读写总量的第三比例;所述第一读写总量为所述第一读取量与所述第一写入量之和;
利用读缓存的预估读取量以及写缓存的预估写入量,确定在与历史单位时间段时长相同的时间段内的预估写入量与预估读写总量的第四比例;所述预估读写总量为预估读取量与预估写入量之和;
基于所述第三比例和所述第四比例,以及所述写缓存的预设内存使用率,确定所述写缓存对应的存储比率。
6.一种缓存控制装置,其特征在于,所述装置包括:
获取模块,用于获取读缓存在历史单位时间段内存入的第一读取量,以及写缓存在历史单位时间段内存入的第一写入量;
比较模块,用于将所述第一读取量与所述第一写入量进行比较,得到比较结果;
确定模块,用于根据所述比较结果确定存储比率待更新的缓存;还用于利用所述第一读取量以及所述第一写入量,以及预先确定的读缓存的预估读取量以及写缓存的预估写入量,确定所述存储比率待更新的缓存对应的存储比率;所述存储比率表征当满足读写需求时所述存储比率待更新的缓存的内存使用率;
更新模块,用于利用确定的存储比率,对所述存储比率待更新的缓存的内存使用率进行更新。
7.根据权利要求6所述的装置,其特征在于,
所述确定模块,具体用于当根据所述比较结果确定所述第一读取量大于所述第一写入量时,确定对读缓存的存储比率进行更新;当根据所述比较结果确定所述第一读取量小于所述第一写入量时,确定对写缓存的存储比率进行更新。
8.根据权利要求6所述的装置,其特征在于,
所述确定模块,具体用于所述基于所述读缓存在当前单位时间段内存入的第二读取量,确定在与历史单位时间段时长相同的时间段内所述读缓存存入的预估读取量;基于所述写缓存在当前单位时间段内存入的第二写入量,得到在与历史单位时间段时长相同的时间段内所述写缓存存入的预估写入量;其中,所述当前单位时间段的时长小于所述历史单位时间段的时长。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5任一项所述方法的步骤。
10.一种缓存控制装置,其特征在于,包括:存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序;
其中,所述处理器用于运行所述计算机程序时,执行权利要求1至5任一项所述方法的步骤。
CN201810381232.4A 2018-04-25 2018-04-25 一种缓存控制方法、装置及计算机可读存储介质 Active CN108595347B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810381232.4A CN108595347B (zh) 2018-04-25 2018-04-25 一种缓存控制方法、装置及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810381232.4A CN108595347B (zh) 2018-04-25 2018-04-25 一种缓存控制方法、装置及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN108595347A true CN108595347A (zh) 2018-09-28
CN108595347B CN108595347B (zh) 2020-11-10

Family

ID=63609846

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810381232.4A Active CN108595347B (zh) 2018-04-25 2018-04-25 一种缓存控制方法、装置及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN108595347B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111338579A (zh) * 2020-02-27 2020-06-26 苏州浪潮智能科技有限公司 基于存储池的读写缓存优化方法、系统、终端及存储介质
CN111679599A (zh) * 2020-05-22 2020-09-18 中国航空工业集团公司西安航空计算技术研究所 一种cpu与dsp数据高可靠交换方法
WO2020224500A1 (zh) * 2019-05-09 2020-11-12 深圳大普微电子科技有限公司 一种固态硬盘的数据处理方法及装置
CN112888062A (zh) * 2021-03-16 2021-06-01 芯原微电子(成都)有限公司 数据同步方法、装置、电子设备及计算机可读存储介质
CN113625956A (zh) * 2021-06-30 2021-11-09 苏州浪潮智能科技有限公司 Raid卡的缓存设置方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104750621A (zh) * 2013-12-27 2015-07-01 珠海全志科技股份有限公司 缓存方法及控制系统
CN105183378A (zh) * 2015-08-31 2015-12-23 北京神州云科数据技术有限公司 自适应混合读/写缓存的方法
US9223713B2 (en) * 2013-05-30 2015-12-29 Hewlett Packard Enterprise Development Lp Allocation of cache to storage volumes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9223713B2 (en) * 2013-05-30 2015-12-29 Hewlett Packard Enterprise Development Lp Allocation of cache to storage volumes
CN104750621A (zh) * 2013-12-27 2015-07-01 珠海全志科技股份有限公司 缓存方法及控制系统
CN105183378A (zh) * 2015-08-31 2015-12-23 北京神州云科数据技术有限公司 自适应混合读/写缓存的方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020224500A1 (zh) * 2019-05-09 2020-11-12 深圳大普微电子科技有限公司 一种固态硬盘的数据处理方法及装置
CN111338579A (zh) * 2020-02-27 2020-06-26 苏州浪潮智能科技有限公司 基于存储池的读写缓存优化方法、系统、终端及存储介质
CN111338579B (zh) * 2020-02-27 2022-07-19 苏州浪潮智能科技有限公司 基于存储池的读写缓存优化方法、系统、终端及存储介质
CN111679599A (zh) * 2020-05-22 2020-09-18 中国航空工业集团公司西安航空计算技术研究所 一种cpu与dsp数据高可靠交换方法
CN112888062A (zh) * 2021-03-16 2021-06-01 芯原微电子(成都)有限公司 数据同步方法、装置、电子设备及计算机可读存储介质
CN112888062B (zh) * 2021-03-16 2023-01-31 芯原微电子(成都)有限公司 数据同步方法、装置、电子设备及计算机可读存储介质
CN113625956A (zh) * 2021-06-30 2021-11-09 苏州浪潮智能科技有限公司 Raid卡的缓存设置方法、装置、电子设备及存储介质
CN113625956B (zh) * 2021-06-30 2023-08-22 苏州浪潮智能科技有限公司 Raid卡的缓存设置方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN108595347B (zh) 2020-11-10

Similar Documents

Publication Publication Date Title
CN108595347A (zh) 一种缓存控制方法、装置及计算机可读存储介质
US10831614B2 (en) Visualizing restoration operation granularity for a database
KR101914019B1 (ko) 분산 데이터베이스 시스템들을 위한 고속 장애 복구
KR101771246B1 (ko) 분산 데이터 시스템들을 위한 전 시스템에 미치는 체크포인트 회피
EP3230868B1 (en) Multiple transaction logs in a distributed storage system
CN105389230B (zh) 一种结合快照技术的持续数据保护系统及方法
JP6322722B2 (ja) 可変ストライプサイズを使用するファイル格納
KR100437199B1 (ko) 컴퓨터시스템및그에저장된데이터를액세싱하기위한방법
US7657671B2 (en) Adaptive resilvering I/O scheduling
TW201520889A (zh) 混合儲存的控制方法及混合儲存系統
JP2017515212A (ja) 拡張縮小可能なファイル格納サービス
JP2017510004A (ja) 分散格納システムにおけるセッション管理
JP2017510002A (ja) 複数エクステント動作のための原子書き込み
JP2017515215A (ja) 分散格納システムにおける名前空間管理
Puttaswamy et al. Frugal storage for cloud file systems
CN107798130A (zh) 一种分布式存储的快照方法
KR20170129959A (ko) 인 플레이스 스냅샷들
KR20170081294A (ko) 로그 레코드 관리
CN107832423B (zh) 一种用于分布式文件系统的文件读写方法
JP2003536157A (ja) データ記憶システムおよびプロセス
CN103198088A (zh) 基于阴影分页的日志段目录
CN105955845A (zh) 一种数据恢复方法及装置
CN111736764B (zh) 一种数据库一体机的存储系统及数据请求处理方法、装置
CN114281762A (zh) 一种日志存储加速方法、装置、设备及介质
CN110287152A (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