CN114817319A - 一种缓存管理方法、装置及设备 - Google Patents
一种缓存管理方法、装置及设备 Download PDFInfo
- Publication number
- CN114817319A CN114817319A CN202110410912.6A CN202110410912A CN114817319A CN 114817319 A CN114817319 A CN 114817319A CN 202110410912 A CN202110410912 A CN 202110410912A CN 114817319 A CN114817319 A CN 114817319A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- write
- writing
- request
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 76
- 238000012549 training Methods 0.000 claims description 56
- 238000000034 method Methods 0.000 claims description 55
- 238000005070 sampling Methods 0.000 claims description 52
- 230000008030 elimination Effects 0.000 claims description 48
- 238000003379 elimination reaction Methods 0.000 claims description 48
- 238000012545 processing Methods 0.000 claims description 32
- 230000015654 memory Effects 0.000 claims description 28
- 238000004891 communication Methods 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 7
- 238000005192 partition Methods 0.000 claims description 2
- 238000004422 calculation algorithm Methods 0.000 abstract description 6
- 238000013461 design Methods 0.000 description 17
- 230000001960 triggered effect Effects 0.000 description 13
- 238000002372 labelling Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000007787 long-term memory Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供了一种缓存管理方法,该方法用于缓存管理装置,该缓存管理方法在接收第一数据写入请求后,根据所述第一数据的相关参数,训练缓存写入预测模型,并将所述第一数据写入缓存,再接收第二数据写入请求,根据所述缓存写入预测模型,确定是否将所述第二数据的写入所述缓存。该缓存管理方法利用数据驱动算法,在线训练缓存写入预测模型,有效的提高了缓存命中率。
Description
技术领域
本申请涉及缓存领域,特别涉及一种缓存管理方法、装置及设备。
背景技术
应用级缓存是数据库、内容分发网络、数据存储等系统中,用于加速数据访问的常用存储组件。缓存的主要功能是临时保存近期会被系统重复访问的数据,从而减少数据访问的平均时延。缓存介质访问(读写)速度快但存储容量小。缓存的核心竞争力是高命中率。其中,命中率指示的是数据访问缓存并获得返回数据的比例。
因此,如何提升缓存的命中率成为了业界最为关注的问题。
发明内容
本申请提供了一种缓存管理方法,该方法可以提升缓存命中率。
本申请的第一方面提供了一种缓存管理方法,该缓存管理方法用于缓存管理装置,该方法包括:接收第一数据写入请求,该第一数据写入请求用于请求将硬盘中的第一数据写入缓存;根据该第一数据的相关参数,训练缓存写入预测模型;将该第一数据写入该缓存;接收第二数据写入请求,该第二数据写入请求用于请求将该硬盘中的第二数据写入该缓存;根据该缓存写入预测模型,确定是否将该第二数据的写入该缓存。
该缓存管理方法通过在线训练缓存写入预测模型,提升了对待写入数据的写入概率预测精度,提高了缓存的命中率。
在一些可能的设计中,该方法还包括:接收该第一批数据写入请求;根据采样规则,从该第一批数据写入请求中确定该第一数据写入请求和该第二数据写入请求。
在一些可能的设计中,该方法还包括:获取该第一批数据写入请求中各数据写入请求携带的待写入数据的标识;确定该第一批数据写入请求中各数据写入请求携带的待写入数据的标识的哈希值可以被采样值整除的为该第一数据写入请求;确定该第一批数据写入请求中各数据写入请求携带的待写入数据的标识的哈希值不可以被采样值整除的为该第二数据写入请求。
在一些可能的设计中,该方法还包括:接收第二批数据写入请求;根据该训练后的缓存写入预测模型,确定是否将该第二批数据写入请求对应的待写入数据中至少一个数据写入该缓存。
在一些可能的设计中,该方法还包括:将该缓存中数据平均大小、历史每周期总写入请求数、历史每周期总读取请求数、该缓存中数据平均淘汰周期中至少一个,和该第一数据的相关参数作为该缓存写入预测模型的训练输入量;根据该第一数据请求发生后一个该平均淘汰周期内该第一数据的请求情况和淘汰情况,确定该第一数据的写入概率作为该缓存写入预测模型的训练输出量:根据该训练输入量和该训练输出量,训练缓存写入预测模型。
在一些可能的设计中,该第一数据的相关参数包括下列至少一个:该第一数据的历史被请求写入数、该第一数据的历史被请求读取数。
在一些可能的设计中,该方法还包括:获取写入阈值;根据该缓存写入预测模型,获得该第二数据的写入概率;根据该写入阈值和该第二数据的写入概率,确定是否将该第二数据的写入该缓存。
在一些可能的设计中,该方法还包括:将该缓存中数据平均大小、该缓存中数据平均淘汰周期、历史每周期总写入请求数、历史每周期总读取请求数中的至少一个,和该第二数据相关参数作为该缓存写入预测模型的预测输入量;将该预测输入量作为该训练后的缓存写入预测模型的输入,获得该第二数据的写入概率。
本申请的第二方面提供了一种缓存管理装置,该装置包括通信单元和处理单元:该通信单元,用于接收第一数据写入请求,该第一数据写入请求用于请求将硬盘中的第一数据写入缓存;该处理单元,用于根据该第一数据的相关参数,训练缓存写入预测模型;将该第一数据写入该缓存;该通信单元,还用于接收第二数据写入请求,该第二数据写入请求用于请求将该硬盘中的第二数据写入该缓存;该处理单元,还用于根据该缓存写入预测模型,确定是否将该第二数据的写入该缓存。
在一些可能的设计中,该通信单元,用于接收第一批数据写入请求;该处理单元,用于根据划分规则,从该第一批数据写入请求中确定该第一数据写入请求和该第二数据写入请求。
在一些可能的设计中,该处理单元,用于获取该第一批数据写入请求中各数据写入请求携带的待写入数据的标识;确定该第一批数据写入请求中各数据写入请求携带的待写入数据的标识的哈希值可以被采样值整除的为该第一数据写入请求;确定该第一批数据写入请求中各数据写入请求携带的待写入数据的标识的哈希值不可以被采样值整除的为该第二数据写入请求。
在一些可能的设计中,该通信单元,用于接收第二批数据写入请求;该处理单元,用于根据该训练后的缓存写入预测模型,确定是否将该第二批数据写入请求对应的待写入数据中至少一个数据写入该缓存。
在一些可能的设计中,该处理单元,用于将该缓存中数据平均大小、历史每周期总写入请求数、历史每周期总读取请求数、该缓存中数据平均淘汰周期中至少一个,和该第一数据的相关参数作为该缓存写入预测模型的训练输入量;根据该第一数据请求发生后一个该平均淘汰周期内该第一数据的请求情况和淘汰情况,确定该第一数据的写入概率作为该缓存写入预测模型的训练输出量:根据该训练输入量和该训练输出量,训练缓存写入预测模型。
在一些可能的设计中,该第一数据的相关参数包括下列至少一个:该第一数据的历史被请求写入数、该第一数据的历史被请求读取数。
在一些可能的设计中,该通信单元,用于获取写入阈值;该处理单元,用于根据该缓存写入预测模型,获得该第二数据的写入概率;根据该写入阈值和该第二数据的写入概率,确定是否将该第二数据的写入该缓存。
在一些可能的设计中,该处理单元,用于将该缓存中数据平均大小、该缓存中数据平均淘汰周期、历史每周期总写入请求数、历史每周期总读取请求数中的至少一个,和该第二数据相关参数作为该缓存写入预测模型的预测输入量;将该预测输入量作为该训练后的缓存写入预测模型的输入,获得该第二数据的写入概率。
本申请的第三方面提供了一种计算设备集群,包括至少一个计算设备,每个计算设备包括处理器和存储器;至少一个计算设备的处理器用于执行至少一个计算设备的存储器中存储的指令,以使得该计算设备执行如第一方面或第一方面的任意可能的设计提供的方法。
本申请的第四方面提供了一种包含指令的计算机程序产品,当该指令被计算机设备集群运行时,使得该计算机设备集群执行如第一方面或第一方面的任意可能的设计提供的方法。
本申请的第五方面提供了一种计算机可读存储介质,包括计算机程序指令,当该计算机程序指令由计算设备集群执行时,该计算设备集群执行如第一方面或第一方面的任意可能的设计提供的方法。
附图说明
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
图1是适用于本申请实施例的一种可能的应用场景示意图。
图2是适用于本申请实施例的一种可能的缓存管理方法流程图。
图3是适用于本申请实施例的一种可能的缓存管理装置结构示意图。
图4是适用于本申请实施例的一种可能的计算设备结构示意图。
图5是适用于本申请实施例的一种可能的计算设备集群结构示意图。
图6是适用于本申请实施例的一种可能的计算设备集群结构示意图。
图7是适用于本申请实施例的一种可能的计算设备集群结构示意图。
具体实施方式
本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
首先对本申请实施例中所涉及到的一些技术术语进行介绍。
缓存:在快速的存储介质和服务系统之间的中间层,用于暂时存储近期被访问的数据,降低数据访问时延的组件。
缓存写入:在数据写入的请求到达缓存系统时,决策是否将数据写入缓存的过程。
缓存命中率:始端用户访问加速节点时,如果该节点缓存了要被访问的数据时就叫做命中。如果没有的话需要回原服务器取,就是没有命中。取数据的过程与用户访问是同步进行的,所以即使是重新取的新数据,用户也不会感觉到有延时。命中率等于命中数比上命中数和没有命中数的总和。缓存命中率是判断加速效果好坏的重要因素之一。
缓存介质的访问速度通常比系统主存储器的访问速度快,在典型的场景中访问速度相差若干量级,应用系统中通常用内存作为硬盘和远程网络的缓存介质。相对应用系统的数据规模,缓存介质可用的存储容量极小。例如,在典型的互联网服务数据库中,数据库通常存储拍字节(petabytes,PB)级的数据,但缓存容量只有若干吉字节(gigabyte,GB),甚至小于1GB。
由于缓存介质访问速度快,所以系统访问的数据在缓存中命中的比例越高,系统的性能通常越好。但是,由于缓存介质的数据储存量有限,缓存也需要不断淘汰数据,腾出存储空间缓存新写入的数据。常见的缓存数据淘汰算法包括最近最少使用(leastrecently used,LRU)和先进先出(first-in,first-out,FIFO)等方法。这些方法均倾向于保留新数据,淘汰旧数据。
在当前主流的云服务、互联网服务中,数据被请求的频次通常服从长尾分布,绝大部分的访问请求都集中在小部分数据上,绝大部分数据都只有一次访问。在这种数据分布下,大量新的被请求的数据不断写入内存,旧数据被不断淘汰,但新写入数据不会再有第二次访问,所以往往导致缓存命中率低下。另一方面,在互联网服务中,线性遍历数据也是常见的业务,数据被线性逐个扫描,扫描期间不会有第二次访问。此外,各种网络攻击通常会试图扫描系统全集数据。在长尾分布和线性扫描等场景下,大量数据短期内只被访问一次,采用主流缓存淘汰算法会导致缓存介质急速冲刷(也称颠簸)问题,即数据不断写入缓存,而命中率极低。
在这种情况下,引入缓存写入功能通常能降低缓存冲刷速度,提升命中率。缓存写入是指在数据进入缓存介质之前,判断数据是否有进入缓存系统的价值,如果无价值,则不将数据放入缓存介质。
目前,已经有相关的用于管理缓存写入的方法。
例如,为了应对线性扫描,部分系统不允许近期第一次被访问的数据进入缓存,而被第二次以上访问的数据才写入缓存。此外,还有一些系统,基于统计信息,如统计每条数据的近期访问次数,再设定一个阈值,访问此处超过阈值则写入缓存,否则阻挡。还有一些基于规则或者基于频次统计的写入技术。
通常这些方法的业务适应性较差,在系统上线之前,对实际将进入系统的数据往往所知甚少。在这种情况下,提前制定规则,或者决策统计指标和阈值,产生的结果难以预估。
此外,常见的应用系统中,根据业务的需求和场景变化,数据的分布会发生变化。此时,写入方案如果不能跟随数据的变化而调整,则容易出现缓存命中率下降。
有鉴于此,本申请实施例提供了一种能够自适应地调整写入策略的技术方案,即基于在线自适应的缓存写入方法。由数据驱动算法,在系统运行时自动预测数据未来的命中概率,在线学习写入模型从而快速适应业务数据变化,实现准确高效的写入结果。
为了使得本申请的技术方案更加清楚、易于理解,下面结合图1对缓存写入方法200的的场景进行介绍。
在一种可能的实现方式中,在用户101点击应用102后,将触发应用102向缓存103发起数据读取请求。其中,应用102可以是网页应用,也可以是智能终端上的第三方应用软件等。
需要说明的是,应用102向缓存103发起的数据读取请求将被缓存管理装置104记录。具体地,将记录该数据读取请求的被请求数据的标识信息和请求时间等信息。同时,还可以对该数据的历史被请求次数进行更新。
当缓存103中存在该数据时,缓存103将向应用102返回该数据。同时,缓存管理装置104将记录该数据请求结果。也即,该数据读取请求得到了响应。
当缓存103中不存在该数据时,应用102将向硬盘105发起数据读取请求。同时,缓存管理装置104将记录该数据请求结果。也即,该数据读取请求未得到响应。其中,硬盘105可以包括固态硬盘、传统硬盘和混合硬盘。
当硬盘105中存在该数据时,硬盘105将向应用102返回该数据。同时,缓存管理装置104将决定是否将该数据写入缓存103。
在这一类可能的实现方式中,数据写入缓存103的请求是由用户101点击应用102所触发的。
当硬盘105中不存在该数据时,系统将向应用102返回找不到该数据的信息。
在一种可能的实现方式中,数据写入缓存103的请求可以是由应用102所触发的。例如,可以是由内容分发网络(content delivery network,CDN)的刷新与预热触发。
具体地,对于应用102中租户指定需要刷新或预热的统一资源定位符(uniformresource locator,URL),应用102会主动从源站获取更新的数据。从而让用户101访问该CDN时不用回到租户的源站去获取数据。因此,当刷新或预热的动作触发以后,缓存管理装置104将判断是否将这部分数据写入缓存103。
下面对本申请提供的一种缓存写入方法200进行介绍。该缓存写入方法可以运行在缓存管理装置104上。
缓存写入方法200的流程图如图2所示。该缓存写入方法包括请求信息记录,预测模型训练,写入判断和缓存数据淘汰四个部分。
首先,缓存管理装置104可能接收到的请求信息包括数据写入请求和数据读取请求。通过记录请求信息的请求时间和请求次数等参数,可以为预测模型训练提供数据。具体地,请求信息记录部分包括步骤S201至步骤S204。
S201:缓存管理装置104接收数据读取请求。
如前所述,在用户101点击应用102后,应用102将向缓存管理装置104发起数据读取请求。换言之,当数据读取请求来临时,由缓存管理装置104接收该数据读取请求。其中,数据读取请求指示的是将缓存103中的数据返回应用102。
S202:缓存管理装置104记录待读取数据的请求信息。
当数据读取请求来临时,缓存管理装置104将记录待读取数据的信息和请求时间。其中,数据的信息可以是标识(identifier,ID)。可选的,还可以是该数据的通用唯一识别码(universally unique identifier,UUID)等信息。下文将以ID为例进行介绍。
根据记录的各数据读取请求的时间,可以计算下述参数中的至少一项:各数据的每周期请求读取数和历史每周期平均请求读取数。其中,周期的长度可以根据需要进行设置。例如,如果周期为1秒,则数据的每周期请求读取数指示的是该数据在1秒内被请求读取的次数,而该数据的历史每周期平均请求读取数指示的是该数据在历史计数周期内每周期请求读取数的平均值。其中,历史计数周期可以根据需要进行设置。
可选的,为了对各数据在一定时间内的每周期请求读取数进行记录,可以对各数据维护一个8字节大小的数据组。进一步地,将8个字节平均分割为32个单元。其中,每个单元为2位(bits),各单元编号为1、2、···、32。其中每一个单元可以表示该数据每周期请求读取数的四种状态(00、01、10、11),分别对应无读取请求、有一次、二次、三次及以上读取请求。换言之,可以通过对各数据维护一个8字节大小的数据组,以记录该数据在过去的32个周期中的每周期请求读取数。按照上述的存储方法,可以实现以较小的存储空间存储较多的每周期请求读取数。
可选的,根据记录的各数据读取请求的请求时间,还可以获得在各周期内的总请求读取数。也即,每周期总请求读取数。同样的,在对各每周期内的总请求读取数进行记录后,可以选择保留一定历史时间内的每周期总请求读取数。其中,历史时间的长度可以根据需要进行设置。进一步的,也可以通过维护一个若干字节大小的数据组,记录一定时间内的每周期总请求读取数。具体的方法,可以参考上述维护每周期请求读取数对应数据组的方法。
需要说明的是,S201和S202不是必须的步骤。如前所述,当数据写入请求不是由用户101触发,而是由应用102的刷新或预热动作触发时,S201和S202不是必须的。
S203:缓存管理装置104接收数据写入请求。
如前所述,数据写入请求存在两种情形:由用户101触发和由应用102触发。在这两种情形中,缓存管理装置104都将接收到数据写入请求。其中,数据写入请求指示的是将硬盘中的被请求写入的数据写入缓存。
在一种可能的实现方式中,在用户101点击应用102后,将触发应用102向缓存103发起数据写入请求。同时,应用102向缓存103发起的数据写入请求将被缓存管理装置104记录。
当缓存103中存在被请求写入的数据时,缓存103将向应用102返回该数据。同时,缓存管理装置104将记录该数据请求结果。也即,该数据读取请求得到了响应。
当缓存103中不存在被请求写入的数据时,应用102将向硬盘105发起数据读取请求。同时,缓存管理装置104将记录数据请求结果。也即,数据读取请求未得到响应。
而当硬盘105中存在该数据时,硬盘105将向应用102返回该被请求写入的数据。同时,缓存管理装置104将决定是否将该被请求写入的数据写入缓存103。也即,缓存管理装置104接收到该被请求写入的数据的写入请求。
在这一类可能的实现方式中,数据写入缓存103的请求是由用户101点击应用102所触发的。也即,由步骤S101和S102触发。
在一种可能的实现方式中,数据写入缓存103的请求可以是由应用102所触发的。例如,可以是由内容分发网络(content delivery network,CDN)的刷新与预热触发。因此,缓存管理装置104将接收到该数据的写入请求。
在一些可能的实现方式中,缓存管理装置104在积累一定数量的训练数据的过程中,将接收到一批数据写入请求。其中,一定数量可以是采样阈值,也可以根据需要进行设置。
例如,第一批数据写入请求指示的是在一定时间段内,缓存管理装置104接收到的一批数据写入请求的集合。在步骤S205中,根据采样规则可以确定第一批数据写入请求中的第一数据写入请求和第二数据写入请求。其中,第一数据写入请求或第二数据写入请求可以包含一个或多个数据写入请求。同时,下文所提及的第一数据指示的是第一数据写入请求中被请求写入的数据。同理,第二数据指示的是第二数据写入请求中被请求写入的数据。
下文将以第一批数据写入请求为例进行介绍。
S204:缓存管理装置104记录待写入数据的请求信息。
当第一批数据写入请求来临时,记录第一批数据中各数据的ID和请求时间。进一步地,至少可以获得下述参数中的一项:各数据的每周期请求写入数、历史每周期平均请求写入数和每周期总请求写入数。其中,周期的长度可以根据需要进行设置。例如,如果周期为1秒,则数据的每周期请求写入数指示的是各数据在1秒内被请求写入的次数,而各数据的历史每周期平均请求写入数指示的是各数据在历史计数周期内每周期请求写入数的平均值。
根据记录的各数据写入请求的请求时间,可以获得每周期总请求写入数。该指标指示的是该缓存管理装置104在1秒内接收到的各数据总的写入请求数量。
进一步地,在对各数据的每周期请求写入数进行记录后,可以选择保留一定时间内的每周期请求写入数。大规模数据系统中数据基数大,保存前述各数据的长时间内的每周期请求写入数会占据较大的存储空间。因此,为了减少存储空间,可以采用优化数据存储和缩短保留的时间周期的长度等方法。
以优化数据存储为例,可以对各数据维护一个8字节大小的数据组。进一步地,将8个字节平均分割为32个单元。其中,每个单元为2位(bits),各单元编号为1、2、···、32。其中每一个单元可以表示该数据每周期请求写入数的四种状态(00、01、10、11),分别对应无写入请求、有一次、二次、三次及以上写入请求。换言之,可以通过对各数据维护一个8字节大小的数据组,以记录该数据在过去的32个周期中的每周期请求写入数。按照上述的存储方法,可以实现以较小的存储空间存储较多的每周期请求写入数。
根据记录的各数据写入请求的请求时间,可以获得在各周期内的总请求写入数。也即,每周期总请求写入数。同样的,在对各每周期内的总请求写入数进行记录后,可以选择保留一定时间内的每周期总请求写入数。进一步的,也可以通过维护一个若干字节大小的数据组,记录一定时间内的每周期总请求写入数。具体的维护数据组的方法,可以参考上述维护每周期请求写入数对应数据组的方法。
需要说明的是,缓存管理装置104接收读取请求和写入请求可以相互独立。因此,这两个步骤(步骤S203和S204)的执行时间与上述的步骤S201和S202的执行时间无先后顺序。换言之,步骤S203和S204可以先于或后于步骤S201和S202被执行。可选的,步骤S203和S204也可以与步骤S201和S202同时被执行。
在步骤S201至步骤S204中接收到数据读取请求和数据写入请求,并记录相关的信息后,可以利用其中的部分数据及相关信息对缓存写入预测模型进行训练。具体地,预测模型训练部分包括步骤S205至S207。
S205:缓存管理装置104判断待写入数据是否满足采样规则。
根据在步骤S204中获取的各待写入数据的标识,可以判断各待写入数据是否满足采样规则。具体地,可以根据采样规则确定第一批数据写入请求中的第一数据写入请求和第二数据写入请求。也即,可以确定第一批待写入数据中的第一待写入数据和第二待写入数据。
其中,第一待写入数据指示的是满足采样规则的待写入数据,第二待写入数据指示的是不满足采样规则的待写入数据。在将第一待写入数据写入缓存的同时,还要将该数据用于训练写入预测模型。对于第二待写入数据,转至步骤S209进行处理。
可选的,大规模数据系统中数据基数大,难以将每条数据都作为预测模型的训练样本。因此,需要采样其中一部分数据作为训练样本。影响采样的因素至少包括两个:采样率和采样规则。
其中,采样率指示的是平均每条数据被采样的概率,取值通常在0到1之间。采样率越低,样本的采集速度越慢。
采样规则可以根据系统中数据的标识来确定。例如,可以根据ID、URL或UUID等标识确定采样规则。本申请以ID为例建立采样规则。通常来说,ID可以是字符串或数字。因此,在利用数据的ID获得运算结果后,根据运算结果和采样值,可以确定是否对该数据进行采样。其中,运算方法可以是神经网络或哈希算法等方法。本申请实施例不对运算方法进行限制。而采样值可以根据需要进行设置。例如,可以令采样值等于采样率。
具体的,利用采样值对哈希运算结果取余。对于余数为0的数据ID,将该待写入数据作为第一待写入数据。也即,训练数据。反之,若采样值对哈希运算结果取余不为0,则不对该数据进行采样。也即,转至步骤S209。
S206:缓存管理装置104对满足采样规则的第一待写入数据进行标注。
根据第一待写入数据的访问情况和淘汰情况,缓存管理装置104可以对第一待写入数据进行标注。
在一种可能实现方式中,根据第一待写入数据在经过S205的判断之后的一段时间内的被请求情况,可以对第一待写入数据进行标注。也即,根据第一待写入数据在一个缓存平均淘汰周期内被请求写入的次数和读取的次数,可以确定第一待写入数据的标注情况。
其中,所述一段时间的长度可以根据需要进行设置。下文将以缓存平均淘汰周期为例进行介绍,具体的如何获得缓存平均淘汰周期将在步骤S213中将进行详细的介绍。
在这一类可能的实现方式中,当第一待写入数据在一个平均淘汰周期内满足下列情况中的至少一种时:被请求写入至少一次和被请求读取至少一次,将该第一待写入数据标注为热数据。
反之,当第一待写入数据在一个缓存平均淘汰周期内同时满足下列两种情况时:未被请求写入和未被请求读取,将该第一待写入数据标注为冷数据。
在一种可能实现方式中,还可以根据第一待写入数据在未来一个平均淘汰周期内的淘汰情况,对训练数据进行标注。
如前所述,在S205中若待写入数据满足采样规则,在对第一待写入数据进行标注的同时,还将该第一待写入数据直接写入缓存中。由于缓存的存储空间有限,因此需要根据淘汰规则对存储的数据进行淘汰。具体的淘汰规则将在S212中详细介绍。
当第一待写入数据在一个缓存平均淘汰周期内且在被缓存淘汰之前,既未被请求写入,也未被请求读取。在缓存将该数据淘汰后,将该第一待写入数据标注为冷数据。
需要说明的是,在对第一待写入数据进行标注后,则不再修改该数据的标注状态。在完成对待写入数据的标注后,可以转至步骤S207用于训练预测模型。
S207:缓存管理装置104根据记录信息和标注过的第一待写入数据,对预测模型进行训练。
在S206中对第一待写入数据进行标注后,根据各第一待写入数据的标注信息和下述参数中的至少一项:每周期请求写入数、每周期总请求写入数、缓存数据平均大小、缓存平均淘汰周期、每周期请求读取数和每周期总请求读取数,可以对预测模型进行训练。
具体地,根据S202中获得的每周期总请求写入数,可以获得平均每周期总请求写入数。如前所述,在S202中维护了一个若干字节大小的数据组,记录了一定时间内的每周期总请求写入数。进一步地,可以通过求取该数据组平均值的方法获得平均每周期总请求写入数。
可选的,对于S204中获得的每周期总请求读取数,可以获得平均每周期总请求读取数。具体的,如前所述,在S204中维护了一个若干字节大小的数据组,记录了一定时间内的每周期总请求读取数。进一步地,可以通过求取该数据组平均值的方法获得平均每周期总请求读取数。
缓存数据平均大小指示的是缓存介质中存储的数据大小的平均值。具体的获得方法将在步骤S211中进行详细的介绍。
缓存平均淘汰周期指示的是缓存介质中各数据从进入缓存到被淘汰的时长的平均值。具体的获得方法将在步骤S213中进行详细的介绍。
将缓存数据平均大小、缓存平均淘汰周期、平均每周期总请求写入数、各待写入数据的每周期请求写入数、平均每周期总请求读取数和各待写入数据的每周期请求读取数中的至少一项作为输入,各待写入数据的标注信息作为输出,可以对预测模型进行训练。
其中,预测模型可以是反向传播神经网络模型(back propagation neuralnetwork)或长短期记忆网络(long short-term memory)等人工智能模型。需要说明的是,本申请实施例不对预测模型的建立方法进行限制,并且因为是现有技术,不再赘述。
在一些可能的实现方式中,当在S206中已完成标注且尚未用于训练的数据数量达到或超过采样阈值时,可以启动对预测模型的训练。其中,采样阈值可以根据需要进行设置。例如,可以设置为当完成标注的训练数据数量达到10000条时,启动对预测模型的一轮训练。
在一些可能的实现方式中,可以对预测模型的训练轮次进行设置。根据预测模型已经进行训练的轮次和轮次阈值,可以确定是否需要对模型进行进一步的训练。当训练轮次达到或超过轮次阈值时,可以不再对预测模型进行训练。
例如,当轮次阈值设置为100时,在对预测模型进行100轮训练后,可以不再对待写入数据进行采样和标注等操作。进一步地,不再对预测模型进行训练。
在一些可能的实现方式中,在利用第一待写入数据对预测模型进行训练之后,可以删除预测模型中存储的第一待写入数据。
在一些可能的实现方式中,可以对输出量,也即各第一待写入数据的标注信息进行预处理。具体的,可以将标注状态中的冷/热数据转换成0/1或1/0。在这一类可能的实现方式中,预测模型的输出量可以控制在0到1之间。
在步骤S205至S207中对待写入数据进行采样并对预测模型进行训练后,将获得一个训练后的预测模型。对于在S205中不满足采样规则的数据,可以基于预测模型确定其写入概率。其中,预测模型可以是步骤S207中训练后的模型,也可以是步骤S207中训练前的模型。具体地,用于预测的模型需要经过至少一轮的训练。
写入判断部分包括步骤S208至步骤S211。
S208:缓存管理装置104生成预测模型,并用于预测待预测数据的写入概率。
在S207中对预测模型进行训练后,可以获得一个至少完成一轮训练的预测模型,用于预测待预测数据的写入状态。其中,该待预测数据指示的是在步骤S209中确定的不满足特殊规则的第二待写入数据。具体的不满足特殊规则的第二待写入数据的获得方法将在步骤S209中进行介绍。
需要说明的是,在本步骤中用于预测第二待写入数据的写入概率的预测模型可能不同于步骤S207中训练后的预测模型。在一些可能的实现方式中,步骤S208中使用的缓存写入预测模型是步骤S207中训练前的缓存写入预测模型。也即,由上一批数据写入请求对应的数据训练后的缓存写入预测模型。换言之,由第一批数据中的第一待写入数据训练的缓存写入预测模型,可以用于预测第二批数据写入请求对应的第二批数据中的部分数据。其中,第二批数据写入请求的发生时间应晚于第一批数据写入请求的发生时间。
将待预测数据的每周期请求写入数和缓存数据平均大小、缓存平均淘汰周期、平均每周期总请求写入数、平均每周期总请求读取数和该第二待写入数据的每周期请求读取数中的至少一项作为输入,可以对该待预测数据的写入状态进行预测。
在利用预测模型对该待预测数据的写入状态进行预测后,可以获得一个0到1之间的输出值。也即,该待预测数据的写入概率。
S209:缓存管理装置104判断不满足采样规则的第二待写入数据是否满足特殊规则。
在S205中经过判断,不满足采样规则的第二待写入数据会转至S209进行处理。在S209中将进一步地判断该数据是否满足特殊规则。
特殊规则包括对部分数据的写入和对部分数据的禁入。例如,按照租户的要求,特殊类型的文件不写入,特殊域名的文件不写入等。
对于满足特殊规则的第二待写入数据,将其写入缓存。也即,转至步骤S211。
对于不满足特殊规则的第二待写入数据,则转至步骤S210。
需要说明的是,步骤S209是缓存写入方法200中可选的步骤。
S210:缓存管理装置104根据不满足特殊规则的第二待写入数据的写入概率和写入阈值,确定其写入状态。
根据写入阈值和该不满足采样规则的第二待写入数据的写入概率,可以确定该数据的写入状态。其中,写入阈值可以根据需要进行设置。
不满足采样规则的第二待写入数据的写入概率可以利用S208中的预测模型获得。也即,将该不满足采样规则的第二待写入数据作为预测模型中的待预测数据。具体的,将该数据的每周期请求写入数和缓存数据平均大小、缓存平均淘汰周期、平均每周期总请求写入数、平均每周期总请求读取数和该数据的每周期请求读取数中的至少一项作为预测模型的输入,可以对该数据的写入状态进行预测。
在一些可能的实现方式中,在利用预测模型对该数据的写入状态进行预测后,可以获得一个0到1之间的输出值。也即,该数据的写入概率。
进一步地,根据写入概率和写入阈值,可以确定该不满足采样规则的第二待写入数据的写入状态。
具体地,当写入概率大于或等于写入阈值时,该数据将被写入缓存。当写入概率小于写入阈值时,该数据将不会被写入缓存。
在一些可能的实现方式中,该预测模型可以将写入阈值内置于预测模型内。也即,预测模型可以直接输出是否将第二待写入数据写入缓存的判断结果。
需要说明的是,上述利用预测模型对写入概率进行预测的前提,是步骤S207中对预测模型进行了至少一轮的训练了。换言之,在步骤S206中待写入数据的累积数量未达到采样阈值之前,不对预测模型进行训练。进一步地,可以依照现有技术对不满足采样规则的第二待写入数据的写入状态进行判断。其中,现有技术包括基于特定规则或者基于频次统计的写入规则等,不再赘述。
S211:缓存管理装置104将确定写入的待写入数据写入缓存,并统计写入数据的大小。
在步骤S211中确定写入的待写入数据至少包括下述三类情况:
在一些可能的实现方式中,确定写入的数据可以是在步骤S205中满足采样规则的待写入数据。也即,数据的ID对采样值取余为0的第一待写入数据。
在一些可能的实现方式中,确定写入的数据也可以是在步骤S209中满足特殊规则的第二待写入数据。其中,第二待写入数据指示的是数据的ID对采样值取余不为0的待写入数据。
在一些可能的实现方式中,确定写入的数据还可以是在步骤S210中写入概率不小于写入阈值的不满足特殊规则的第二待写入数据。
可选的,在将上述待写入数据写入缓存的同时,需要记录写入的各数据的大小,从而计算当前时刻缓存介质中的数据平均大小。进一步地,该数据平均大小可以在步骤S207中作为输入量,用于训练预测模型。
在对第二待写入数据进行写入判断后,部分第二待写入数据将被写入缓存。因为缓存的存储空间有限,因此需要定期淘汰部分数据。具体地,缓存数据淘汰部分包括步骤S212至步骤S214。
S212:根据淘汰规则确定是否淘汰缓存中的部分数据。
由于缓存介质的数据储存量有限,因此需要不断淘汰数据,腾出存储空间缓存新写入的数据。当写入的数据量超过容量时,可以选择一部分数据淘汰。具体的淘汰规则属于现有技术,不再赘述。常见的缓存数据淘汰算法包括最近最少使用(least recently used,LRU)和先进先出(first-in,first-out,FIFO)等方法。
对于确定不被淘汰的写入数据,不对其进行操作。对于确定被淘汰的写入数据,将该数据移出缓存。
S213:缓存管理装置104更新被淘汰数据的标注状态,计算缓存平均淘汰周期。
如前所述,在步骤S211中写入缓存的待写入数据至少包括三种情况。其中,在一些可能的实现方式中,所述待写入数据可以是在步骤S205中满足采样规则的第一待写入数据。也即,第一待写入数据将同时在步骤S206中等待标记。
根据第一待写入数据在缓存中的被淘汰情况,可以对第一待写入数据进行标注。具体的,对于被淘汰的数据,若该数据属于第一待写入数据且在步骤S206中尚未完成标记,则将该第一待写入数据标记为冷数据。进一步地,将在步骤S206中完成标记的该第一待写入数据转至步骤S207用作预测模型的训练数据。
此外,根据各被淘汰数据的淘汰时间和数据的写入时间,可以获得缓存平均淘汰周期。其中,数据的写入时间即步骤S202中记录的该数据的请求写入时间。具体的,将各被淘汰数据的淘汰时间减去其写入时间,可以获得各被淘汰数据的淘汰周期。进一步的,通过计算各被淘汰数据的淘汰周期的平均值,可以确定缓存平均淘汰周期。其中,所述各被淘汰数据可以是历史被淘汰的所有数据。可选的,所述各被淘汰数据也可以是过去一段时间内的被淘汰数据。进一步地,该缓存平均淘汰周期可以在步骤S207中作为输入量,用于对预测模型进行训练。
S214:缓存管理装置104输出被淘汰数据。
将步骤S212中确定需要淘汰的数据输出。
需要说明的是,步骤S213和步骤S214没有固定的执行顺序。也即,步骤S213可以先于或后于步骤S214被执行。可选的,步骤S213也可以和步骤S214同时被执行。
本申请还提供一种缓存管理装置104,如图3所示,包括:
通信单元302,用于在S201接收数据读取请求和在S203中接收数据写入请求。通信单元302还用于在S207中接收设置的采样阈值。在S210中,通信单元302用于获取写入阈值。通信单元302还用于接收S209中租户设置的特殊规则。
存储单元304,用于存储在S202中记录的待读取数据的请求信息和在S204中记录的待写入数据的请求信息。在缓存管理方法200中,存储单元304用于存储S205中确定的第一待写入数据的相关信息。存储单元304还用于存储S207中训练后的预测模型中的参数。S207中接收的采样阈值和S210中接收的写入阈值也将被存储在存储单元304中。存储单元304还用于存储S209中租户设置的特殊规则。
缓存单元306,在缓存管理方法200中,用于缓存S205中确定的第一待写入数据。在S209中满足特殊规则确定被写入缓存的第二待写入数据,和S210中写入概率大于写入阈值的第二待写入数据均将被缓存至缓存单元306中。
处理单元308,用于执行S202和S204中的记录操作,并将待读取数据和待写入数据的请求信息存入存储单元304中。处理单元308还用于在S205中对当前待写入数据进行判断,确定第一待写入数据和第二待写入数据。在缓存管理方法200中,处理单元308用于对第一待写入数据进行标注。进一步地,S207中根据记录的请求信息和标注信息对预测模型进行训练的操作也是由处理单元308执行的。在S208中,处理单元308用于执行预测待预测数据的写入概率的操作。处理单元308还用于在S209中判断第二待写入数据是否满足特殊规则。在S210中,根据S208中获得的写入概率和写入阈值确定是否将第二待写入数据写入缓存的操作也是由处理单元308执行的。S211中将确定写入缓存的待写入数据写入缓存,并统计缓存内数据大小的操作也是由处理单元308执行。处理单元308还用于在S212中根据淘汰规则输出缓存中的部分数据。在S213中,根据数据的淘汰情况更新被淘汰数据的标注状态,计算平均淘汰周期的操作由处理单元308执行。
具体地,处理单元308可以包括记录单元310、训练单元312、决策单元314和淘汰单元316。
记录单元310,用于执行S202和S204中的记录操作,并将待读取数据和待写入数据的请求信息存入存储单元304中。决策单元314,用于在S205中对当前待写入数据进行判断,确定第一待写入数据和第二待写入数据。在缓存管理方法200中,在确定第一待写入数据后,训练单元312用于对第一待写入数据进行标注。进一步地,S207中根据记录的请求信息和标注信息对预测模型进行训练的操作也是由训练单元312执行的。
在S208中,决策单元314用于执行预测待预测数据的写入概率的操作。决策单元314还用于在S209中判断第二待写入数据是否满足特殊规则。在S210中,根据S208中获得的写入概率和写入阈值确定是否将第二待写入数据写入缓存的操作也是由决策单元314执行的。S211中将确定写入缓存的待写入数据写入缓存,并统计缓存内数据大小的操作也是由决策单元314执行。淘汰单元316用于在S212中根据淘汰规则输出缓存中的部分数据。在S213中,根据数据的淘汰情况更新被淘汰数据的标注状态,计算平均淘汰周期的操作由淘汰单元316执行。
本申请还提供一种计算设备400。如图4所示,计算设备包括:总线402、处理器404、存储器406和通信接口408。处理器404、存储器406和通信接口408之间通过总线402通信。计算设备400可以是服务器或终端设备。应理解,本申请不限定计算设备400中的处理器、存储器的个数。
总线402可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线404可包括在计算设备400各个部件(例如,存储器406、处理器404、通信接口408)之间传送信息的通路。
处理器404可以包括中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
存储器406可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。处理器404还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard diskdrive,HDD)或固态硬盘(solid state drive,SSD)。存储器406中存储有可执行的程序代码,处理器404执行该可执行的程序代码以实现前述缓存管理方法200。具体的,存储器406上存有缓存管理装置104用于执行缓存管理方法200的指令。
通信接口403使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备400与其他设备或通信网络之间的通信。
本申请实施例还提供了一种计算设备集群。如图5所示,所述计算设备集群包括至少一个计算设备400。该计算设备集群中包括的计算设备集群可以全部是终端设备,也可以全部是云服务器,还可以部分是云服务器部分是终端设备。
在上述的三种关于计算设备集群的部署方式下,计算设备集群中的一个或多个计算设备400中的存储器406中可以存有相同的缓存管理装置104用于执行缓存管理方法200的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备400也可以用于执行缓存管理装置104用于执行缓存管理方法200的部分指令。换言之,一个或多个计算设备400的组合可以共同执行缓存管理装置104用于执行缓存管理方法200的指令。
需要说明的是,计算设备集群中的不同的计算设备400中的存储器406可以存储不同的指令,用于执行缓存管理装置104的部分功能。
图6示出了一种可能的实现方式。如图6所示,两个计算设备400A和400B通过通信接口408实现连接。计算设备400A中的存储器上存有用于执行通信单元302、存储单元304、记录单元308、训练单元310、决策单元312和淘汰单元314的功能的指令。计算设备400B中的存储器上存有用于执行缓存单元306的功能的指令。换言之,计算设备400A和400B的存储器406共同存储了缓存管理装置104用于执行缓存管理方法200的指令。
图6所示的计算设备集群之间的连接方式可以是考虑到本申请提供的缓存管理方法200需要对缓存单元306中的数据进行高速的写入或读取的操作。因此,考虑将缓存功能交由计算设备400B执行。
应理解,图6中示出的计算设备400A的功能也可以由多个计算设备400完成。同样,计算设备400B的功能也可以由多个计算设备400完成。
在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,所述网络可以是广域网或局域网等等。图7示出了一种可能的实现方式。如图7所示,两个计算设备400C和400D之间通过网络进行连接。具体地,通过各个计算设备中的通信接口与所述网络进行连接。在这一类可能的实现方式中,计算设备400C中的存储器406中存有执行通信单元302、存储单元304、记录单元308、决策单元312和淘汰单元314的指令。同时,计算设备400D中的存储器406中存有执行缓存单元306和训练单元310的指令。
图7所示的计算设备集群之间的连接方式可以是考虑到本申请提供的缓存管理方法200需要对缓存单元306中的数据进行高速的写入或读取的操作,和执行大量的计算以训练预测模型,因此考虑将缓存单元306和训练单元310实现的功能交由计算设备400D执行。
应理解,图7中示出的计算设备400C的功能也可以由多个计算设备400完成。同样,计算设备400D的功能也可以由多个计算设备400完成。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行上述应用于缓存管理装置104用于执行缓存管理方法200。
本申请实施例还提供了一种包含指令的计算机程序产品。所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当所述计算机程序产品在至少一个计算机设备上运行时,使得至少一个计算机设备执行上述缓存管理方法200。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。
Claims (19)
1.一种缓存管理方法,其特征在于,所述缓存管理方法用于缓存管理装置,所述方法包括:
接收第一数据写入请求,所述第一数据写入请求用于请求将硬盘中的第一数据写入缓存;
根据所述第一数据的相关参数,训练缓存写入预测模型;
将所述第一数据写入所述缓存;
接收第二数据写入请求,所述第二数据写入请求用于请求将所述硬盘中的第二数据写入所述缓存;
根据所述缓存写入预测模型,确定是否将所述第二数据写入所述缓存。
2.如权利要求1所述的方法,其特征在于,所述第一数据写入请求和所述第二数据写入请求属于第一批数据写入请求,所述方法还包括:
接收所述第一批数据写入请求;
根据采样规则,从所述第一批数据写入请求中确定所述第一数据写入请求和所述第二数据写入请求。
3.如权利要求2所述的方法,其特征在于,根据采样规则,从所述第一批数据写入请求中确定所述第一数据写入请求和所述第二数据写入请求,包括:
获取所述第一批数据写入请求中各数据写入请求携带的待写入数据的标识;
确定所述第一批数据写入请求中各数据写入请求携带的待写入数据的标识的哈希值可以被采样值整除的为所述第一数据写入请求;
确定所述第一批数据写入请求中各数据写入请求携带的待写入数据的标识的哈希值不可以被采样值整除的为所述第二数据写入请求。
4.如权利要求1至3中任一所述的方法,其特征在于,所述方法还包括:
接收第二批数据写入请求;
根据所述训练后的缓存写入预测模型,确定是否将所述第二批数据写入请求对应的待写入数据中至少一个数据写入所述缓存。
5.如权利要求1至4中任一所述的方法,其特征在于,所述根据所述第一数据的相关参数,训练缓存写入预测模型包括:
将所述缓存中数据平均大小、历史每周期总写入请求数、历史每周期总读取请求数、所述缓存中数据平均淘汰周期中至少一个,和所述第一数据的相关参数作为所述缓存写入预测模型的训练输入量;
根据所述第一数据请求发生后一个所述平均淘汰周期内所述第一数据的请求情况和淘汰情况,确定所述第一数据的写入概率作为所述缓存写入预测模型的训练输出量:
根据所述训练输入量和所述训练输出量,训练缓存写入预测模型。
6.如权利要求1至5中任一所述的方法,其特征在于,所述第一数据的相关参数包括下列至少一个:
所述第一数据的历史被请求写入数、所述第一数据的历史被请求读取数。
7.如权利要求1至6中任一所述的方法,其特征在于,所述根据所述缓存写入预测模型,确定是否将所述第二数据写入所述缓存,包括:
获取写入阈值;
根据所述缓存写入预测模型,获得所述第二数据的写入概率;
根据所述写入阈值和所述第二数据的写入概率,确定是否将所述第二数据的写入所述缓存。
8.如权利要求7中所述的方法,其特征在于,所述根据所述训练后的缓存写入预测模型,获得所述第二数据的写入概率包括:
将所述缓存中数据平均大小、所述缓存中数据平均淘汰周期、历史每周期总写入请求数、历史每周期总读取请求数中的至少一个,和所述第二数据相关参数作为所述缓存写入预测模型的预测输入量;
将所述预测输入量作为所述训练后的缓存写入预测模型的输入,获得所述第二数据的写入概率。
9.一种缓存管理装置,其特征在于,所述装置包括通信单元和处理单元:
所述通信单元,用于接收第一数据写入请求,所述第一数据写入请求用于请求将硬盘中的第一数据写入缓存;
所述处理单元,用于根据所述第一数据的相关参数,训练缓存写入预测模型;将所述第一数据写入所述缓存;
所述通信单元,还用于接收第二数据写入请求,所述第二数据写入请求用于请求将所述硬盘中的第二数据写入所述缓存;
所述处理单元,还用于根据所述缓存写入预测模型,确定是否将所述第二数据写入所述缓存。
10.如权利要求9所述的装置,其特征在于,所述通信单元,用于接收第一批数据写入请求;所述处理单元,用于根据划分规则,从所述第一批数据写入请求中确定所述第一数据写入请求和所述第二数据写入请求。
11.如权利要求10所述的装置,其特征在于,所述处理单元,用于获取所述第一批数据写入请求中各数据写入请求携带的待写入数据的标识;确定所述第一批数据写入请求中各数据写入请求携带的待写入数据的标识的哈希值可以被采样值整除的为所述第一数据写入请求;确定所述第一批数据写入请求中各数据写入请求携带的待写入数据的标识的哈希值不可以被采样值整除的为所述第二数据写入请求。
12.如权利要求8至11中任一所述的装置,其特征在于,所述处理单元,用于接收第二批数据写入请求;根据所述训练后的缓存写入预测模型,确定是否将所述第二批数据写入请求对应的待写入数据中至少一个数据写入所述缓存。
13.如权利要求8至12中任一所述的装置,其特征在于,所述处理单元,用于将所述缓存中数据平均大小、历史每周期总写入请求数、历史每周期总读取请求数、所述缓存中数据平均淘汰周期中至少一个,和所述第一数据的相关参数作为所述缓存写入预测模型的训练输入量;根据所述第一数据请求发生后一个所述平均淘汰周期内所述第一数据的请求情况和淘汰情况,确定所述第一数据的写入概率作为所述缓存写入预测模型的训练输出量:根据所述训练输入量和所述训练输出量,训练缓存写入预测模型。
14.如权利要求8至13中任一所述的装置,其特征在于,所述第一数据的相关参数包括下列至少一个:所述第一数据的历史被请求写入数、所述第一数据的历史被请求读取数。
15.如权利要求8至14中任一所述的装置,其特征在于,所述通信单元,用于获取写入阈值;所述处理单元,用于根据所述缓存写入预测模型,获得所述第二数据的写入概率;根据所述写入阈值和所述第二数据的写入概率,确定是否将所述第二数据写入所述缓存。
16.如权利要求15所述的装置,其特征在于,所述处理单元,用于将所述缓存中数据平均大小、所述缓存中数据平均淘汰周期、历史每周期总写入请求数、历史每周期总读取请求数中的至少一个,和所述第二数据相关参数作为所述缓存写入预测模型的预测输入量;将所述预测输入量作为所述训练后的缓存写入预测模型的输入,获得所述第二数据的写入概率。
17.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;
所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如权利要求1至8中任一所述的方法。
18.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算机设备集群运行时,使得所述计算机设备集群执行如权利要求的1至8中任一所述的方法。
19.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1至8中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/139427 WO2022156452A1 (zh) | 2021-01-21 | 2021-12-18 | 一种缓存管理方法、装置及设备 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110078600 | 2021-01-21 | ||
CN202110078600X | 2021-01-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114817319A true CN114817319A (zh) | 2022-07-29 |
Family
ID=82526439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110410912.6A Pending CN114817319A (zh) | 2021-01-21 | 2021-04-16 | 一种缓存管理方法、装置及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114817319A (zh) |
WO (1) | WO2022156452A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015061921A1 (zh) * | 2013-10-29 | 2015-05-07 | 上海宝存信息科技有限公司 | 用于数据存储系统的动态缓存方法和系统 |
US9652394B2 (en) * | 2015-02-16 | 2017-05-16 | Dell Products L.P. | System and method for managing a cache pool |
CN106708444A (zh) * | 2017-01-17 | 2017-05-24 | 北京联想核芯科技有限公司 | 数据存储方法和硬盘控制器 |
US10853246B2 (en) * | 2018-10-30 | 2020-12-01 | EMC IP Holding Company LLC | Increasing performance of write throughput using machine learning |
CN111104066B (zh) * | 2019-12-17 | 2021-07-27 | 华中科技大学 | 数据写入方法、装置及存储服务器和计算机可读存储介质 |
-
2021
- 2021-04-16 CN CN202110410912.6A patent/CN114817319A/zh active Pending
- 2021-12-18 WO PCT/CN2021/139427 patent/WO2022156452A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022156452A1 (zh) | 2022-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109471875B (zh) | 基于缓存数据的热度管理方法、服务器及存储介质 | |
US8463846B2 (en) | File bundling for cache servers of content delivery networks | |
EP3089039A1 (en) | Cache management method and device | |
CN107430551B (zh) | 数据缓存方法、存储控制装置、及存储设备 | |
JP2007510224A (ja) | プロキシキャッシュにおいてマルチメディアコンテンツのセグメントの優先順位を決める方法 | |
WO2011144175A1 (zh) | 分布式哈希表dht存储系统的数据预取方法、节点和系统 | |
US11809330B2 (en) | Information processing apparatus and method | |
CN106528451B (zh) | 针对小文件的二级缓存预取的云存储框架及构建方法 | |
CN113094392B (zh) | 数据缓存的方法和装置 | |
WO2022213871A1 (zh) | 缓存装置、方法及系统 | |
CN110147331A (zh) | 缓存数据处理方法、系统及可读存储介质 | |
CN110555001A (zh) | 数据处理方法、装置、终端及介质 | |
CN109766318A (zh) | 文件读取方法及装置 | |
CN115080459A (zh) | 缓存管理方法及装置、计算机可读存储介质 | |
CN115168244A (zh) | 一种数据更新方法、装置、设备及可读存储介质 | |
CN116931838A (zh) | 一种固态盘缓存管理方法、系统、电子设备及存储介质 | |
WO2021190501A1 (zh) | 数据预取方法、装置以及存储设备 | |
CN115794366A (zh) | 一种内存预取方法及装置 | |
CN109582233A (zh) | 一种数据的缓存方法和装置 | |
CN117235088A (zh) | 一种存储系统的缓存更新方法、装置、设备、介质及平台 | |
CN112650694B (zh) | 一种数据读取方法、装置、缓存代理服务器及存储介质 | |
WO2023165543A1 (zh) | 共享缓存的管理方法、装置及存储介质 | |
JPH07239808A (ja) | 分散データ管理方式 | |
WO2022156452A1 (zh) | 一种缓存管理方法、装置及设备 | |
CN114785858B (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 |