CN113672523A - 一种缓存池数据下刷方法、***、电子设备及存储介质 - Google Patents
一种缓存池数据下刷方法、***、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113672523A CN113672523A CN202110779568.8A CN202110779568A CN113672523A CN 113672523 A CN113672523 A CN 113672523A CN 202110779568 A CN202110779568 A CN 202110779568A CN 113672523 A CN113672523 A CN 113672523A
- Authority
- CN
- China
- Prior art keywords
- data
- pool
- brushing
- cache pool
- cache
- 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
- 238000011010 flushing procedure Methods 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000001680 brushing effect Effects 0.000 claims abstract description 179
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims abstract description 56
- 230000002596 correlated effect Effects 0.000 claims abstract description 21
- 230000000875 corresponding effect Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 9
- 239000007787 solid Substances 0.000 claims description 7
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 11
- 230000001276 controlling effect Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请公开了一种缓存池数据下刷方法,所述缓存池数据下刷方法包括:确定缓存池的下刷水位和数据池的业务压力;其中,所述缓存池用于存储热点数据,所述数据池用于存储客户端和所述缓存池下刷的非热点数据,所述热点数据的访问频率大于所述非热点数据的访问频率;根据所述下刷水位和所述业务压力确定下刷速度;其中,所述下刷速度与所述下刷水位正相关,所述下刷速度与所述业务压力负相关;按照所述下刷速度将所述缓存池中的非热点数据下刷至所述数据池。本申请能够平衡数据池接收的客户端下刷数据和缓存池下刷数据,避免数据池出现业务阻塞的情况。本申请还公开了一种缓存池数据下刷***、一种电子设备及一种存储介质,具有以上有益效果。
Description
技术领域
本申请涉及数据存储技术领域,特别涉及一种缓存池数据下刷方法、***、一种电子设备及一种存储介质。
背景技术
随着固态存储技术的发展,固态存储设备(如固态硬盘SSD)作为下一代存储设备进入了存储市场。但是受限于设备成本,固态存储设备无法全部替代传统的机械存储设备(如机械硬盘HDD),固态存储设备只能作为小容量的高速缓存设备存在于存储***中。尤其是在分布式存储***中,在成本有限及***安全可靠的前提下,往往通过“数据分层存储”,充分发挥机械存储设备的存储容量大及固态存储设备读写速度快的优点,最大限度的利用硬件资源。
在数据分层存储***中,一般由固态存储设备创建高速缓存池,机械存储设备创建实际存储数据的数据池。高速缓存池一般存储用户高频访问的热点数据;数据池存储用户低频访问的数据。高速缓存池应尽可能多的存储热点数据,但高速缓存池受限于高速缓存设备的存储容量,没有足够的空间去缓存尽可能多的热点数据,这就需要高速缓存池淘汰非热点数据到数据池。
在分层存储中,数据池不但要接收并处理客户端发来的业务IO,还要接受并处理高速缓存池下刷到数据池的非热点数据。这种情况下,如果不能很好的平衡业务IO和下刷IO,数据池中的机械存储设备很容易达到性能极限成为性能瓶颈,不能及时响应业务IO,造成前端业务阻塞。
因此,如何平衡数据池接收的客户端下刷数据和缓存池下刷数据,避免数据池出现业务阻塞的情况是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种缓存池数据下刷方法、***、一种电子设备及一种存储介质,能够平衡数据池接收的客户端下刷数据和缓存池下刷数据,避免数据池出现业务阻塞的情况。
为解决上述技术问题,本申请提供一种缓存池数据下刷方法,该缓存池数据下刷方法包括:
确定缓存池的下刷水位和数据池的业务压力;其中,所述缓存池用于存储热点数据,所述数据池用于存储客户端和所述缓存池下刷的非热点数据,所述热点数据的访问频率大于所述非热点数据的访问频率;
根据所述下刷水位和所述业务压力确定下刷速度;其中,所述下刷速度与所述下刷水位正相关,所述下刷速度与所述业务压力负相关;
按照所述下刷速度将所述缓存池中的非热点数据下刷至所述数据池。
可选的,按照所述下刷速度将所述缓存池中的非热点数据下刷至所述数据池,包括:
根据所述下刷速度设置可用线程总数和剩余同时下刷字节数;
按照预设规则调用下刷线程将所述缓存池中的非热点数据下刷至所述数据池;
其中,所述预设规则包括:每一下刷线程被调用时,所述可用线程总数减1,所述剩余同时下刷字节数减去被调用的下刷线程对应的下刷字节数;每一下刷线程被调用结束时,所述可用线程总数加1,所述剩余同时下刷字节数加上被调用结束的下刷线程对应的下刷字节数;当所述可用线程总数和/或所述剩余同时下刷字节数为0时,暂停所述述缓存池中的非热点数据的下刷操作。
可选的,所述确定缓存池的下刷水位和数据池的业务压力,包括:
根据所述缓存池中已使用空间占缓存池空间总量的比值确定所述下刷水位;
接收所述数据池上报的所述业务压力;其中,所述业务压力根据所述数据池中的资源参数确定;所述资源参数包括每一周期的平均数据处理大小、平均时延、平均服务时间、平均IO次数和平均带宽中的任一项或任几项的组合。
可选的,接收所述数据池上报的所述业务压力,包括:
向所述数据池发送压力查询请求,以便所述数据池执行压力识别操作将数据池压力识别结果返回至所述缓存池;
根据所述数据池压力识别结果确定所述业务压力。
可选的,接收所述数据池上报的所述业务压力,包括:
根据所述数据池发送的回复消息确定业务压力;其中,当所述数据池接收到所述缓存池下刷的数据时,所述数据池根据数据池压力识别结果构建所述回复消息,并所述回复消息发送至所述缓存池。
可选的,还包括:
在所述数据池第一次向所述缓存池下刷非热点数据时,根据所述下刷水位确定临时下刷速度,并按照所述临时下刷速度向所述缓存池下刷非热点数据。
可选的,所述缓存池的存储介质为固态硬盘,所述数据池的存储介质为机械硬盘。
本申请还提供了一种缓存池数据下刷***,该***包括:
参数确定模块,用于确定缓存池的下刷水位和数据池的业务压力;其中,所述缓存池用于存储热点数据,所述数据池用于存储客户端和所述缓存池下刷的非热点数据,所述热点数据的访问频率大于所述非热点数据的访问频率;
下刷速度确定模块,用于根据所述下刷水位和所述业务压力确定下刷速度;其中,所述下刷速度与所述下刷水位正相关,所述下刷速度与所述业务压力负相关;
数据下刷模块,用于按照所述下刷速度将所述缓存池中的非热点数据下刷至所述数据池。
本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述缓存池数据下刷方法执行的步骤。
本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述缓存池数据下刷方法执行的步骤。
本申请提供了一种缓存池数据下刷方法,包括:确定缓存池的下刷水位和数据池的业务压力;其中,所述缓存池用于存储热点数据,所述数据池用于存储客户端和所述缓存池下刷的非热点数据,所述热点数据的访问频率大于所述非热点数据的访问频率;根据所述下刷水位和所述业务压力确定下刷速度;其中,所述下刷速度与所述下刷水位正相关,所述下刷速度与所述业务压力负相关;按照所述下刷速度将所述缓存池中的非热点数据下刷至所述数据池。
本申请中的缓存池用于存储访问频率较高的热点数据,数据池用于存储访问频率较低的热点数据,在确定缓存池的下刷水位和数据池的业务压力之后,可以根据下刷水位和业务压力确定下刷速度。上述确定的下刷速度与下刷水位正相关,与业务压力负相关。上述方案能够在数据池的业务压力较大时减小缓存池的数据下刷速度,进而平衡数据池接收的客户端下刷数据和缓存池下刷数据,避免数据池出现业务阻塞的情况。本申请同时还提供了一种缓存池数据下刷***、一种电子设备和一种存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种缓存池数据下刷方法的流程图;
图2为本申请实施例所提供的一种分层存储示意图;
图3为本申请实施例所提供的一种缓存池数据下刷***的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面请参见图1,图1为本申请实施例所提供的一种缓存池数据下刷方法的流程图。
具体步骤可以包括:
S101:确定缓存池的下刷水位和数据池的业务压力;
其中,本实施例可以用于数据存储服务器,缓存池(Cache Pool)又称高速缓存池,缓存池可以通过固态硬盘SSD创建得到,即缓存池的存储介质为固态硬盘;数据池(DataPool)又称数据存储池,数据存储池可以通过机械硬盘HDD创建得到,即数据池的存储介质为机械硬盘。
热点数据的访问频率大于所述非热点数据的访问频率,本实施例中根据数据的访问频率高低将数据划分为热点数据和非热点数据,例如可以将访问频率前P%的数据作为热点数据,将访问频率后(1-P)%的数据作为非热点数据。数据访问操作可以实时进行,因此热点数据和非热点数据之间可以动态转化。请参见图2,图2为本申请实施例所提供的一种分层存储示意图,客户端可以将用户业务IO下刷至缓存池和数据池,缓存池可以将非热点数据下刷至数据池。
具体的,本实施例中可以将客户端下刷的热点数据存储至缓存池,还可以将数据池中的热点数据存储至缓存池;本实施例可以将客户端和所述缓存池下刷的非热点数据存储至数据池。
缓存池的下刷水位根据缓存池当前的存储空间占用率确定,存储空间占用率越高缓存池中的下刷水位也越高。数据池的业务压力用于描述数据池在一定周期内需要处理的数据任务数量。当客户端和缓存池向数据池下刷的数据增加时,数据池的业务压力增大。
S102:根据所述下刷水位和所述业务压力确定下刷速度;
在得到了缓存池的下刷水位和数据池的业务压力的基础上,可以根据下刷水位和业务压力确定下刷速度。此处提到的下刷速度指缓存池向数据池下刷非热点数据的速度。
由于缓存池的存储空间有限,当缓存池的存储空间占用率较高时,缓存池存储热点数据的性能将会受到影响,因此本实施例设置下刷速度与下刷水位正相关,以便在下刷水位较高时快速下刷数据,保证存储池的业务不阻塞。当数据池的业务压力较大时,无法同时处理所有任务,将会造成前端业务阻塞;本申请设置下刷速度与业务压力负相关,在数据池业务压力较大时减少缓存池的数据下刷量,进而减小数据池的业务压力,以便数据池正常为客户端提供业务数据下刷服务。
作为一种可行的实施方式,本实施例可以为下刷水位和业务压力设置对应的权重以便加权计算下刷速度。例如,加权速度V=(W1×A-W2×B)×V0;W1为下刷水位A的权重,W2为业务压力B的权重,V0为预设下刷速度。优选的,可以设置业务压力的权重高于下刷水位的权重,以便尽量保证前端业务不堵塞。进一步的,本实施例可以为缓存池设置下刷临界水位(如70%),当缓存池的下刷水位低于或等于下刷临界水位时,不进行非热点数据的下刷;当缓存池的下刷水位高于下刷临界水位时,向数据池下刷热点数据。
S103:按照所述下刷速度将所述缓存池中的非热点数据下刷至所述数据池。
其中,在得到了下刷速度的基础上,本步骤可以按照下刷速度对非热点数据下刷至数据池。由于缓存池的下刷水位和数据池的业务压力实时变化,本实施例可以按照预设周期更新下刷速度,以便按照最新的下刷速度来下刷非热点数据。
缓存池用于存储访问频率较高的热点数据,当存储池中某一热点数据的访问频率降低至预设值以下时该数据就转变为缓存池中的非热点数据,当存储池的下刷水位高于预设水位时存储池中访问频率排名后N位的热点数据转变为缓存池中的非热点数据。因此,本步骤中缓存池中的非热点数据包括:(1)访问频率降低至预设值以下的数据;(2)访问频率排名靠后的数据。作为一种可行的实施方式,本实施例可以按照访问频率从低到高的顺序依次选定缓存池中的非热点数据下刷至数据池。
本实施例中的缓存池用于存储访问频率较高的热点数据,数据池用于存储访问频率较低的热点数据,在确定缓存池的下刷水位和数据池的业务压力之后,可以根据下刷水位和业务压力确定下刷速度。上述确定的下刷速度与下刷水位正相关,与业务压力负相关。上述方案能够在数据池的业务压力较大时减小缓存池的数据下刷速度,进而平衡数据池接收的客户端下刷数据和缓存池下刷数据,避免数据池出现业务阻塞的情况。
作为对于图1对应实施例的进一步介绍,本实施例可以通过以下方式控制下刷速度,进而将所述缓存池中的非热点数据下刷至所述数据池:根据所述下刷速度设置可用线程总数和剩余同时下刷字节数;按照预设规则调用下刷线程将所述缓存池中的非热点数据下刷至所述数据池。
其中,所述预设规则包括:每一下刷线程被调用时,所述可用线程总数减1,所述剩余同时下刷字节数减去被调用的下刷线程对应的下刷字节数;每一下刷线程被调用结束时,所述可用线程总数加1,所述剩余同时下刷字节数加上被调用结束的下刷线程对应的下刷字节数;当所述可用线程总数和/或所述剩余同时下刷字节数为0时,暂停所述述缓存池中的非热点数据的下刷操作。
上述下刷线程用于将缓存池中的非热点数据下刷至数据池,每一下刷线程被调用时下刷的字节数不同。上述剩余同时下刷字节数指在缓存池还能够在同一时刻继续下刷非热点数据的字节数,剩余同时下刷字节数为下刷字节数总通量和所有被调用的下刷线程对应的下刷字节数的差值。
作为对于图1对应实施例的进一步介绍,本实施例可以通过以下方式确定缓存池的下刷水位:根据所述缓存池中已使用空间占缓存池空间总量的比值确定所述下刷水位。
进一步的,还可以通过以下方式确定数据池的业务压力:接收所述数据池上报的所述业务压力;其中,所述业务压力根据所述数据池中的资源参数确定;所述资源参数包括每一周期的平均数据处理大小、平均时延、平均服务时间、平均IO次数和平均带宽中的任一项或任几项的组合。具体的,可以根据多个周期内资源参数的平均值确定业务压力。
其中,可以通过主动查询和被动回传两种方案查询数据池的业务压力。主动查询指:在缓存池第一次下刷非热点数据之前先查询数据池的业务压力的过程;被动回传指:在缓存池第一次下刷非热点数据时,不判断数据池的业务压力直接下刷数据,数据池将业务压力添加至回复信息发送回存储池的过程。
主动查询业务压力的过程如下:向所述数据池发送压力查询请求,以便所述数据池执行压力识别操作将数据池压力识别结果返回至所述缓存池;根据所述数据池压力识别结果确定所述业务压力。
被动回传业务压力的过程如下:根据所述数据池发送的回复消息确定业务压力;其中,当所述数据池接收到所述缓存池下刷的数据时,所述数据池根据数据池压力识别结果构建所述回复消息,并所述回复消息发送至所述缓存池。其中,数据池在接收到缓存池下刷的非热点数据后存在向缓存池发送回复消息的操作,数据池可以将业务压力添加至回复消息中。
若使用通过被动回传的方式查询数据池的业务压力,在所述数据池第一次向所述缓存池下刷非热点数据时,可以根据所述下刷水位确定临时下刷速度,并按照所述临时下刷速度向所述缓存池下刷非热点数据。
下面通过在实际应用中的实施例说明上述实施例描述的流程。
本实施例提出了一种分布式分层存储***中通过识别数据池压力控制缓存下刷的方案。上述分布式分层存储***包括缓存池和数据池,缓存池由固态硬盘创建得到,用于存储热点数据;数据池由机械硬盘创建得到,用于存储非热点数据。
本实施例主要解决采用数据分层存储的分布式存储***中,通过识别数据池压力、高速缓存池下刷流控,平衡热点数据下刷与前端业务IO的问题。数据池压力识别,可以实现以下几个目标:(1)在数据池压力较小时,可以快速下刷非热点数据;(2)在数据池压力较大时,暂缓下刷,不能影响前端业务;(3)在数据池压力适中时,缓速下刷。为实现上述目标,本实施例主要设计有缓存池下刷流控(即数据池压力流控)、数据池压力识别、数据池压力数据回传等三个主要部分。
缓存池下刷流控(即数据池压力流控)主要通过缓存池控制下刷水位及下刷速度,实现对HDD盘资源的占用控制。对缓存池设置高、中、低三个水位,高水位下,下刷速度最快,中水位次之,低水位下刷速度最慢;同时设置节流阀CacheThrottle,设置最大OP(operation,操作)数及最大字节数。每一个下刷操作,相应的OP数减一,最大字节数减去下刷的字节数,下刷完成后相应的OP加一且字节数加上相应的下刷字节数,当最大OP数或者最大字节数剩余为零时,暂停下刷,等待其他下刷任务完成。
数据池压力识别主要是获取HDD盘相关资源参数。HDD盘周期性的检测磁盘参数(例如10s一个周期),磁盘参数主要通过调用***命令,读取/proc/diskstats文件获取。HDD盘可以计算一个周期内的平均大小(size)、平均时延(delay)、平均服务时间(svctm)、平均io次数(iops)、平均带宽(bw),并使用滑动窗口机制记录若干周期的检测结果。根据检测结果,HDD盘压力情况可以分为以下几类:压力较小(压力小于40%)、压力较大(压力小于70%)、压力很大(90%)。
数据池压力回传主要是基于数据池压力识别的结果,把结果回传给高速缓存池,以便控制下刷速度。压力回传可以采用两种方式:主动查询和被动回传。主动查询需要告诉缓存池构造新消息,查询数据池的HDD压力状况;被动回传的方式,可以在缓存池下发要下刷数据消息的reply消息中,附带HDD压力状况信息。本实施例可以采用被动回传的方式。
本实施例提供的一种分布式分层存储***中通过识别数据池压力控制缓存下刷的方法,具体实施过程如下:
步骤1、部署分布式存储集群,创建缓存池Cache Pool和数据池Data Pool,缓存池的存储介质为高速介质Nvme等高速存储介质,数据池的存储介质可为HDD等低速存储介质;
步骤2、当高速缓存池的水位到达低水位时,开始下刷数据,即高速缓存池开始淘汰非热点数据到数据池。低水位时下刷速度较慢,高水位时加快淘汰速度。
步骤3、缓存池淘汰数据时,受节流阀CacheThrottle限制,当下刷的数据操作最大OP数或者最大字节数时,暂缓下刷;
步骤4、第一次下刷数据时,不需要判断数据池压力,直接下刷数据;
步骤5、数据池的HDD盘周期性的执行命令,检查磁盘相关参数,当有数据下刷时,在reply消息中返回数据池的状态;
步骤6、当第一次下刷完成时,高速缓存池收到了数据池返回的reply消息,周期性的计算数据池反馈的平均压力状况(一般取3s~5s一个周期),根据结果执行相应的下刷策略。
步骤7、当数据池业务压力较时,高速缓存池不做处理;当数据池业务压力较大时,高速缓存池控制下刷速度,对象下刷时采取更大的时间间隔,此间隔可以根据HDD盘性能取值(一般延时200ms);当数据池业务压力很大时,暂停下刷,等待2s后再下刷数据。
本实施例采用的一种分布式分层存储***中通过识别数据池压力控制缓存下刷的方法、装置,使缓存池Cache Pool在尽可能快的下刷非热点数据前提下,通过流控及数据池压力识别,实现非热点数据下刷控制,达到既不影响前端业务,又可以快速淘汰非热点数据的功能。本实施例能够解决采用数据分层存储的分布式存储***中,平衡热点数据下刷与前端业务IO的问题。
请参见图3,图3为本申请实施例所提供的一种缓存池数据下刷***的结构示意图;
该***可以包括:
参数确定模块301,用于确定缓存池的下刷水位和数据池的业务压力;其中,所述缓存池用于存储热点数据,所述数据池用于存储客户端和所述缓存池下刷的非热点数据,所述热点数据的访问频率大于所述非热点数据的访问频率;
下刷速度确定模块302,用于根据所述下刷水位和所述业务压力确定下刷速度;其中,所述下刷速度与所述下刷水位正相关,所述下刷速度与所述业务压力负相关;
数据下刷模块303,用于按照所述下刷速度将所述缓存池中的非热点数据下刷至所述数据池。
本实施例中的缓存池用于存储访问频率较高的热点数据,数据池用于存储访问频率较低的热点数据,在确定缓存池的下刷水位和数据池的业务压力之后,可以根据下刷水位和业务压力确定下刷速度。上述确定的下刷速度与下刷水位正相关,与业务压力负相关。上述方案能够在数据池的业务压力较大时减小缓存池的数据下刷速度,进而平衡数据池接收的客户端下刷数据和缓存池下刷数据,避免数据池出现业务阻塞的情况。
进一步的,数据下刷模块303用于根据所述下刷速度设置可用线程总数和剩余同时下刷字节数;还用于按照预设规则调用下刷线程将所述缓存池中的非热点数据下刷至所述数据池;
其中,所述预设规则包括:每一下刷线程被调用时,所述可用线程总数减1,所述剩余同时下刷字节数减去被调用的下刷线程对应的下刷字节数;每一下刷线程被调用结束时,所述可用线程总数加1,所述剩余同时下刷字节数加上被调用结束的下刷线程对应的下刷字节数;当所述可用线程总数和/或所述剩余同时下刷字节数为0时,暂停所述述缓存池中的非热点数据的下刷操作。
进一步的,参数确定模块301包括:
水位确定单元,用于根据所述缓存池中已使用空间占缓存池空间总量的比值确定所述下刷水位;
压力确定单元,用于接收所述数据池上报的所述业务压力;其中,所述业务压力根据所述数据池中的资源参数确定;所述资源参数包括每一周期的平均数据处理大小、平均时延、平均服务时间、平均IO次数和平均带宽中的任一项或任几项的组合。
进一步的,压力确定单元包括:
主动查询子单元,用于向所述数据池发送压力查询请求,以便所述数据池执行压力识别操作将数据池压力识别结果返回至所述缓存池;还用于根据所述数据池压力识别结果确定所述业务压力。
进一步的,压力确定单元包括:
被动回传子单元,用于根据所述数据池发送的回复消息确定业务压力;其中,当所述数据池接收到所述缓存池下刷的数据时,所述数据池根据数据池压力识别结果构建所述回复消息,并所述回复消息发送至所述缓存池。
进一步的,还包括:
首次下刷控制子单元,用于在所述数据池第一次向所述缓存池下刷非热点数据时,根据所述下刷水位确定临时下刷速度,并按照所述临时下刷速度向所述缓存池下刷非热点数据。
进一步的,所述缓存池的存储介质为固态硬盘,所述数据池的存储介质为机械硬盘。
由于***部分的实施例与方法部分的实施例相互对应,因此***部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的***而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种缓存池数据下刷方法,其特征在于,包括:
确定缓存池的下刷水位和数据池的业务压力;其中,所述缓存池用于存储热点数据,所述数据池用于存储客户端和所述缓存池下刷的非热点数据,所述热点数据的访问频率大于所述非热点数据的访问频率;
根据所述下刷水位和所述业务压力确定下刷速度;其中,所述下刷速度与所述下刷水位正相关,所述下刷速度与所述业务压力负相关;
按照所述下刷速度将所述缓存池中的非热点数据下刷至所述数据池。
2.根据权利要求1所述缓存池数据下刷方法,其特征在于,按照所述下刷速度将所述缓存池中的非热点数据下刷至所述数据池,包括:
根据所述下刷速度设置可用线程总数和剩余同时下刷字节数;
按照预设规则调用下刷线程将所述缓存池中的非热点数据下刷至所述数据池;
其中,所述预设规则包括:每一下刷线程被调用时,所述可用线程总数减1,所述剩余同时下刷字节数减去被调用的下刷线程对应的下刷字节数;每一下刷线程被调用结束时,所述可用线程总数加1,所述剩余同时下刷字节数加上被调用结束的下刷线程对应的下刷字节数;当所述可用线程总数和/或所述剩余同时下刷字节数为0时,暂停所述述缓存池中的非热点数据的下刷操作。
3.根据权利要求1所述缓存池数据下刷方法,其特征在于,所述确定缓存池的下刷水位和数据池的业务压力,包括:
根据所述缓存池中已使用空间占缓存池空间总量的比值确定所述下刷水位;
接收所述数据池上报的所述业务压力;其中,所述业务压力根据所述数据池中的资源参数确定;所述资源参数包括每一周期的平均数据处理大小、平均时延、平均服务时间、平均IO次数和平均带宽中的任一项或任几项的组合。
4.根据权利要求3所述缓存池数据下刷方法,其特征在于,接收所述数据池上报的所述业务压力,包括:
向所述数据池发送压力查询请求,以便所述数据池执行压力识别操作将数据池压力识别结果返回至所述缓存池;
根据所述数据池压力识别结果确定所述业务压力。
5.根据权利要求3所述缓存池数据下刷方法,其特征在于,接收所述数据池上报的所述业务压力,包括:
根据所述数据池发送的回复消息确定业务压力;其中,当所述数据池接收到所述缓存池下刷的数据时,所述数据池根据数据池压力识别结果构建所述回复消息,并所述回复消息发送至所述缓存池。
6.根据权利要求5所述缓存池数据下刷方法,其特征在于,还包括:
在所述数据池第一次向所述缓存池下刷非热点数据时,根据所述下刷水位确定临时下刷速度,并按照所述临时下刷速度向所述缓存池下刷非热点数据。
7.根据权利要求1至6任一项所述缓存池数据下刷方法,其特征在于,所述缓存池的存储介质为固态硬盘,所述数据池的存储介质为机械硬盘。
8.一种缓存池数据下刷***,其特征在于,包括:
参数确定模块,用于确定缓存池的下刷水位和数据池的业务压力;其中,所述缓存池用于存储热点数据,所述数据池用于存储客户端和所述缓存池下刷的非热点数据,所述热点数据的访问频率大于所述非热点数据的访问频率;
下刷速度确定模块,用于根据所述下刷水位和所述业务压力确定下刷速度;其中,所述下刷速度与所述下刷水位正相关,所述下刷速度与所述业务压力负相关;
数据下刷模块,用于按照所述下刷速度将所述缓存池中的非热点数据下刷至所述数据池。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1至7任一项所述缓存池数据下刷方法的步骤。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至7任一项所述缓存池数据下刷方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110779568.8A CN113672523A (zh) | 2021-07-09 | 2021-07-09 | 一种缓存池数据下刷方法、***、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110779568.8A CN113672523A (zh) | 2021-07-09 | 2021-07-09 | 一种缓存池数据下刷方法、***、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113672523A true CN113672523A (zh) | 2021-11-19 |
Family
ID=78538814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110779568.8A Pending CN113672523A (zh) | 2021-07-09 | 2021-07-09 | 一种缓存池数据下刷方法、***、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113672523A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100281230A1 (en) * | 2009-04-29 | 2010-11-04 | Netapp, Inc. | Mechanisms for moving data in a hybrid aggregate |
CN103049396A (zh) * | 2012-12-10 | 2013-04-17 | 浪潮(北京)电子信息产业有限公司 | 数据的刷写方法及装置 |
CN104090731A (zh) * | 2014-07-09 | 2014-10-08 | 浙江宇视科技有限公司 | 一种自动进行Cache刷新参数调节的方法和装置 |
CN106293500A (zh) * | 2015-06-23 | 2017-01-04 | 中兴通讯股份有限公司 | 一种写操作控制方法、装置及*** |
CN109343797A (zh) * | 2018-09-25 | 2019-02-15 | 郑州云海信息技术有限公司 | 一种缓存数据的传输方法、***及相关组件 |
CN109614045A (zh) * | 2018-12-06 | 2019-04-12 | 广东浪潮大数据研究有限公司 | 一种元数据落盘方法、装置及相关设备 |
CN110688066A (zh) * | 2019-09-06 | 2020-01-14 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、***、电子设备及存储介质 |
US20200133843A1 (en) * | 2018-10-30 | 2020-04-30 | Micron Technology, Inc. | Periodic flush in memory component that is using greedy garbage collection |
CN113031872A (zh) * | 2021-03-26 | 2021-06-25 | 山东英信计算机技术有限公司 | 一种存储***的数据写入方法及相关装置 |
-
2021
- 2021-07-09 CN CN202110779568.8A patent/CN113672523A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100281230A1 (en) * | 2009-04-29 | 2010-11-04 | Netapp, Inc. | Mechanisms for moving data in a hybrid aggregate |
CN103049396A (zh) * | 2012-12-10 | 2013-04-17 | 浪潮(北京)电子信息产业有限公司 | 数据的刷写方法及装置 |
CN104090731A (zh) * | 2014-07-09 | 2014-10-08 | 浙江宇视科技有限公司 | 一种自动进行Cache刷新参数调节的方法和装置 |
CN106293500A (zh) * | 2015-06-23 | 2017-01-04 | 中兴通讯股份有限公司 | 一种写操作控制方法、装置及*** |
CN109343797A (zh) * | 2018-09-25 | 2019-02-15 | 郑州云海信息技术有限公司 | 一种缓存数据的传输方法、***及相关组件 |
US20200133843A1 (en) * | 2018-10-30 | 2020-04-30 | Micron Technology, Inc. | Periodic flush in memory component that is using greedy garbage collection |
CN109614045A (zh) * | 2018-12-06 | 2019-04-12 | 广东浪潮大数据研究有限公司 | 一种元数据落盘方法、装置及相关设备 |
CN110688066A (zh) * | 2019-09-06 | 2020-01-14 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、***、电子设备及存储介质 |
CN113031872A (zh) * | 2021-03-26 | 2021-06-25 | 山东英信计算机技术有限公司 | 一种存储***的数据写入方法及相关装置 |
Non-Patent Citations (1)
Title |
---|
樊春;彭小斌;来天平;杨旭;: "中端存储新技术调研", 武汉大学学报(理学版), vol. 978, no. 1, pages 136 - 139 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106796547A (zh) | 用于代理缓存智能对象淘汰的方法和*** | |
US7970861B2 (en) | Load balancing in a distributed computing environment | |
CN108182105B (zh) | 基于Docker容器技术的局部动态迁移方法及控制*** | |
CN100518088C (zh) | 一种流媒体数据内容管理方法 | |
US8473676B2 (en) | Controlling replication of data among storage devices | |
CN109343797B (zh) | 一种缓存数据的传输方法、***及相关组件 | |
KR102245341B1 (ko) | 클라우드 엣지 내 워크로드 분산을 위한 예측 모델 적용 방법 | |
CN106648456B (zh) | 基于用户访问量以及预测机制的动态副本文件访问方法 | |
CN103986766A (zh) | 自适应负载均衡作业任务调度方法及装置 | |
US20110314175A1 (en) | Changing i/o types for processing data requests | |
CN110505155A (zh) | 请求降级处理方法、装置、电子设备及存储介质 | |
CN102122303A (zh) | 一种进行数据迁移的方法及服务***及服务器设备 | |
CN110636388A (zh) | 一种业务请求分配方法、***、电子设备及存储介质 | |
US7664917B2 (en) | Device and method for caching control, and computer product | |
CN107301090B (zh) | 在存储服务器中为应用设置数据处理路径的方法及装置 | |
JP6546235B2 (ja) | ストレージシステム | |
CN109582649A (zh) | 一种元数据存储方法、装置、设备及可读存储介质 | |
CN102480502B (zh) | 一种i/o负载均衡方法及i/o服务器 | |
CN111124283A (zh) | 一种存储空间管理方法、***、电子设备及存储介质 | |
CN106775942B (zh) | 一种云应用导向的固态盘缓存管理***及方法 | |
US7890958B2 (en) | Automatic adjustment of time a consumer waits to access data from queue during a waiting phase and transmission phase at the queue | |
CN114968854A (zh) | 对存储器的输入带宽进行调整的方法及存储*** | |
CN113672523A (zh) | 一种缓存池数据下刷方法、***、电子设备及存储介质 | |
CN107491455A (zh) | 一种分布式***中的读取方法及装置 | |
US20170269864A1 (en) | Storage Array Operation Method and Apparatus |
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 |