CN109960470B - 数据处理方法、装置及领导节点 - Google Patents
数据处理方法、装置及领导节点 Download PDFInfo
- Publication number
- CN109960470B CN109960470B CN201910244981.7A CN201910244981A CN109960470B CN 109960470 B CN109960470 B CN 109960470B CN 201910244981 A CN201910244981 A CN 201910244981A CN 109960470 B CN109960470 B CN 109960470B
- Authority
- CN
- China
- Prior art keywords
- objects
- homing
- parameter
- group
- cache pool
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 10
- 238000000034 method Methods 0.000 claims abstract description 25
- 230000001680 brushing effect Effects 0.000 claims abstract description 18
- 238000012545 processing Methods 0.000 claims abstract description 11
- 238000012216 screening Methods 0.000 claims abstract description 9
- 238000011010 flushing procedure Methods 0.000 claims description 15
- 230000000875 corresponding effect Effects 0.000 description 117
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 4
- 230000008030 elimination Effects 0.000 description 4
- 238000003379 elimination reaction Methods 0.000 description 4
- 238000005201 scrubbing Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
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)
- Image Generation (AREA)
Abstract
本发明提供一种数据处理方法、装置及领导节点。所述分布式存储系统的缓存池配置有多个归置组,每一个归置组对应多个存储于所述缓存池的对象,所述方法包括:若所述缓存池的已用容量达到预设的刷盘容量阈值,确定所述缓存池中待刷盘对象的第一数量;根据所述第一数量以及各归置组对应的对象的数量,分别确定各归置组对应的待刷盘对象的第二数量,所述第二数量与归置组对应的对象的数量成正相关关系;从所述各归置组对应的对象中,分别筛选所述第二数量个对象并执行刷盘操作。通过本发明可降低刷盘频率,降低对数据读写性能的影响,同时,避免对象长期占用缓存池空间,提升缓存池空间的利用率。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种数据处理方法、装置及领导节点。
背景技术
Ceph是一种分布式存储系统,为块存储、对象存储以及文件存储提供软件定义的、统一的存储解决方案,具有性能优异、高可靠性、高扩展性的特点,可对外提供海量、无差别以及统一的分布式存储服务。
Ceph采用分层存储技术,在前端部署价格昂贵但存储速度较快的硬盘,比如,SSD(Solid State Disk,固态硬盘),组成缓存池;在后端部署价格低廉但存储速度较慢的硬盘,比如,HDD(Hard Disk Drive,硬盘驱动器),组成存储池。
用户数据首先存储到缓存池。当缓存池的已用容量达到刷盘容量阈值时,将缓存池中的脏数据(未写入后端存储池的数据)写入后端存储池,该过程称为刷盘。刷盘后缓存池中的干净数据(脏数据写入后端存储池后变为干净数据)可删除,以释放缓存池的存储空间,该过程称为淘汰。
目前,Ceph的刷盘主要基于PG(Placement Group,归置组)实现。
PG是Ceph中的逻辑单元。用户数据到达分布式存储系统时,首先被切分成若干Object(对象),Object被映射到PG,一个PG可对应多个Object,PG再映射到实际存储单元OSD(Object Storage Device,对象存储设备)。这样刷盘后,用户数据对应的Object就会被写入OSD。
Ceph的缓存池可预先配置一定数量的PG。在刷盘之前,将缓存池的刷盘容量阈值与PG数量的比值,作为每一个PG的刷盘容量阈值。当PG对应的Object的容量达到PG的刷盘容量阈值时,执行刷盘。
在实际运行中,很难保证各PG对应的Object数量均衡。因此,可能存在部分PG长期对应较多Object,导致频繁刷盘,影响数据读写性能。而有些PG长期对应较少Object,这些Object得不到及时刷盘和淘汰,占用缓存池空间。
也就是说,现有技术存在频繁刷盘,影响数据读写性能,以及缓存池空间利用不合理的问题。
发明内容
本发明为了解决现有刷盘操作影响数据读写性能,以及缓存池空间利用不合理的问题,提出一种数据处理方法、装置及领导节点,用以改善数据读写性能,提升缓存池空间利用率。
为实现上述发明目的,本发明提供了如下技术方案:
第一方面,本发明提供一种数据处理方法,应用于分布式存储系统中的领导节点,所述分布式存储系统的缓存池配置有多个归置组,每一个归置组对应多个存储于所述缓存池的对象,所述方法包括:
若所述缓存池的已用容量达到预设的刷盘容量阈值,确定所述缓存池中待刷盘对象的第一数量;
根据所述第一数量以及各归置组对应的对象的数量,分别确定各归置组对应的待刷盘对象的第二数量,所述第二数量与归置组对应的对象的数量成正相关关系;
从所述各归置组对应的对象中,分别筛选所述第二数量个对象并执行刷盘操作。
可选的,所述确定所述缓存池中待刷盘对象的第一数量,包括:
获取预设的所述第一数量;
或者,
获取预设的待刷盘容量以及对象的大小;
根据所述待刷盘容量和所述对象的大小,确定所述缓存池中待刷盘对象的第一数量。
可选的,所述根据所述第一数量以及各归置组对应的对象的数量,分别确定各归置组对应的待刷盘对象的第二数量,包括:
针对每一归置组分别执行以下操作:
将一个归置组对应的对象的数量占所述缓存池中对象的总数量的百分比,确定为所述一个归置组的第一参数;
根据所述一个归置组对应的冷对象的数量以及所述一个归置组对应的对象的数量,确定所述一个归置组的第二参数;
根据所述第一数量、所述第一参数、所述第二参数,确定所述一个归置组对应的待刷盘对象的第二数量。
可选的,所述根据所述一个归置组对应的冷对象的数量以及所述一个归置组对应的对象的数量,确定所述一个归置组的第二参数,包括:
获取所述一个归置组对应的冷对象的数量和所述一个归置组对应的对象的数量的和;
将所述和与所述一个归置组对应的对象的数量的商,作为所述一个归置组的第二参数。
可选的,所述根据所述第一数量、所述第一参数、所述第二参数,确定所述一个归置组对应的待刷盘对象的第二数量,包括:
获取所述第一数量、所述第一参数、所述第二参数的乘积;
从所述乘积和所述一个归置组对应的对象的数量中,选择最小数量作为所述一个归置组对应的待刷盘对象的第二数量。
第二方面,本发明提供一种数据处理装置,应用于分布式存储系统中的领导节点,所述分布式存储系统的缓存池配置有多个归置组,每一个归置组对应多个存储于所述缓存池的对象,所述装置包括:
第一数量确定单元,用于若所述缓存池的已用容量达到预设的刷盘容量阈值,确定所述缓存池中待刷盘对象的第一数量;
第二数量确定单元,用于根据所述第一数量以及各归置组对应的对象的数量,分别确定各归置组对应的待刷盘对象的第二数量,所述第二数量与归置组对应的对象的数量成正相关关系;
对象筛选单元,用于从所述各归置组对应的对象中,分别筛选所述第二数量个对象并执行刷盘操作。
可选的,所述第一数量确定单元确定所述缓存池中待刷盘对象的第一数量,包括:
获取预设的所述第一数量;
或者,
获取预设的待刷盘容量以及对象的大小;
根据所述待刷盘容量和所述对象的大小,确定所述缓存池中待刷盘对象的第一数量。
可选的,所述第二数量确定单元根据所述第一数量以及各归置组对应的对象的数量,分别确定各归置组对应的待刷盘对象的第二数量,包括:
针对每一归置组分别执行以下操作:
将一个归置组对应的对象的数量占所述缓存池中对象的总数量的百分比,确定为所述一个归置组的第一参数;
根据所述一个归置组对应的冷对象的数量以及所述一个归置组对应的对象的数量,确定所述一个归置组的第二参数;
根据所述第一数量、所述第一参数、所述第二参数,确定所述一个归置组对应的待刷盘对象的第二数量。
可选的,所述第二数量确定单元根据所述一个归置组对应的冷对象的数量以及所述一个归置组对应的对象的数量,确定所述一个归置组的第二参数,包括:
获取所述一个归置组对应的冷对象的数量和所述一个归置组对应的对象的数量的和;
将所述和与所述一个归置组对应的对象的数量的商,作为所述一个归置组的第二参数。
可选的,所述第二数量确定单元根据所述第一数量、所述第一参数、所述第二参数,确定所述一个归置组对应的待刷盘对象的第二数量,包括:
获取所述第一数量、所述第一参数、所述第二参数的乘积;
从所述乘积和所述一个归置组对应的对象的数量中,选择最小数量作为所述一个归置组对应的待刷盘对象的第二数量。
第三方面,本发明提供一种领导节点,所述领导节点包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述刷盘方法。
第四方面,本发明提供一种机器可读存储介质,所述机器可读存储介质内存储有机器可执行指令,所述机器可执行指令被处理器执行时实现上述刷盘方法。
由以上描述可以看出,本发明中,领导节点根据缓存池的使用情况,确定是否需要刷盘,因此,可降低刷盘频率,降低对数据读写性能的影响。其次,本发明针对每一个归置组均刷掉一定数量的对象,避免对象长期占用缓存池空间,提升缓存池空间的利用率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例示出的一种数据处理方法流程图;
图2是本发明实施例示出的步骤101的实现流程;
图3是本发明实施例示出的步骤102的实现流程;
图4是本发明实施例示出的一种数据处理装置的结构示意图;
图5是本发明实施例示出的一种领导节点的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明实施例。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明实施例范围的情况下,协商信息也可以被称为第二信息,类似地,第二信息也可以被称为协商信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本发明实施例提供一种数据处理方法。该方法中,领导节点根据整个缓存池的使用情况,确定是否需要刷盘,因此,可降低刷盘频率,降低对数据读写性能的影响。其次,本发明实施例针对每一个归置组均刷掉一定数量的对象,避免对象长期占用缓存池空间,提升缓存池空间的利用率。
为了使本发明实施例的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明实施例执行详细描述:
参见图1,为本发明实施例提供的数据处理方法流程图。该流程应用于分布式存储系统(如Ceph)中的领导节点(Leader)。
在采用分层存储技术的分布式存储系统中,通常包括位于前端的缓存池和位于后端的存储池。用户数据首先存储在缓存池中,在执行刷盘操作后,从缓存池写入后端存储池。
如图1所示,该数据处理流程可包括以下步骤:
步骤101,若缓存池的已用容量达到预设的刷盘容量阈值,确定缓存池中待刷盘对象的第一数量。
领导节点可监测缓存池的使用情况。若监测到的缓存池的已用容量达到预设的刷盘容量阈值,说明缓存池需要执行刷盘操作,以释放缓存池空间。
在分布式存储系统中,用户数据以对象(Object)的形式存储。因此,本步骤需要确定缓存池中需要执行刷盘操作的对象(简称待刷盘对象)的数量。
本步骤确定缓存池中待刷盘对象的第一数量的过程,在下文中描述,这里暂不赘述。
这里,第一数量只是为便于区分而进行的命名,并非用于限定。
步骤102,根据第一数量以及各归置组对应的对象的数量,分别确定各归置组对应的待刷盘对象的第二数量。
在分布式存储系统中,以归置组(PG)为单位管理存储在缓存池中的对象。每个缓存池预先配置有一定数量的归置组。当用户数据以对象的形式写入缓存池时,领导节点建立对象与归置组的映射关系,一个对象对应一个归置组,但一个归置组可对应多个对象。
在通过步骤101确定缓存池中待刷盘对象的第一数量后,需要将第一数量拆分至各归置组中,即确定各归置组对应的待刷盘对象的第二数量。该第二数量与归置组对应的对象的数量成正相关关系。即,归置组对应的对象的数量越多,其对应的待刷盘对象的数量越多。
这里,第二数量只是为便于区分而进行的命名,并非用于限定。
可选地,各归置组对应的第二数量的和不小于第一数量,即满足整个缓存池的刷盘需求。
本步骤确定归置组对应的待刷盘对象的第二数量的过程,在下文中描述,这里暂不赘述。
步骤103,从各归置组对应的对象中,分别筛选第二数量个对象并执行刷盘操作。
在具体筛选时,可选择最近没有被访问过的对象(冷对象)。对筛选出的对象执行刷盘操作。即,将筛选出的对象中的脏数据写入后端存储池。
脏数据执行刷盘后,变为干净数据。当缓存池的已用容量达到预设的淘汰容量阈值时,选择一定数量的干净数据执行淘汰操作,以释放缓存池空间。
至此,完成图1所示流程。
通过图1所示流程可以看出,在本发明实施例中,领导节点根据缓存池的使用情况,来确定是否需要刷盘,降低了刷盘频率,进而降低了对数据读写性能的影响。其次,针对每一个归置组均刷掉一定数量的对象,避免对象长期占用缓存池空间,提升缓存池空间的利用率。
下面对步骤101确定缓存池中待刷盘对象的第一数量的过程进行描述。
作为一种实施方式,领导节点可直接获取预设的第一数量。
作为另一种实施方式,参见图2,为本发明实施例示出的步骤101的实现流程。
如图2所示,该流程可包括以下步骤:
步骤201,获取预设的待刷盘容量以及对象的大小。
本发明实施例中,可预先设定待刷盘容量,即缓存池的已用容量达到刷盘容量阈值时需要释放多少容量,比如,1000M,以保证分布式存储系统的处理性能。
此外,分布式存储系统在切分用户数据时,会切分成统一大小的对象。即,分布式存储系统中对象的大小一致,比如,4M。
步骤202,根据获取的待刷盘容量和对象的大小,确定缓存池中待刷盘对象的第一数量。
具体为,将待刷盘容量与对象大小的商,作为第一数量。
比如,待刷盘容量为1000M,对象大小为4M,则缓存池中需要执行刷盘操作的对象的数量为1000/4=250个。
至此完成图2所示流程。
通过图2所示流程,可确定出缓存池中需要执行刷盘操作的对象的总数量。
下面对步骤102确定各归置组对应的待刷盘对象的第二数量的过程进行描述。针对每一归置组执行图3所示流程。
如图3所示,该流程可包括以下步骤:
步骤301,将一个归置组对应的对象的数量占缓存池中对象的总数量的百分比,确定为一个归置组的第一参数。
这里,第一参数只是为便于区分而进行的命名,并非用于限定。
比如,当前归置组对应的对象的数量为100个,缓存池中对象的总数量为1000个,则该归置组的第一参数为100/1000=10%。
步骤302,根据一个归置组对应的冷对象的数量以及一个归置组对应的对象的数量,确定一个归置组的第二参数。
冷对象,即访问频率比较低的对象,通常根据单位时间内被访问次数来确定。
作为一种实施方式,可获取一个归置组对应的冷对象的数量和该归置组对应的对象的数量的和。将得到的和与该归置组对应的对象的数量的商,作为该归置组的第二参数。这里,第二参数只是为便于区分而进行的命名,并非用于限定。
举例说明,一个归置组对应的冷对象的数量为20个,该归置组对应的对象的数量为100个,则该归置组的第二参数为(20+100)/100=1.2。
通过本步骤可衡量出归置组中冷对象的占比。
步骤303,根据第一数量、第一参数、第二参数,确定一个归置组对应的待刷盘对象的第二数量。
作为一个实施例,可获取第一数量、第一参数、第二参数的乘积。从该乘积和归置组对应的对象的数量中,选择最小数量作为该归置组对应的待刷盘对象的第二数量。
比如,缓存池中待刷盘对象的第一数量为250个,当前归置组对应的对象的数量为100个,当前归置组的第一参数为10%,第二参数为1.2,则该归置组中待刷盘对象的数量为min{250×10%×1.2,100}=30个。即当前归置组对应的对象中有30个对象需要执行刷盘操作,以释放缓存池空间。
可以看出,本发明实施例中,对象越多且冷对象越多的归置组会释放出更多的缓存池空间,使缓存池的空间利用更加合理。
至此,完成图3所示流程。
通过图3所示流程,合理确定每一个归置组对应的待刷盘对象的第二数量,使缓存池的利用更优化。
下面通过一个具体实施例对本发明提供的方法进行描述。
以Ceph中的一个缓存池为例,该缓存池记为Pool。
预设Pool的待刷盘容量为1000M。该Pool预先配置有5个归置组(PG),记为PG1~PG5。当前Pool中各归置组(PG)与对象(Object)的映射关系,如表1所示。
归置组 | 对象 |
PG1 | Object1~Object100 |
PG2 | Object101~Object300 |
PG3 | Object301~Object600 |
PG4 | Object601~Object800 |
PG5 | Object801~Object1000 |
表1
从表1中可以看出,当前Pool中Object的总数量为1000个。其中,PG1对应的Object的数量为100个,PG2对应的Object的数量为200个,PG3对应的Object的数量为300个,PG4对应的Object的数量为200个,PG5对应的Object的数量为200个。每一个Object的大小为4M。
若领导节点确定当前Pool的已用容量(1000×4=4000M)达到刷盘容量阈值,则根据预设的待刷盘容量(1000M),确定Pool中待刷盘Object的数量,记为N,N=1000/4=250。即Pool中需要刷掉250个Object。
领导节点获取PG1对应的Object的数量(100个)以及Pool中Object的总数量(1000个),确定PG1的第一参数W1=100/1000=10%。同理,确定PG2的第一参数W2=200/1000=20%;PG3的第一参数W3=300/1000=30%;PG4的第一参数W4=200/1000=20%;PG5的第一参数W5=200/1000=20%。
参见表2,为本实施例示出的各PG对应对象中冷对象的数量。
归置组 | 冷对象的数量 |
PG1 | 20 |
PG2 | 30 |
PG3 | 60 |
PG4 | 10 |
PG5 | 40 |
表2
根据表2,领导节点可计算各PG的第二参数。以PG1为例,获取PG1对应的冷对象的数量(20个),PG1对应的对象的数量(100个),则PG1的第二参数V1=(20+100)/100=1.2。同理,PG2的第二参数V2=(30+200)/200=1.15;PG3的第二参数V3=(60+300)/300=1.2;PG4的第二参数V4=(10+200)/200=1.05;PG5的第一参数V5=(40+200)/200=1.2。
根据Pool中待刷盘对象的数量N,以及各PG的第一参数W、第二参数V,确定各PG对应的待刷盘对象的数量。以PG1为例,获取Pool中待刷盘对象的数量N(250个),PG1的第一参数W1(10%),PG1的第二参数V1(1.2),计算N×W1×V1=250×10%×1.2=30个,小于PG1对应的Object的数量(100个),因此,确定PG1对应的待刷盘对象的数量N1为30个。
同理,获取PG2的第一参数W2(20%),PG2的第二参数V2(1.15),计算N×W2×V2=250×20%×1.15≈58个,小于PG2对应的Object的数量(200个),因此,确定PG2对应的待刷盘对象的数量N2为58个。
获取PG3的第一参数W3(30%),PG3的第二参数V3(1.2),计算N×W3×V3=250×30%×1.2=90个,小于PG3对应的Object的数量(300个),因此,确定PG3对应的待刷盘对象的数量N3为90个。
获取PG4的第一参数W4(20%),PG4的第二参数V4(1.05),计算N×W4×V4=250×20%×1.05≈53个,小于PG4对应的Object的数量(200个),因此,确定PG4对应的待刷盘对象的数量N4为53个。
获取PG5的第一参数W5(20%),PG5的第二参数V5(1.2),计算N×W5×V5=250×20%×1.2=60个,小于PG5对应的Object的数量(200个),因此,确定PG5对应的待刷盘对象的数量N5为60个。
作为一个实施例,缓存池中的每一个PG可以通过对象队列的方式分别维护各个PG对应的Object。即每一个PG对应一个对象队列,对象队列中记录与该PG存在映射关系的Object的标识。当某一Object被访问时,该Object的标识添加到对应对象队列的末尾。也就是说,对象队列中Object的标识是按照Object被访问的频率排序。位于队列前端的Object的标识表明对应Object近期未被访问,或被访问频率较低。
在确定PG对应的待刷盘Object的数量后,领导节点查询PG对应的对象队列,获取位于队列前端的待刷盘数量个Object的标识,对相应Object执行刷盘操作。
以PG1为例,PG1的对象队列(记为Q1)记录有Object1~Object100的标识。且标识的排列顺序(从前到后)为Object1~Object100。当确定PG1对应的待刷盘Object的数量N1为30个时,查询Q1,获取位于Q1前端的30个Object的标识,根据标识查找到对应的Object(Object1~Object30)执行刷盘操作。
其它PG的刷盘处理流程相同,这里不再赘述。
由上述描述可知,Pool中各PG需要执行刷盘操作的Object的总数量为N1+N2+N3+N4+N5=30+58+90+53+60=291个,大于Pool中待刷盘的Object的数量(250个),可以满足刷盘需求。
由以上描述可以看出,每一个PG对应的对象中,均会刷掉一定数量的对象,且优先刷掉冷对象(位于队列前端的对象),因此,缓存池的利用率更加合理。
执行刷盘后的对象变为干净对象,需要执行淘汰操作以释放缓存池空间。
具体地,领导节点将刷盘后的干净对象的标识压入对象栈,每一个PG对应一个对象栈。当Pool的已用容量达到淘汰容量阈值时,从每一个PG对应的对象栈的底部(先刷盘的对象的标识位于底部),获取一定数量的干净对象的标识,删除这些标识在Pool中对应的干净对象,以释放缓存空间。
在一种实施方式中,淘汰容量阈值可以等于刷盘容量阈值。PG对应的待刷盘对象的数量可以等于PG对应的待淘汰对象的数量。即,被刷盘的对象全部淘汰。
至此,完成本具体实施例的描述。
以上对本发明实施例提供的方法进行了描述,下面对本发明实施例提供的装置进行描述:
参见图4,为本发明实施例提供的装置的结构示意图。该装置包括:第一数量确定单元401、第二数量确定单元402以及对象筛选单元403,其中:
第一数量确定单元401,用于若所述缓存池的已用容量达到预设的刷盘容量阈值,确定所述缓存池中待刷盘对象的第一数量;
第二数量确定单元402,用于根据所述第一数量以及各归置组对应的对象的数量,分别确定各归置组对应的待刷盘对象的第二数量,所述第二数量与归置组对应的对象的数量成正相关关系;
对象筛选单元403,用于从所述各归置组对应的对象中,分别筛选所述第二数量个对象并执行刷盘操作。
作为一个实施例,所述第一数量确定单元401确定所述缓存池中待刷盘对象的第一数量,包括:
获取预设的所述第一数量;
或者,
获取预设的待刷盘容量以及对象的大小;
根据所述待刷盘容量和所述对象的大小,确定所述缓存池中待刷盘对象的第一数量。
作为一个实施例,所述第二数量确定单元402根据所述第一数量以及各归置组对应的对象的数量,分别确定各归置组对应的待刷盘对象的第二数量,包括:
针对每一归置组分别执行以下操作:
将一个归置组对应的对象的数量占所述缓存池中对象的总数量的百分比,确定为所述一个归置组的第一参数;
根据所述一个归置组对应的冷对象的数量以及所述一个归置组对应的对象的数量,确定所述一个归置组的第二参数;
根据所述第一数量、所述第一参数、所述第二参数,确定所述一个归置组对应的待刷盘对象的第二数量。
作为一个实施例,所述第二数量确定单元402根据所述一个归置组对应的冷对象的数量以及所述一个归置组对应的对象的数量,确定所述一个归置组的第二参数,包括:
获取所述一个归置组对应的冷对象的数量和所述一个归置组对应的对象的数量的和;
将所述和与所述一个归置组对应的对象的数量的商,作为所述一个归置组的第二参数。
作为一个实施例,所述第二数量确定单元402根据所述第一数量、所述第一参数、所述第二参数,确定所述一个归置组对应的待刷盘对象的第二数量,包括:
获取所述第一数量、所述第一参数、所述第二参数的乘积;
从所述乘积和所述一个归置组对应的对象的数量中,选择最小数量作为所述一个归置组对应的待刷盘对象的第二数量。
至此,完成图4所示装置的描述。
在本发明实施例中,领导节点根据缓存池的使用情况,来确定是否需要刷盘,降低了刷盘频率,进而降低了对数据读写性能的影响。其次,针对每一个归置组均刷掉一定数量的对象,避免对象长期占用缓存池空间,提升缓存池空间的利用率。
下面对本发明实施例提供的领导节点进行描述:
参见图5,为本发明实施例提供的一种领导节点的硬件结构示意图。该领导节点可包括处理器501、存储有机器可执行指令的机器可读存储介质502。处理器501与机器可读存储介质502可经由系统总线503通信。并且,通过读取并执行机器可读存储介质502中与刷盘逻辑对应的机器可执行指令,处理器501可执行上文描述的刷盘方法。
本文提到的机器可读存储介质502可以是任何电子、磁性、光学或其他物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,所述机器可读存储介质502可以包括如下至少一个种存储介质:易失存储器、非易失性存储器、其它类型存储介质。其中,易失性存储器可为RAM(Random Access Memory,随机存取存储器),非易失性存储器可为闪存、存储驱动器(如硬盘驱动器)、固态硬盘、存储盘(如光盘、DVD等)。
本发明实施例还提供一种包括机器可执行指令的机器可读存储介质,例如图5中的机器可读存储介质502,所述机器可执行指令可由领导节点中的处理器501执行,以实现以上描述的刷盘方法。
至此,完成图5所示领导节点的描述。
以上所述仅为本发明实施例的较佳实施例而已,并不用以限制本发明,凡在本发明实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种数据处理方法,应用于分布式存储系统中的领导节点,其特征在于,所述分布式存储系统的缓存池配置有多个归置组,每一个归置组对应多个存储于所述缓存池的对象,所述方法包括:
若所述缓存池的已用容量达到预设的刷盘容量阈值,确定所述缓存池中待刷盘对象的第一数量;
针对每一归置组分别执行以下操作:将一个归置组对应的对象的数量占所述缓存池中对象的总数量的百分比,确定为所述一个归置组的第一参数;根据所述一个归置组对应的冷对象的数量以及所述一个归置组对应的对象的数量,确定所述一个归置组的第二参数;根据所述第一数量、所述第一参数、所述第二参数,确定所述一个归置组对应的待刷盘对象的第二数量,所述第二数量与归置组对应的对象的数量成正相关关系;
从各归置组对应的对象中,分别筛选所述第二数量个对象并执行刷盘操作。
2.如权利要求1所述的方法,其特征在于,所述确定所述缓存池中待刷盘对象的第一数量,包括:
获取预设的所述第一数量;
或者,
获取预设的待刷盘容量以及对象的大小;
根据所述待刷盘容量和所述对象的大小,确定所述缓存池中待刷盘对象的第一数量。
3.如权利要求1所述的方法,其特征在于,所述根据所述一个归置组对应的冷对象的数量以及所述一个归置组对应的对象的数量,确定所述一个归置组的第二参数,包括:
获取所述一个归置组对应的冷对象的数量和所述一个归置组对应的对象的数量的和;
将所述和与所述一个归置组对应的对象的数量的商,作为所述一个归置组的第二参数。
4.如权利要求1或3所述的方法,其特征在于,所述根据所述第一数量、所述第一参数、所述第二参数,确定所述一个归置组对应的待刷盘对象的第二数量,包括:
获取所述第一数量、所述第一参数、所述第二参数的乘积;
从所述乘积和所述一个归置组对应的对象的数量中,选择最小数量作为所述一个归置组对应的待刷盘对象的第二数量。
5.一种数据处理装置,应用于分布式存储系统中的领导节点,其特征在于,所述分布式存储系统的缓存池配置有多个归置组,每一个归置组对应多个存储于所述缓存池的对象,所述装置包括:
第一数量确定单元,用于若所述缓存池的已用容量达到预设的刷盘容量阈值,确定所述缓存池中待刷盘对象的第一数量;
第二数量确定单元,用于针对每一归置组分别执行以下操作:将一个归置组对应的对象的数量占所述缓存池中对象的总数量的百分比,确定为所述一个归置组的第一参数;根据所述一个归置组对应的冷对象的数量以及所述一个归置组对应的对象的数量,确定所述一个归置组的第二参数;根据所述第一数量、所述第一参数、所述第二参数,确定所述一个归置组对应的待刷盘对象的第二数量,所述第二数量与归置组对应的对象的数量成正相关关系;
对象筛选单元,用于从各归置组对应的对象中,分别筛选所述第二数量个对象并执行刷盘操作。
6.如权利要求5所述的装置,其特征在于,所述第一数量确定单元确定所述缓存池中待刷盘对象的第一数量,包括:
获取预设的所述第一数量;
或者,
获取预设的待刷盘容量以及对象的大小;
根据所述待刷盘容量和所述对象的大小,确定所述缓存池中待刷盘对象的第一数量。
7.如权利要求5所述的装置,其特征在于,所述第二数量确定单元根据所述一个归置组对应的冷对象的数量以及所述一个归置组对应的对象的数量,确定所述一个归置组的第二参数,包括:
获取所述一个归置组对应的冷对象的数量和所述一个归置组对应的对象的数量的和;
将所述和与所述一个归置组对应的对象的数量的商,作为所述一个归置组的第二参数。
8.如权利要求5或7所述的装置,其特征在于,所述第二数量确定单元根据所述第一数量、所述第一参数、所述第二参数,确定所述一个归置组对应的待刷盘对象的第二数量,包括:
获取所述第一数量、所述第一参数、所述第二参数的乘积;
从所述乘积和所述一个归置组对应的对象的数量中,选择最小数量作为所述一个归置组对应的待刷盘对象的第二数量。
9.一种领导节点,其特征在于,所述领导节点包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求1-4任一所述的方法步骤。
10.一种机器可读存储介质,其特征在于,所述机器可读存储介质内存储有机器可执行指令,所述机器可执行指令被处理器执行时实现权利要求1-4任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910244981.7A CN109960470B (zh) | 2019-03-28 | 2019-03-28 | 数据处理方法、装置及领导节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910244981.7A CN109960470B (zh) | 2019-03-28 | 2019-03-28 | 数据处理方法、装置及领导节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109960470A CN109960470A (zh) | 2019-07-02 |
CN109960470B true CN109960470B (zh) | 2022-07-29 |
Family
ID=67025229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910244981.7A Active CN109960470B (zh) | 2019-03-28 | 2019-03-28 | 数据处理方法、装置及领导节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109960470B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112684972B (zh) * | 2019-10-17 | 2022-12-27 | 中国移动通信集团浙江有限公司 | 基于分布式块存储的数据存储方法及装置 |
CN112181315B (zh) * | 2020-10-30 | 2022-08-30 | 新华三大数据技术有限公司 | 一种数据刷盘方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103778255A (zh) * | 2014-02-25 | 2014-05-07 | 深圳市中博科创信息技术有限公司 | 一种分布式文件系统及其数据分布方法 |
CN107391039A (zh) * | 2017-07-27 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种数据对象存储方法和装置 |
CN107704212A (zh) * | 2017-10-31 | 2018-02-16 | 紫光华山信息技术有限公司 | 一种数据处理方法及装置 |
CN108121510A (zh) * | 2017-12-19 | 2018-06-05 | 紫光华山信息技术有限公司 | Osd选取方法、数据写入方法、装置和存储系统 |
CN108509153A (zh) * | 2018-03-23 | 2018-09-07 | 新华三技术有限公司 | Osd选择方法、数据写入和读取方法、监控器和服务器集群 |
CN109002259A (zh) * | 2018-06-28 | 2018-12-14 | 郑州云海信息技术有限公司 | 一种归置组所属硬盘分配方法、系统、装置及存储介质 |
CN109343798A (zh) * | 2018-09-25 | 2019-02-15 | 郑州云海信息技术有限公司 | 对分布式存储系统的主pg均衡调整的方法、装置及介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8548942B2 (en) * | 2006-10-04 | 2013-10-01 | Salesforce.Com, Inc. | Methods and systems for recursive saving of hierarchical objects to a database |
JP5302582B2 (ja) * | 2008-07-09 | 2013-10-02 | 株式会社日立製作所 | 上位装置から指定されるデバイスに関する記憶容量を変更するストレージシステム及び方法 |
-
2019
- 2019-03-28 CN CN201910244981.7A patent/CN109960470B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103778255A (zh) * | 2014-02-25 | 2014-05-07 | 深圳市中博科创信息技术有限公司 | 一种分布式文件系统及其数据分布方法 |
CN107391039A (zh) * | 2017-07-27 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种数据对象存储方法和装置 |
CN107704212A (zh) * | 2017-10-31 | 2018-02-16 | 紫光华山信息技术有限公司 | 一种数据处理方法及装置 |
CN108121510A (zh) * | 2017-12-19 | 2018-06-05 | 紫光华山信息技术有限公司 | Osd选取方法、数据写入方法、装置和存储系统 |
CN108509153A (zh) * | 2018-03-23 | 2018-09-07 | 新华三技术有限公司 | Osd选择方法、数据写入和读取方法、监控器和服务器集群 |
CN109002259A (zh) * | 2018-06-28 | 2018-12-14 | 郑州云海信息技术有限公司 | 一种归置组所属硬盘分配方法、系统、装置及存储介质 |
CN109343798A (zh) * | 2018-09-25 | 2019-02-15 | 郑州云海信息技术有限公司 | 对分布式存储系统的主pg均衡调整的方法、装置及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109960470A (zh) | 2019-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100481024C (zh) | 信息记录介质 | |
CN106970765B (zh) | 数据存储方法及装置 | |
CN106547476B (zh) | 用于数据存储系统的方法和装置 | |
US9524238B2 (en) | Systems and methods for managing cache of a data storage device | |
US20060080365A1 (en) | Transparent migration of files among various types of storage volumes based on file access properties | |
US20120246394A1 (en) | Flash Memory Device and Data Writing Method for a Flash Memory | |
CN111209253B (zh) | 分布式存储设备性能提升方法、装置及分布式存储设备 | |
CN109960470B (zh) | 数据处理方法、装置及领导节点 | |
JP4910064B2 (ja) | 記憶制御装置、記憶装置、及びデータ移動制御方法 | |
CN112181303B (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN110134645B (zh) | 文件系统存储管理方法、读取方法、管理装置和读取装置 | |
CN116466879B (zh) | 一种cxl内存模组、内存数据的置换方法及计算机系统 | |
US11593262B1 (en) | Garbage collection command scheduling | |
WO2008136563A1 (en) | Method of storing meta-data and system for storing meta-data | |
CN107203341A (zh) | 基于闪存的数据存储方法、装置以及闪存芯片 | |
CN117577163A (zh) | 一种ssd坏块检测方法、装置、计算机设备及存储介质 | |
CN111475099A (zh) | 一种数据存储方法、装置及其设备 | |
CN113778341A (zh) | 遥感数据分布式存储方法和装置及遥感数据读取方法 | |
CN110286848B (zh) | 数据处理方法及装置 | |
US20030097523A1 (en) | External storage device within a computer network | |
CN109582235B (zh) | 管理元数据存储方法及装置 | |
CN115237351B (zh) | Nand块动态重映射、读写命令处理方法及存储设备 | |
CN109243517B (zh) | 一种用于NAND Flash不良区块的查找方法、固态硬盘 | |
CN107077420B9 (zh) | 覆盖擦除块映射 | |
US9552292B2 (en) | Apparatus and method for allocating virtual memory addresses to continuous physical addresses |
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 |