CN116450053B - 数据存储方法、装置、系统、电子设备和存储介质 - Google Patents
数据存储方法、装置、系统、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116450053B CN116450053B CN202310696412.2A CN202310696412A CN116450053B CN 116450053 B CN116450053 B CN 116450053B CN 202310696412 A CN202310696412 A CN 202310696412A CN 116450053 B CN116450053 B CN 116450053B
- Authority
- CN
- China
- Prior art keywords
- data
- target
- access
- cache
- level
- 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
- 238000000034 method Methods 0.000 title claims abstract description 105
- 238000013500 data storage Methods 0.000 title claims abstract description 78
- 238000007726 management method Methods 0.000 claims description 62
- 238000004590 computer program Methods 0.000 claims description 12
- 238000013507 mapping Methods 0.000 claims description 12
- 230000003068 static effect Effects 0.000 claims description 6
- 230000011218 segmentation Effects 0.000 claims description 4
- 230000003247 decreasing effect Effects 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 8
- 230000000694 effects Effects 0.000 abstract description 7
- 238000005192 partition Methods 0.000 abstract description 7
- 239000010410 layer Substances 0.000 description 21
- 230000004927 fusion Effects 0.000 description 11
- 238000010801 machine learning Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 9
- 238000013473 artificial intelligence Methods 0.000 description 7
- 230000018109 developmental process Effects 0.000 description 7
- 238000005457 optimization Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000003139 buffering effect Effects 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/0638—Organizing or formatting or addressing of data
-
- 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/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据存储方法、装置、系统、电子设备和存储介质,涉及计算机技术领域,该方法包括:获取数据缓存指令;根据所述数据缓存指令,获取待缓存数据,并对所述待缓存数据进行条带划分,得到多个数据条带;根据各所述数据条带的数据属性,在多个缓存区域中,确定各所述数据条带对应的目标缓存区域;根据所述目标缓存区域的缓存策略,将各所述数据条带并行缓存至各所述数据条带对应的目标缓存区域。本发明实现对缓存区进行分区和分区缓存,即可达到充分利用缓存资源和提高缓存效率的效果,不仅可以大幅提高缓存性能,而且可以减少对存储系统的硬件或软件进行改进所需的开发成本,减少缓存成本。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据存储方法、装置、系统、电子设备和存储介质。
背景技术
随着大数据、人工智能等应用的快速发展,存储系统的应用越来越广泛。在存储系统中,缓存技术作为数据访问的重要组成部分,对存储系统的性能有着重要的影响。因此,如何提升存储系统的缓存性能是目前业界亟待解决的重要课题。
相关技术中,通过人工从硬件架构、缓存算法等硬件层面,或者从操作系统或应用程序等软件层面进行改进,以对存储系统的缓存性能进行提升。但是,由于存储系统较为复杂性,若采用人工对硬件或软件进行改进,则需要消耗大量的开发成本,导致数据缓存成本较高。
发明内容
本发明提供一种数据存储方法、装置、系统、电子设备和存储介质,用以解决现有技术中通过人工对硬件或软件进行改进,以对存储系统的缓存性能进行提升,导致数据缓存成本较高的缺陷,实现低成本地提升数据缓存性能。
本发明提供一种数据存储方法,包括:
获取数据缓存指令;
根据所述数据缓存指令,获取待缓存数据,并对所述待缓存数据进行条带划分,得到多个数据条带;
根据各所述数据条带的数据属性,在多个缓存区域中,确定各所述数据条带对应的目标缓存区域;
根据所述目标缓存区域的缓存策略,将各所述数据条带并行缓存至各所述数据条带对应的目标缓存区域。
根据本发明提供的一种数据存储方法,所述数据属性包括访问信息;
所述根据各所述数据条带的数据属性,在多个缓存区域中,确定各所述数据条带对应的目标缓存区域,包括:
根据各所述数据条带的所述访问信息,确定各所述数据条带的目标重要等级;
根据所述目标重要等级,在多个所述缓存区域中,确定各所述数据条带对应的目标缓存区域。
根据本发明提供的一种数据存储方法,所述根据各所述数据条带的所述访问信息,确定各所述数据条带的目标重要等级,包括:
在所述访问信息中,获取各所述数据条带中各数据块的访问次数;
将各所述数据条带中所有数据块的访问次数相加,得到各所述数据条带的总访问次数;
根据各所述数据条带的总访问次数,确定各所述数据条带的目标重要等级。
根据本发明提供的一种数据存储方法,所述根据各所述数据条带的总访问次数,确定各所述数据条带的目标重要等级,包括:
获取各所述数据条带对应的多个访问次数区间;
将各所述数据条带的所述总访问次数,与各所述数据条带对应的多个访问次数区间进行匹配;
根据匹配结果,在所述多个访问次数区间中,确定各所述数据条带的所述总访问次数对应的目标访问次数区间;
根据所述目标访问次数区间所属的访问等级,确定各所述数据条带的第一访问等级;
根据所述第一访问等级,确定各所述数据条带的目标重要等级。
根据本发明提供的一种数据存储方法,所述获取各所述数据条带对应的多个访问次数区间,包括:
获取各所述数据条带中数据块的分块数量;
根据多种不同的预设比例和所述分块数量,确定各所述数据条带对应的多个访问次数区间。
根据本发明提供的一种数据存储方法,所述根据所述第一访问等级,确定各所述数据条带的目标重要等级,包括:
将各所述数据条带的第一访问等级作为各所述数据条带的目标重要等级。
根据本发明提供的一种数据存储方法,所述数据属性还包括初始重要等级;
所述根据所述第一访问等级,确定各所述数据条带的目标重要等级,包括:
根据所述第一访问等级和所述初始重要等级,确定各所述数据条带的目标重要等级。
根据本发明提供的一种数据存储方法,所述根据所述第一访问等级和所述初始重要等级,确定各所述数据条带的目标重要等级,包括:
在所述访问信息中,获取各所述数据条带中各数据块的访问时间戳;
根据所述访问时间戳、所述第一访问等级以及所述初始重要等级,确定各所述数据条带的目标重要等级。
根据本发明提供的一种数据存储方法,所述根据所述访问时间戳、所述第一访问等级以及所述初始重要等级,确定各所述数据条带的目标重要等级,包括:
根据所述访问时间戳,获取各所述数据条带的当前次访问时间戳和上一次访问时间戳;
将所述当前次访问时间戳与所述上一次访问时间戳相减,得到各所述数据条带的访问间隙;
根据所述访问时间戳,获取各所述数据条带在预设时段内的访问频次;
根据所述第一访问等级、所述访问间隙以及所述访问频次,确定各所述数据条带的目标访问等级;
根据所述目标访问等级以及所述初始重要等级,确定各所述数据条带的目标重要等级。
根据本发明提供的一种数据存储方法,所述根据所述第一访问等级、所述访问间隙以及所述访问频次,确定各所述数据条带的目标访问等级,包括:
根据所述访问间隙,确定各所述数据条带的第二访问等级;
根据所述访问频次,确定各所述数据条带的第三访问等级;
获取所述第一访问等级、所述第二访问等级和所述第三访问等级各自对应的权重系数;
根据所述权重系数,对所述第一访问等级、所述第二访问等级和所述第三访问等级进行融合,得到所述各所述数据条带的目标访问等级。
根据本发明提供的一种数据存储方法,所述根据所述目标访问等级以及所述初始重要等级,确定各所述数据条带的目标重要等级,包括:
对所述目标访问等级和所述初始重要等级进行加权相加,得到各所述数据条带的目标重要等级。
根据本发明提供的一种数据存储方法,所述根据所述目标重要等级,在多个所述缓存区域中,确定各所述数据条带对应的目标缓存区域,包括:
根据第一映射关系和所述目标重要等级,确定各所述数据条带对应的缓存级别;
在多个所述缓存区域中,确定与各所述数据条带对应的缓存级别匹配的缓存区域,作为各所述数据条带对应的所述目标缓存区域;
其中,所述第一映射关系中预先存储有各缓存级别与各目标重要等级之间的关联关系。
根据本发明提供的一种数据存储方法,多个所述缓存区域包括第一缓存区域、第二缓存区域和第三缓存区域;
所述方法还包括:
为所述第一缓存区域配置第一缓存级别和第一缓存空间;
为所述第二缓存区域配置第二缓存级别和第二缓存空间;
为所述第三缓存区域配置第三缓存级别和第三缓存空间;
其中,所述第一缓存级别、所述第二缓存级别和所述第三缓存级别分别对应的缓存级别依次递减;
所述第一缓存空间、所述第二缓存空间和所述第三缓存空间分别对应的缓存空间大小依次递增。
根据本发明提供的一种数据存储方法,所述根据所述目标缓存区域的缓存策略,将各所述数据条带并行缓存至各所述数据条带对应的目标缓存区域,包括:
在任一数据条带对应的所述目标缓存区域为所述第二缓存区域的情况下,基于读锁,将所述任一数据条带中各数据块并行缓存至所述任一数据条带对应的所述目标缓存区域。
根据本发明提供的一种数据存储方法,所述根据所述目标缓存区域的缓存策略,将各所述数据条带并行缓存至各所述数据条带对应的目标缓存区域,包括:
在任一数据条带对应的所述目标缓存区域为所述第三缓存区域的情况下,基于读锁和写锁,将所述任一数据条带中各数据块并行缓存至所述任一数据条带对应的所述目标缓存区域。
根据本发明提供的一种数据存储方法,所述根据所述目标缓存区域的缓存策略,将各所述数据条带并行缓存至各所述数据条带对应的目标缓存区域,包括:
在任一数据条带对应的所述目标缓存区域为所述第一缓存区域的情况下,基于静态随机存取存储介质,将所述任一数据条带中各数据块并行缓存至所述任一数据条带对应的所述目标缓存区域。
根据本发明提供的一种数据存储方法,所述根据所述目标缓存区域的缓存策略,将各所述数据条带并行缓存至各所述数据条带对应的目标缓存区域,包括:
在任一数据条带对应的所述目标缓存区域为所述第二缓存区域或所述第三缓存区域的情况下,基于动态随机存取存储介质,将所述任一数据条带中各数据块并行缓存至所述任一数据条带对应的所述目标缓存区域。
根据本发明提供的一种数据存储方法,所述方法还包括:
获取更新指令;所述更新指令用于对目标数据条带的数据属性进行更新;
根据所述更新指令,获取所述目标数据条带的目标数据属性;
根据所述目标数据属性,更新所述目标数据条带的数据属性,得到所述目标数据条带的更新后的数据属性;
根据所述更新后的数据属性,在多个所述缓存区域中,确定所述目标数据条带的对应的待迁移目标缓存区域;
在所述待迁移目标缓存区域与所述目标数据条带的当前的目标缓存区域不同的情况下,将所述目标数据条带从所述当前的目标缓存区域中迁移至所述待迁移目标缓存区域。
根据本发明提供的一种数据存储方法,所述获取数据缓存指令,包括:
接收命令行界面的命令;
从所述命令行界面的命令中解析出所述数据缓存指令;和/或,
接收图形化界面的命令;
从所述图形化界面的命令中解析出所述数据缓存指令。
本发明还提供一种数据存储装置,包括:
获取模块,用于获取数据缓存指令;
切分模块,用于根据所述数据缓存指令,获取待缓存数据,并对所述待缓存数据进行条带划分,得到多个数据条带;
确定模块,用于根据各所述数据条带的数据属性,在多个缓存区域中,确定各所述数据条带对应的目标缓存区域;
缓存模块,用于根据所述目标缓存区域的缓存策略,将各所述数据条带并行缓存至各所述数据条带对应的目标缓存区域。
本发明还提供一种数据存储系统,包括多个控制节点以及磁盘组;
多个所述控制节点共享所述磁盘组;
所述控制节点包括驱动模块和磁盘阵列;所述磁盘阵列是由所述磁盘组中的多个磁盘组合得到的;
所述磁盘阵列包括多个缓存区域;
所述驱动模块用于执行如上述任一项所述数据存储方法。
根据本发明提供的一种数据存储系统,所述控制节点还包括多个数据属性管理子节点;
每一所述数据属性管理子节点与每一数据条带一一对应,每一所述数据属性管理子节点用于管理对应数据条带的数据属性;
所述数据属性管理子节点的管理数据表中包括多个用于对所述对应数据条带的数据属性进行存储的字段;
多个所述字段包括用于存储所述对应数据条带中各数据块的访问信息的字段、用于存储所述对应数据条带的初始重要等级的字段、
用于存储指示与所述数据属性管理子节点相邻的数据属性管理子节点的指针的字段,以及用于存储指示所述对应数据条带的标识的字段中的一种或多种组合。
根据本发明提供的一种数据存储系统,所述用于存储所述对应数据条带中各数据块的访问信息的字段,包括以下至少一项:
用于存储所述对应数据条带中各数据块的访问次数的字段;
用于存储所述对应数据条带中各数据块的访问时间戳的字段;
用于存储所述对应数据条带的总访问次数的字段。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据存储方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据存储方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述数据存储方法。
本发明提供的数据存储方法、装置、系统、电子设备和存储介质,通过将缓存区划分多种不同缓存级别的缓存区域,并在获取到待缓存数据的情况下,可以将待缓存数据划分为多个数据条带,以根据各数据条带的数据属性,在多个缓存级别的缓存区域中,确定各数据条带对应的目标缓存区域,以便将不同数据条带按照不同的缓存级别并行缓存至对应的目标缓存区域,实现通过对缓存器进行分区和对不同数据条带进行分区缓存,即可达到充分利用缓存资源和提高缓存效率的效果,不仅可以大幅提高缓存性能,而且可以减少对存储系统的硬件或软件进行改进所需的开发成本,减少缓存成本。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的数据存储方法的流程示意图之一;
图2是本发明提供的数据存储系统的结构示意图;
图3是本发明提供的RAID的数据块分布示意图;
图4是本发明提供的条带划分结果分布示意图;
图5是本发明提供的数据属性管理节点中数据表的结构示意图;
图6是本发明提供的数据属性管理节点链表的结构示意图;
图7是本发明提供的数据存储方法的流程示意图之二;
图8是本发明提供的数据存储装置的结构示意图;
图9是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在存储系统中,缓存技术作为数据访问的重要组成部分,对系统性能有着重要的影响。但是,由于存储系统的复杂性,传统的缓存技术无法满足其高效、高性能的需求。因此,研究如何提升存储系统的缓存性能具有重要的意义。
目前,提升存储系统缓存性能的方法主要包括以下几种:第一种,基于硬件的缓存优化技术:通过人工改进硬件架构、优化缓存硬件算法等方式,提高缓存访问速度和命中率;第二种,基于软件的缓存优化技术:通过人工改进操作系统、应用程序等软件层面的设计,减少缓存访问的开销,提高系统缓存性能;第三种,基于混合存储的缓存优化技术:利用不同类型的存储介质,如闪存、磁盘等,人工构建混合存储系统,并通过软件方面的优化,提高数据访问效率。
虽然目前已经有了上述这些提升多控存储系统缓存性能方式,但仍然存在以下不足:由于存储系统的复杂性和异构性,若采用人工对硬件和/或软件进行改进,则需要消耗大量的开发成本,导致数据缓存成本较高,出现即使对硬件和/或软件进行改进,也无法满足存储系统高性能和高效率要求的情况。
因此,如何提升存储系统的缓存性能,已成为本技术领域专业技术人员亟待解决的问题。提升存储系统的缓存性能的研究具有重要的意义和挑战,需要综合考虑硬件、软件、应用场景等多方面的因素,并不断创新和优化,以满足多控存储系统高性能、高效率的要求。此外,随着存储系统的应用场景不断扩大,对缓存性能的要求也越来越高,如在云计算、大数据分析、人工智能等领域中,对数据访问速度和响应时间的要求非常高,这就需要更加高效、智能的缓存技术来满足这些要求。
综上所述,由于存储系统的缓存性能不仅受到硬件和软件方面的影响,还受到应用场景等因素的影响。因此,在提升存储系统缓存性能的过程中,需要综合考虑各种因素,采用全方位的优化策略。
提升多控存储系统缓存性能的研究方向包括:方向一,深入研究存储系统的特点和应用场景,探索更加适合多控存储系统的缓存技术;方向二,将人工智能、机器学习等技术应用于缓存优化中,实现更加智能化的缓存管理和优化;方向三,进一步研究混合存储系统中的数据管理、数据迁移等问题,提高混合存储系统的性能;方向四,探索新型的存储介质和存储技术,如非易失性存储器、存储级内存(Software Configuration Management,SCM)等,以提高多控存储系统的性能和可靠性。
总之,提升存储系统缓存性能的研究是一个不断创新和发展的过程,需要综合考虑各种因素,并不断探索新的技术和方法,以满足不断增长的应用需求。
为此,针对上述目前业界中存储系统存在的缓存性能较低且成本较高的痛点问题,本实施例提供一种数据存储方法、装置、系统、电子设备和存储介质,具体通过设置多个不同缓存级别的缓存区域,并针对不同缓存区域开发不同的缓存策略、缓存优先级别以及缓存空间等,以实现对缓存性能的动态调整和优化,使得不同缓存区域的缓存性能均达到相对较优,进而提升存储系统的整个缓存性能;具体缓存过程包括:在获取到数据缓存指令的情况下,将待缓存数据切分为多个数据条带,并以数据条带的数据属性为标准,适应性地确定各数据条带对应的缓存级别的目标缓存区域,以通过不同目标缓存区域的缓存策略,将各数据条带并行缓存至各自对应的目标缓存区域,通过分区并行存储的形式进行数据缓存,不仅可减少对存储系统的硬件或软件进行改进所需的开发成本,且可大幅提高数据缓存效率和缓存性能。
下面结合图1-图9描述本实施例提供的数据存储方法、装置、系统、电子设备和存储介质。如图1所示,为本实施例提供的数据存储方法的流程示意图之一。
需要说明的是,该方法不仅可以在存储业务场景下使用,还可以应用在其他业务场景下,如可应用于人工智能、存储领域和大数据中心领域等所需进行数据处理的领域中的数据存储系统。如图2所示,该数据存储系统中包括多个控制节点201组成的集群以及磁盘组202。每一控制节点201包括驱动模块和磁盘阵列(Redundant Array of IndependentDisks,RAID);该磁盘阵列是由多块独立的磁盘组合成一个容量巨大的磁盘组,RAID是一种把多块独立的硬盘(即物理硬盘)按不同的方式组合起来形成一个硬盘组(即逻辑硬盘),可将数据切割成许多区段,分别存放在各个磁盘上,从而提供比单个硬盘更高的存储性能和提供数据备份技术。此处的多个控制节点分别连接双端口硬盘的一个端口,集群中的两个控制节点互为对端节点,可相互通信。
该磁盘阵列包括多个不同缓存级别的缓存区域,具体可以根据实际需求进行设置,如包含3个缓存区域分别为第一缓存区域(下文也称上层缓存)、第二缓存区域(下文也称中层缓存)、第三缓存区域(下文也称下层缓存)。第一缓存区域、第二缓存区域和第三缓存区域所缓存的数据对应的数据重要性依次降低。也即不同对不同重要等级的数据块进行分类存储,以提高数据缓存性能的同时,降低缓存成本。
该方法的执行主体可以是控制器中的驱动模块。该方法包括如下步骤:
步骤101,获取数据缓存指令;
其中,数据缓存指令用于请求进行数据缓存,其在需要进行数据缓存时发出。此处的数据缓存是将外部数据缓存至缓存区域,也可是对内部数据进行缓存迁移等,本实施例对此不做具体地限定。
此处的数据缓存指令可以是用户在前端界面输入的用户输入,也可以经由其他控制器或者存储系统内部的其他设备在某种条件下产生的信息,如定时触发的数据缓存指令。所称的用户输入,可以是通过命令行界面输入、图形化界面输入、触摸输入、下拉选择输入、语音输入、手势输入、视觉输入、脑机输入等输入的信息等,本实施例对此不做具体地限定。
在一些实施例中,获取数据缓存指令,包括:接收命令行界面的命令;从所述命令行界面的命令中解析出所述数据缓存指令;和/或,接收图形化界面的命令;从所述图形化界面的命令中解析出所述数据缓存指令。
其中,命令行界面(Command Line Interface,CLI),是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。图形化界面(Graphical User Interface,GUI),又称图形用户接口,是指采用图形方式显示的计算机操作用户界面。
可选地,在存储系统上电启动的情况下,主机端实时监听用户通过命令行CLI或者图形化界面GUI输入创建一个或多个逻辑卷的命令,也即命令行界面的命令和图形化界面的命令,在监听到命令行界面的命令和/或图形化界面的命令的情况下,将命令行界面的命令和/或图形化界面的命令以IO(Input/Output,输入/输出)的形式发送至存储系统。
存储系统的驱动模块基于驱动程序从命令行界面的命令和/或图形化界面的命令中解析出数据缓存指令。IO通常指数据在内部存储器和外部存储器或其他周边设备之间的输入和输出。
此处通过设置多种数据缓存指令输入方式,以便用户可以根据实际需求进行灵活选择,以有效提高数据缓存的灵活性以及便捷性。
步骤102,根据所述数据缓存指令,获取待缓存数据,并对所述待缓存数据进行条带划分,得到多个数据条带;
可选地,在获取到数据缓存指令的情况下,可以从数据缓存指令中解析出待缓存数据;或者从网卡数据缓存指令中解析出数据缓存指令标识,根据数据缓存指令标识、数据缓存指令标识与数据之间的映射关系,获取相应的待缓存数据,本实施例对此不做具体地限定。
接着,驱动模块根据驱动程序将待缓存数据切分成多个数据条带;每一数据条带包括多个数据块。
如图3所示,磁盘对数据的存储是采用分块(strip)的形式,即将一个磁盘分区分成多个大小相等的、地址相邻的块(block),这些块则称为分块,分块通常被认为是条带(stripe)的元素,而条带则是不同分区上的位置相关的分块的集合。如D1、D2和P1为一个条带;D3、P2和D4为一条带,其中,D为数据分块、P为校验分块。逻辑卷是主机I/O访问数据的逻辑单元,即是多个不同条带相关的分块的集合;如逻辑卷1包括D1、D2和P1,以及D3、P2和D4的集合。
所称的分块是是磁盘上的物理存储介质的分区,用于RAID阵列进行数据重构的粒度大小。数据分块是主机下发的有效数据划分得到的;校验分块是由数据分块异或运算得的。
因此,为方便后续将缓存区的目标数据下刷至物理磁盘,同样可以对待缓存数据进行条带划分,得到各个数据条带,使得待缓存数据以数据条带的形式存储于缓存区。
如图4所示,为本实施例提供的一种条带划分示意图,其中,401为条带划分后的多个数据条带,分别为条带0(stripe0)、条带1(stripe1)、条带2(stripe2)、条带3(stripe3);每一数据条带包括多个数据块,包括数据分块和校验分块;其中,数据分块1(strip1)到数据分块16(strip16)表示16个数据分块,校验分块1(parity1)到校验分块4(parity4)表示4个校验分块。
步骤103,根据各所述数据条带的数据属性,在多个缓存区域中,确定各所述数据条带对应的目标缓存区域;
所称的数据属性用于描述数据的属性信息,包括一个或多个数据访问信息以及数据重要性信息中的至少一种信息,本实施例对此不做具体地限定。所称的访问信息包括但不限于各数据条带中各数据块的访问次数、访问时间戳、访问频次中的一种或多种,本实施例对此不做具体地限定。
需要说明的是,存储系统中预先配置有数据属性管理节点链表,该数据链表中包括多个数据属性管理节点;每一数据属性管理节点用于在数据读写命令到来之后,对数据读写命令对应的每一数据条带进行分别管理。
数据属性管理节点管理的管理数据表中包括多个用于对对应数据条带的数据属性进行存储的字段包括多个字段,包括用于存储对应数据条带中各数据块的访问次数的字段、用于存储对应数据条带中各数据块的访问时间戳的字段、用于存储对应数据条带的总访问次数的字段、用于存储对应数据条带的初始重要等级的字段、用于存储指示与数据属性管理子节点相邻的数据属性管理子节点的指针的字段,以及用于存储指示对应数据条带的标识的字段中的一种或多种组合。
如图5所示,其中501指示的A字段(下文也称stripe_property)是整型类型的指针(下文也称int*),该指针指向一个int型元数据表;int型元数据表中的每个方格是一个int型元数据元素,一个int型元数据元素代表条带中一个分块的访问次数,也即stripe_property字段用于存储对应数据条带中各数据块的访问次数;502指示的B字段(下文也称visits_of_strip)用于存储对应数据条带中所有数据块的访问次数累加得到的总访问次数,也即502指示的stripe_property字段的int型元数据表中的所有int型元数据元素的累加结果;503指示的C字段(下文也称pre_pointer)用于存储指向当前数据属性管理节点的前一数据属性管理节点的前指针;504指示的D字段(下文也称next_pointer)用于存储指向当前数据属性管理节点的后一个数据属性管理节点的后指针。
所称的元数据,又称中介数据、中继数据,主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。
如图6所示,601为未进行数据读取之前的全局空闲数据属性管理节点链表;602为被取出三个数据属性管理节点后的全局空闲数据属性管理节点链表;603为取出的三个数据属性管理节点形成的数据属性管理节点链表;在主机发送数据读写命令的情况下,若数据读写命令中待访问数据对应的数据条带为三条,则存储系统的驱动模块,从全局空闲数据属性管理节点链表的头部取出三个数据属性管理节点,每一数据属性管理节点对应管理待访问数据对应的一个数据条带,如数据属性管理节点M[0]用于管理0号数据条带的数据属性,数据属性管理节点M[1]用于管理1号数据条带的数据属性,数据属性管理节点M[2]用于管理2号数据条带的数据属性;且通过数据条带标识建立各数据条带与对应数据属性管理节点之间的关联性。
可选地,在获取数据属性时,可以根据各数据条带的标识,在存储系统的数据属性管理节点链表中确定各数据条带的对应数据属性管理节点,以便从对应数据属性管理节点的数据表中获取各数据条带的数据属性。
在获取到数据属性之后,可以根据各数据条带的数据属性,在多个缓存区域中,确定各数据条带对应的目标缓存区域。此处的缓存区域的数量可以根据实际需求进行设置,如3个或4个,不同缓存区域预先配置有不同的缓存级别、不同的缓存策略等。
此处,在数据属性包括一个或多个数据访问信息以及数据重要性信息中的一种信息的情况下,如各数据条带中各数据块对应的访问次数的情况下,可以直接将访问次数与对应阈值区间进行比较,以根据比较结果,确定各数据条带对应的缓存级别,以在多个缓存区域中,确定与对应缓存级别匹配的缓存区域作为各数据条带对应的目标缓存区域;或者,直接将访问次数信息输入至人工智能模型和/或机器学习模型中,由人工智能模型和/或机器学习模型输出各数据条带对应的缓存级别,以在多个缓存区域中,确定与对应缓存级别匹配的缓存区域作为各数据条带对应的目标缓存区域,本实施例对此不做具体地限定。
此处,在数据属性包括一个或多个数据访问信息以及数据重要性信息中的多种信息的情况下,确定各数据条带对应的目标缓存区域的方式包括:将数据属性中的各信息与各信息对应的阈值区间分别进行比较,以将比较结果与多个不同缓存阈值区间进行匹配,以获取匹配的缓存阈值区间对应的缓存级别,以在多个缓存区域中,确定与匹配的缓存阈值区间对应的缓存级别匹配的缓存区域作为各数据条带对应的目标缓存区域;或者,将数据属性中的各信息进行融合,以将融合结果与不同缓存阈值区间进行匹配,以获取匹配的缓存阈值区间对应的缓存级别,以在多个缓存区域中,确定与匹配的阈值区间对应的缓存级别匹配的缓存区域作为各数据条带对应的目标缓存区域;或者,将数据属性中的各信息输入至人工智能模型和/或机器学习模型中,由人工智能模型和/或机器学习模型输出各数据条带对应的缓存级别,以在多个缓存区域中,确定与对应的缓存级别匹配的缓存区域作为各数据条带对应的目标缓存区域。
综上,通过联合各数据条带的数据属性,可以更加全面精准地表征各数据条带的特征信息,进而使得确定的各数据条带对应的目标缓存区域更加精准,进而提高数据缓存准确性以及效率。
步骤104,根据所述目标缓存区域的缓存策略,将各所述数据条带并行缓存至各所述数据条带对应的目标缓存区域。
不同缓存区域具备不同缓存策略,所称的缓存策略可以是根据缓存区域所需具备的缓存性能进行确定的,包括缓存方式以及存储介质;也即不同缓存区域可以采用不同的缓存方式进行缓存,和/或采用不同的存储介质进行缓存。
可选地,在确定各数据条带对应的目标缓存区域之后,可以在对应的目标缓存区域中加载对应的目标缓存区域的缓存策略,以按照对应的缓存方式或存储介质,将各数据条带中的各数据块并行缓存至对应的目标缓存区域。
相比与现有技术中采用单一层缓存区对数据进行存储,本实施例增加多个不同层次的缓存区域进行数据并发存储,实现提高数据缓存效率的同时,还可以将不同数据属性的数据存储在不同缓存区域,以满足不同缓存需求的同时,提升缓存性能,使得数据缓存更加高效化和智能化,进一步实现了在缓存数据时,降低内存开销成本、提升缓存加载速率的技术效果。
本实施例中提供的数据存储方法,通过将缓存区划分多种不同缓存级别的缓存区域,并在获取到待缓存数据的情况下,可以将待缓存数据划分为多个数据条带,以根据各数据条带的数据属性,在多个缓存级别的缓存区域中,确定各数据条带对应的目标缓存区域,以便将不同数据条带按照不同的缓存级别并行缓存至对应的目标缓存区域,实现通过对缓存器进行分区和对不同数据条带进行分区缓存,即可达到充分利用缓存资源和提高缓存效率的效果,不仅可以大幅提高缓存性能,而且可以减少对存储系统的硬件或软件进行改进所需的开发成本,减少缓存成本。
在一些实施例中,所述数据属性包括访问信息;
步骤103进一步包括:所述数据属性包括访问信息;所述根据各所述数据条带的数据属性,在多个缓存区域中,确定各所述数据条带对应的目标缓存区域,包括:根据各所述数据条带的所述访问信息,确定各所述数据条带的目标重要等级;根据所述目标重要等级,在多个所述缓存区域中,确定各所述数据条带对应的目标缓存区域。所称的目标重要等级是通过对访问信息计算得到的。
可选地,在获取到各数据条带的访问信息之后,可以根据各数据条带的访问信息对各数据条带的目标重要等级进行计算。
此处的目标重要等级的计算步骤包括:直接将访问信息与预设访问区间进行匹配,以根据匹配结果,识别出各数据条带的目标重要等级;或者,先根据访问信息计算各数据条带的访问等级,再将访问等级与各数据条带的其他数据信息(如数据重要性信息)进行融合,以根据融合结果,获取各数据条带的目标重要等级,本实施例对此不做具体地限定。
所称的融合,可以是基于人工智能模型和机器学习模型进行融合,也可是进行加权相加融合或直接相加融合等,本实施例对此不做具体地限定。
需要说明的是,各目标重要等级可以是与各缓存区域预先建立有映射关系,也可以通过缓存级别与各缓存区域预先建立有映射关系。
对于各目标重要等级与各缓存区域之间预先建立有映射关系,在获取到各数据条带的目标重要等级之后,可直接根据目标重要等级以及各目标重要等级与各缓存区域之间的映射关系,确定与目标重要等级关联的缓存区域,作为对应的目标缓存区域。
对于各目标重要等级通过缓存级别与各缓存区域预先建立有映射关系,在获取到各数据条带的目标重要等级之后,可先根据目标重要等级以及各目标重要等级与各缓存级别之间的映射关系,确定与目标重要等级关联的缓存级别,再确定关联的缓存级别对应的缓存区域,作为对应的目标缓存区域。
本实施例提供的方法,通过联合数据条带的访问信息确定各数据条带的目标重要等级,以根据各数据条带的目标重要等级进一步确定各数据条带对应的目标缓存区域,可以更加全面精准地获取各数据条带对应的目标缓存区域,进而提高数据缓存准确性以及效率。
在一些实施例中,所述根据各所述数据条带的所述访问信息,确定各所述数据条带的目标重要等级,包括:在所述访问信息中,获取各所述数据条带中各数据块的访问次数;将各所述数据条带中所有数据块的访问次数相加,得到各所述数据条带的总访问次数;根据各所述数据条带的总访问次数,确定各所述数据条带的目标重要等级。
可选地,确定各数据条带的目标重要等级的步骤,进一步包括:
首先,获取访问信息中各数据条带中各数据块的访问次数。接着,将各所述数据条带中所有数据块的访问次数相加,得到各数据条带的总访问次数。示例性地,如图6所示,2号数据条带由8个数据块构成,各个数据块的访问次数分别为1、3、5、6、9、3、2、1,则2号数据条带的总访问次数为30次。然后,根据总访问次数,获取各数据条带的目标重要等级。
此处,确定目标重要等级的方式包括:可以是直接将总访问次数与多个访问次数区间进行匹配,以根据匹配结果,划分得到各数据条带的目标重要等级;或者,直接将总访问次数作为人工智能模型的输入,由人工智能模型输出各数据条带的目标重要等级;或者,将总访问次数与其他访问信息和/或数据信息联合,以划分得到各数据条带的目标重要等级,本实施例对此不做具体地限定。
本实施例提供的方法,通过联合各数据块的访问次数确定各数据条带的目标重要等级,以更加全面精准地表征各数据条带的重要性,进而更加全面精准地获取各数据条带对应的目标缓存区域,以提高数据缓存准确性以及效率。
在一些实施例中,所述根据各所述数据条带的总访问次数,确定各所述数据条带的目标重要等级,包括:获取各所述数据条带对应的多个访问次数区间;将各所述数据条带的所述总访问次数,与各所述数据条带对应的多个访问次数区间进行匹配;根据匹配结果,在所述多个访问次数区间中,确定各所述数据条带的所述总访问次数对应的目标访问次数区间;根据所述目标访问次数区间所属的访问等级,确定各所述数据条带的第一访问等级;根据所述第一访问等级,确定各所述数据条带的目标重要等级。
可选地,目标重要等级的确定步骤包括:
首先,获取各数据条带对应的多个访问次数区间;此处的各数据条带对应的多个访问次数区间可以是根据实际需求进行设置的,也可是根据各数据条带的属性信息进行确定,如数据块的数量等,本实施例对此不做具体地限定。
在一些实施例中,所述获取各所述数据条带对应的多个访问次数区间,包括:获取各所述数据条带中数据块的分块数量;根据多种不同的预设比例和所述分块数量,确定各所述数据条带的多个访问次数区间。
可选地,各数据条带对应的多个访问次数区间可以基于如下步骤确定:先获取各数据条带中数据块的分块数量;然后,将分块数量与各种不同预设比例相乘,根据相乘结果,划分得到各数据条带的多个访问次数区间。
此处的预设比例的值以及数量可以是根据实际需求进行设置,如设置两个不同预设比例,分别为3和6;相应地,多个访问次数区间可以分别为第一访问次数区间[0,3×n)、第二访问次数区间[3×n,6×n)和第三访问次数区间[6×n,+∞],其中n为每一数据条带中数据块的分块数量。
本实施例提供的方法,通过根据数据块的分块数量适应性地确定各数据条带的多个访问次数区间,进而使得各数据条带可以精准地分配至各数据条带对应的目标缓存区域,以提高数据缓存准确性以及效率。
接着,将各所述数据条带的总访问次数,与各数据条带对应的多个访问次数区间进行匹配,以确定总访问次数对应的目标访问次数区间,以及目标访问次数区间所属的访问等级,进而确定各数据条带的第一访问等级。其中,每一访问次数区间预先分配有对应的访问等级,如第一访问次数区间、第二访问次数区间以及第三访问区间各自对应的访问等级依次递增,也即第一访问次数区间对应最低级别访问等级、第二访问次数区间对应中间级别访问等级、第三访问次数区间对应最高级别访问等级。
以上述第一访问次数区间、第二访问次数区间以及第三访问区间为例展开描述。
若任一数据条带的总访问次数小于3×n,则表征该数据条带的热点属性为热点数据,确定该数据条带的总访问次数对应的目标访问次数区间为第一访问次数区间,相应地,确定将最低级别访问等级作为该数据条带的第一访问等级。
若该数据条带的总访问次数大于或等于3×n,且小于6×n,则表征该数据条带的热点属性为温性数据,确定该数据条带的总访问次数对应的目标访问次数区间为第二访问次数区间,相应地,确定将中间级别访问等级作为该数据条带的第一访问等级。示例性地,2号数据条带由8个分块构成,数据条带的总访问次数为30次,30除以8为3.75,满足总访问次数大于或等于3×n,且小于6×n的第二访问次数区间,则2号数据条带的热点属性为温性数据,确定该数据条带的第一访问等级为中间级别访问等级。
若该数据条带的总访问次数大于或等于6×n,则表征该数据条带的热点属性为冷性数据,确定该数据条带的总访问次数对应的目标访问次数区间为第三访问次数区间,相应地,确定将最高级别访问等级作为该数据条带的第一访问等级。
接着,在获取到各所述数据条带的第一访问等级之后,可以根据第一访问等级,确定各数据条带的目标重要等级。
根据第一访问等级,确定各数据条带的目标重要等级方式包括:
在一些实施例中,根据第一访问等级,确定各数据条带的目标重要等级的方式包括:直接将第一访问等级作为目标重要等级。
或者,在另一些实施例中,将第一访问等级与其他访问信息(如访问时间戳、访问频次等)和/或数据信息(如数据初始重要等级)联合,以划分得到各数据条带的目标重要等级,本实施例对此不做具体地限定。
在一些实施例中,所述数据属性还包括初始重要等级;相应地,根据第一访问等级,确定各数据条带的目标重要等级的方式还包括:根据所述第一访问等级和所述初始重要等级,确定各所述数据条带的目标重要等级。
所称的初始重要等级可以是数据写入时配置的,也可以是根据访问数据的访问者类型与数据重要等级之间关联性进行确定的,本实施例对此不做具体地限定。
可选地,在获取到各数据条带的第一访问等级以及初始重要等级之后,可以根据各数据条带的第一访问等级以及初始重要等级对各数据条带的目标重要等级进行计算。
此处的目标重要等级的计算步骤包括:直接将第一访问等级与初始重要等级进行融合,以根据融合结果,获取各数据条带的目标重要等级;或者,先根据第一访问等级以及其他访问信息,计算各数据条带的总访问等级,根据总访问等级与初始重要等级进行融合,以根据融合结果,获取各数据条带的目标重要等级,本实施例对此不做具体地限定。
本实施例提供的方法,通过联合各数据条带的第一访问等级以及初始重要等级确定各数据条带的目标重要等级,以根据各数据条带的目标重要等级进一步确定各数据条带对应的目标缓存区域,可以更加全面精准地获取各数据条带对应的目标缓存区域,进而提高数据缓存准确性以及效率。
在一些实施例中,所述根据所述第一访问等级和所述初始重要等级,确定各所述数据条带的目标重要等级,包括:在所述访问信息中,获取各所述数据条带中各数据块的访问时间戳;根据所述访问时间戳、所述第一访问等级以及所述初始重要等级,确定各所述数据条带的目标重要等级。
可选地,确定各数据条带的目标重要等级的步骤,进一步包括:首先,获取访问信息中各数据条带中各数据块的访问时间戳;此处的访问时间戳包括每一次访问的时间信息。然后,联合访问时间戳和第一访问等级以及初始重要等级,获取各数据条带的目标重要等级。
此处,确定目标重要等级的方式包括:可以是对访问时间戳和第一访问等级进行融合,以根据融合结果,划分得到各数据条带的目标重要等级;或者,针对访问时间戳进行进一步处理,以根据处理结果计算访问时间戳对应的访问等级,然后,将第一访问等级和访问时间戳对应的访问等级进行融合,以根据融合结果,划分得到各数据条带的重要等级,本实施例对此不做具体地限定。
本实施例提供的方法,通过联合各数据块的访问次数和访问时间戳,得到数据条带的目标重要等级,以更加全面精准地表征各数据条带的重要性,进而更加全面精准地获取各数据条带对应的目标缓存区域,以提高数据缓存准确性以及效率。
在一些实施例中,所述根据所述访问时间戳、所述第一访问等级以及所述初始重要等级,确定各所述数据条带的目标重要等级,包括:根据所述访问时间戳,获取各所述数据条带的当前次访问时间戳和上一次访问时间戳;将所述当前次访问时间戳与所述上一次访问时间戳相减,得到各所述数据条带的访问间隙;根据所述访问时间戳,获取各所述数据条带在预设时段内的访问频次;根据所述第一访问等级、所述访问间隙以及所述访问频次,确定各所述数据条带的目标访问等级;根据所述目标访问等级以及所述初始重要等级,确定各所述数据条带的目标重要等级。
可选地,对各数据条带中所有数据块的访问时间戳进行排序,以根据排序结果,获取所有数据块的访问时间戳中的最近一次访问时间戳作为各的数据条带的当前次访问时间戳,以及获取与当前次访问时间戳邻近的上一个访问时间戳为上一次访问时间戳。将当前次访问时间戳与上一次访问时间戳相减,得到各数据条带的访问间隙。并且,根据各数据条带中各数据块的访问时间戳,计算各数据条带在预设时段内的访问频次。此处的预设时段可以是以当前访问为基准设置的时间段,或者以预设间隔设置的单位时间段。
在获取到第一访问等级、访问间隙以及访问频次之后,可以是对访问间隙以及访问频次进行融合,以根据融合结果以及第一访问等级确定各数据条带的目标访问等级;也可是先分别对访问间隙以及访问频次各自对应的访问等级进行分别判断,以根据访问间隙以及访问频次各自对应的访问等级以及第一访问等级,联合划分出各数据条带的目标访问等级,本实施例对此不做具体地限定。
接着,将目标访问等级与初始重要等级进行融合,得到各数据条带的目标重要等级。
本实施例中,通过联合第一访问等级、访问间隙以及访问频次进行目标访问等级确定,以更加全面精准地表征各数据条带的重要性,进而更加全面精准地获取各数据条带对应的目标缓存区域,以提高数据缓存准确性以及效率。
在一些实施例中,所述根据所述第一访问等级、所述访问间隙以及所述访问频次,确定各所述数据条带的目标访问等级,包括:根据所述访问间隙,确定各所述数据条带的第二访问等级;根据所述访问频次,确定各所述数据条带的第三访问等级;获取所述第一访问等级、所述第二访问等级和所述第三访问等级各自对应的权重系数;根据所述权重系数,对所述第一访问等级、所述第二访问等级和所述第三访问等级进行融合,得到所述各所述数据条带的目标访问等级。
可选地,可以按照第一访问等级的确定方式,将访问间隙与多个预设访问间隙区间进行比较,以根据比较结果,获取各数据条带的第二访问等级;或者,直接将访问间隙输入至机器学习模型中,由机器学习模型对访问间隙进行非线性学习输出各数据条带的第二访问等级。
同理,也可以按照第一访问等级的确定方式,将访问频次与多个预设访问频次区间进行比较,以根据比较结果,获取各数据条带的第三访问等级;或者,直接将访问频次输入至机器学习模型中,由机器学习模型对访问频次进行非线性学习输出各数据条带的第三访问等级。
进一步地,分别根据第一访问等级、第二访问等级和第三访问等级各自对应的等级标识,加载第一访问等级、第二访问等级和第三访问等级各自对应的权重系数;其中,各等级标识和各权重系数之间的关联关系预先存储,以根据精准便捷地获取权重系数,进而提高将各数据条带快速地分配至目标缓存区域;或者,根据权重算法,如层次分析法、主成分法等,计算得到第一访问等级、第二访问等级和第三访问等级各自对应的权重系数,本实施例对此不做具体地限定。
进一步地,基于第一访问等级、第二访问等级和第三访问等级各自对应的权重系数,将各第一访问等级、所述第二访问等级和所述第三访问等级进行加权相加,得到各数据条带的目标访问等级。
本实施例提供的方法,通过针对总访问次数、访问间隙、访问频次,计算各自对应的访问等级,更具有针对性,进而使得其各自对应的访问等级更加精准,并进一步地对其各自对应的访问等级进行融合,以全面考虑各数据条带的整体访问性能,继而可以精准地将各数据条带分配至对应目标缓存区域,以提高数据缓存准确性以及效率。
在一些实施例中,所述根据所述目标访问等级以及所述初始重要等级,确定各所述数据条带的目标重要等级,包括:对所述目标访问等级和所述初始重要等级进行加权相加,得到各所述数据条带的目标重要等级。
此处,目标访问等级和初始重要等级各自对应的权重系数,可以根据用户对数据的敏感性需求进行确定,也可以根据权重算法计算得到等。
可选地,基于目标访问等级和初始重要等级各自对应的权重系数,将目标访问等级和初始重要等级进行加权相加,得到各数据条带的目标重要等级,以根据目标重要等级,精准地将各数据条带分配至对应目标缓存区域,进而提高数据缓存准确性以及效率。
在一些实施例中,所述根据所述目标重要等级,在多个所述缓存区域中,确定各所述数据条带对应的目标缓存区域,包括:根据第一映射关系和所述目标重要等级,确定各所述数据条带对应的缓存级别;在多个所述缓存区域中,确定与各所述数据条带对应的缓存级别匹配的缓存区域,作为各所述数据条带对应的所述目标缓存区域;其中,所述第一映射关系中预先存储有各缓存级别与各目标重要等级之间的关联关系。
需要说明的是,存储系统中预先存储有各缓存级别与各目标重要等级之间的关联关系。每一缓存区域预先设置有对应的缓存级别。示例性地,最高重要等级对应最高缓存级别,中等重要等级对应中等缓存级别,最低重要等级对应最低缓存级别。
可选地,确定目标缓存区域的具体步骤包括:根据目标重要等级,在第一映射关系中,确定与目标重要等级关联的缓存级别,以将此缓存级别作为各数据条带对应的缓存级别。接着,在多个缓存区域中,确定根据各数据条带对应的缓存级别对应的缓存区域,作为各数据条带对应的目标缓存区域,以精准地将各数据条带分配至对应目标缓存区域,进而提高数据缓存准确性以及效率。
在一些实施例中,多个所述缓存区域包括第一缓存区域、第二缓存区域和第三缓存区域;所述方法还包括:为所述第一缓存区域配置第一缓存级别和第一缓存空间;为所述第二缓存区域配置第二缓存级别和第二缓存空间;为所述第三缓存区域配置第三缓存级别和第三缓存空间;其中,所述第一缓存级别、所述第二缓存级别和所述第三缓存级别分别对应的缓存级别依次递减;所述第一缓存空间、所述第二缓存空间和所述第三缓存空间分别对应的缓存空间大小依次递增。
如图2所示,可以在各存储系统内部预先创建多个缓存区域,分别包括第一缓存区域(也即上层缓存)、第二缓存区域(也即中层缓存)和第三缓存区域(也即下层缓存),并为不同缓存区域配置不同的缓存级别以及不同的缓存空间。
可选地,第一缓存区域用于存储最高重要等级的数据,也即访问等级和初始重要等级联合的等级最高的数据,因此为其分配最高缓存级别(即第一缓存级别);另外,由于最高重要等级的数据相对较少,为了合理利用缓存资源、提高缓存性能,在满足最高重要等级的数据的缓存需求前提下,为第一缓存区域配置最小的缓存空间(即第一缓存空间)。
第二缓存区域用于存储中等重要等级的数据,也即访问等级和初始重要等级联合的等级为中级的数据,因此为其分配中级缓存级别(即第二缓存级别),另外,由于中级重要等级的数据相对最高重要等级的数据进一步增多,为了合理利用缓存资源、提高缓存性能,在满足中级重要等级的数据的缓存需求前提下,为第二缓存区域配置中等大小的缓存空间(即第二缓存空间)。
第三缓存区域用于存储最低重要等级的数据,也即访问等级和初始重要等级联合的等级为最低的数据,因此为其分配最低缓存级别(即第三缓存级别),另外,由于最低重要等级的数据相对最高重要等级以及中等重要等级的数据进一步增多,为了合理利用缓存资源、提高缓存性能,为第三缓存区域配置最大的缓存空间(即第三缓存空间)。
本实施例提供的方法,将缓存区分为多个层次,可以有效减少缓存命中率低的情况,提高缓存的效率和性能。同时,多层缓存区域还可以根据数据条带的目标访问等级和初始重要性等级,将数据条带分配到不同的缓存层次中,以达到更好的缓存命中率和性能。对于目标重要等级较高的热点数据(也即经常访问、且重要性较高的数据),以将其缓存至更高层次的缓存区域中,以便更快地访问和响应;而对于目标重要等级较低的冷数据(也即不经常访问、且重要性较低的数据),将其放置在较低层次等级的缓存区域中,以节省高层次缓存的空间和资源,通过这种多层次、多策略缓存的方式进行数据缓存,可以为各缓存区域合理并行分配不同的缓存空间,避免单一缓存区域进行数据缓存带来的缓存拥塞,保证数据一致性和可靠性的前提下,进一步提高存储效率和性能,且通过为各数据条带合理分配缓存区间,可以合理利用缓存资源,进一步降低缓存成本。
在一些实施例中,所述根据所述目标缓存区域的缓存策略,将各所述数据条带并行缓存至各所述数据条带对应的目标缓存区域,包括:在任一数据条带对应的所述目标缓存区域为所述第二缓存区域的情况下,基于读锁,将所述任一数据条带中各数据块并行缓存至所述任一数据条带对应的所述目标缓存区域。在任一数据条带对应的所述目标缓存区域为所述第三缓存区域的情况下,基于读锁和写锁,将所述任一数据条带中各数据块并行缓存至所述任一数据条带对应的所述目标缓存区域。
需要说明的是,此处的缓存策略包括但不限于增加读取写锁的缓存策略(下文也称ReadWrite缓存策略),也即仅能同时进行数据读取或写入,不增加读取写锁的缓存策略(下文也称None缓存策略),也即对于所有缓存任务均不对数据条带使用任何锁功能,以及增加读锁的缓存策略(下文也称ReadOnly缓存策略),也即仅增加只读锁。其中,读写锁是把对共享资源的访问者划分成读者和写者,读者只对共享资源进行读访问,写者则需要对共享资源进行写操作。
可选地,根据各缓存区域的缓存性能为各缓存区域配置相应的缓存策略,如第一缓存区域的缓存性能为缓存数据量相对最小,且访问频次最高,则为第一缓存区域配置None缓存策略,为第二缓存区域配置ReadOnly缓存策略;由于第三缓存区域的缓存性能为缓存数据量相对最多,且访问频次最低,为第三缓存区域配置ReadWrite缓存策略。
相应地,在任一数据条带对应的目标重要等级为中等重要等级的情况下,确定该数据条带对应的目标缓存区域为第二缓存区域,相应地,确定该数据条带的缓存策略为ReadOnly缓存策略。此处,可基于读锁,将该数据条带中各数据块并行缓存至该数据条带对应的目标缓存区域。
在任一数据条带对应的目标重要等级为最低重要等级的情况下,确定该数据条带对应的目标缓存区域为第三缓存区域,相应地,确定该数据条带的缓存策略为ReadWrite缓存策略。此处,可基于读锁和写锁,将该数据条带中各数据块并行缓存至该数据条带对应的目标缓存区域。
另外,在任一数据条带对应的目标重要等级为中等重要等级的情况下,确定该数据条带对应的目标缓存区域为第二缓存区域,相应地,确定该数据条带的缓存策略为ReadOnly缓存策略。此处,可基于读锁,将该数据条带中各数据块并行缓存至该数据条带对应的目标缓存区域。
本实施例提供的方法,通过针对各层缓存使用不同的缓存策略可以最大化提升缓存性能进而提高存储系统的IO性能。
在一些实施例中,所述根据所述目标缓存区域的缓存策略,将各所述数据条带并行缓存至各所述数据条带对应的目标缓存区域,包括:在任一数据条带对应的所述目标缓存区域为所述第一缓存区域的情况下,基于静态随机存取存储介质,将所述任一数据条带中各数据块并行缓存至所述任一数据条带对应的所述目标缓存区域;在任一数据条带对应的所述目标缓存区域为所述第二缓存区域或所述第三缓存区域的情况下,基于动态随机存取存储介质,将所述任一数据条带中各数据块并行缓存至所述任一数据条带对应的所述目标缓存区域。
需要说明的是,此处的缓存策略还包括基于静态随机存取存储介质(StaticRandom-Access Memory,SRAM)进行数据缓存的策略,以及基于动态随机存取存储介质(Dynamic Random Access Memory,DRAM)进行数据缓存的策略。
可选地,根据各缓存区域的缓存性能为各缓存区域配置相应的缓存策略,如第一缓存区域的缓存性能为访问频次最高,为了实现快速响应以及缓存,则为第一缓存区域配置基于读写速度最快的SRAM进行数据缓存的策略,第二缓存区域和第三缓存区域的缓存性能为访问频次相对较低,为了降低成本,可为第二缓存区域和第三缓存区域配置读写速度相较SRAM慢一些,成本相对较低的DRAM,以此降低缓存成本。SRAM存储介质的成本远高于DRAM存储介质。
相应地,在任一数据条带对应的目标重要等级为最高重要等级的情况下,确定该数据条带对应的目标缓存区域为第一缓存区域,相应地,确定该数据条带的缓存策略为基于SRAM进行数据缓存的策略。此处,可基于SRAM,将该数据条带中各数据块并行缓存至该数据条带对应的目标缓存区域。
在任一数据条带对应的目标重要等级为最低重要等级的情况下,确定该数据条带对应的目标缓存区域为第三缓存区域,相应地,确定该数据条带的缓存策略为基于DRAM进行数据缓存的策略。此处,可基于DRAM,将该数据条带中各数据块并行缓存至该数据条带对应的目标缓存区域。
在任一数据条带对应的目标重要等级为中等重要等级的情况下,确定该数据条带对应的目标缓存区域为第二缓存区域,相应地,确定该数据条带的缓存策略为基于DRAM进行数据缓存的策略。此处,可基于DRAM,将该数据条带中各数据块并行缓存至该数据条带对应的目标缓存区域。
本实施例提供的方法,根据各层缓存的缓存性能,设置不同的缓存分区以区别使用不同的存储介质进行缓存,进一步确保缓存性能的同时,可以节省存储系统的硬件成本,进而提高市场竞争力。
在一些实施例,所述方法还包括:获取更新指令;所述更新指令用于对目标数据条带的数据属性进行更新;根据所述更新指令,获取所述目标数据条带的目标数据属性;根据所述目标数据属性,更新所述目标数据条带的数据属性,得到所述目标数据条带的更新后的数据属性;根据所述更新后的数据属性,在多个所述缓存区域中,确定所述目标数据条带的对应的待迁移目标缓存区域;在所述待迁移目标缓存区域与所述目标数据条带的当前的目标缓存区域不同的情况下,将所述目标数据条带从所述当前的目标缓存区域中迁移至所述待迁移目标缓存区域。
所称的更新指令用于对目标数据条带的数据属性进行更新;可以是由存储系统在特定条件下触发产生的,如在监测到目标数据条带的访问信息发生变化时产生;也可是由用户在需要对目标数据条带的数据属性进行更新输入的,如在目标数据条带的初始重要信息需要重新配置,本实施例对此不做具体地限定。
可选地,实时监听更新指令;在获取到更新指令的情况下,从更新指令中解析出所需更新的目标数据条带,以及目标数据条带的待更新数据属性(也称目标数据属性)。接着,根据目标数据属性,更新目标数据条带的当前数据属性,得到更新后的数据属性;接着,按照图1所示的步骤,根据更新后数据属性,重新在多个缓存区域中,确定目标数据条带的对应的新的目标缓存区域,也即待迁移目标缓存区域;在待迁移目标缓存区域相对于当前的目标缓存区域发生变化的情况下,将目标数据条带从当前的目标缓存区域中迁移至待迁移目标缓存区域,以实现实时根据数据条带的数据属性的更新,实时更新条带数据分层存储的位置,以便对数据访问速度和响应时间的要求非常高的数据可以迁移至最高缓存等级所在的缓存区域,对数据访问速度和响应时间的要求低的数据可以迁移至较低缓存等级所在的缓存区域,使得数据缓存更加高效化和智能化,进一步实现了在缓存数据时,降低内存开销成本、提升缓存加载速率的技术效果。
如图7所示,为本实施例提供的数据存储方法的流程示意图之二,包括:
步骤701,存储系统上电启动;
步骤702,在存储系统的控制节点内部创建三层缓存区域,其中第一缓存区域占用SRAM存储介质,第二缓存区域和第三缓存区域占用DRAM存储介质;
步骤703,为第一缓存区域配置不增加读写锁的缓存策略(None缓存策略),为第二缓存区域配置增加读锁的缓存策略(ReadOnly缓存策略),为第三缓存区域配置增加读写锁的缓存策略(ReadWrite缓存策略);
步骤704,用户通过命令行界面或者图形化界面输入的一个或多个逻辑卷的数据缓存指令;
步骤705,主机将数据缓存指令以IO的形式发送至存储系统;
步骤706,驱动模块将IO中的待缓存数据切分为多个数据条带,具体切分结果如图4所示;
步骤707,驱动模块从数据属性管理节点链表中确定各数据条带对应的数据属性管理节点,以在对应的数据属性管理节点中获取各数据条带的数据属性;
步骤708,根据各数据条带的数据属性,确定各数据条带对应的缓存区域,以将各数据条带并行缓存至各自对应的缓存区域中。
在存储系统的控制节点内部创建三层缓存区域,其中第一缓存区域占用SRAM存储介质,第二缓存区域和第三缓存区域占用DRAM存储介质。
相比于现有的存储系统通常只有一层缓存,本实施例提供的存储方法增加了缓存层数,将缓存分为多个层次。这样可以有效减少缓存命中率低的情况,提高缓存的效率和性能。同时,多层缓存还可以根据数据的访问等级和初始重要性,将数据分配到不同的缓存层次中,以达到更好的缓存命中率和性能。对于经常访问的重要数据,可以将其放置在更高层次的缓存中,以便更快地访问和响应;而对于不经常访问的非重要数据,则将其放置在较低层次的缓存中,以节省高层次缓存的空间和资源。这种多层缓存系统的设计思路,可以在保证数据一致性和可靠性的前提下,进一步提高存储系统的效率和性能。
下面对本发明提供的数据存储装置进行描述,下文描述的数据存储装置与上文描述的数据存储方法可相互对应参照,此处不再赘述。
如图8所示,本实施例提供一种数据存储装置,该装置包括:获取模块801用于获取数据缓存指令;切分模块802用于根据数据缓存指令,获取待缓存数据,并对待缓存数据进行条带划分,得到多个数据条带;确定模块803用于根据各数据条带的数据属性,在多个缓存区域中,确定各数据条带对应的目标缓存区域;缓存模块804用于根据目标缓存区域的缓存策略,将各数据条带并行缓存至各数据条带对应的目标缓存区域。
本实施例提供的数据存储装置,通过将缓存区划分多种不同缓存级别的缓存区域,并在获取到待缓存数据的情况下,可以将待缓存数据划分为多个数据条带,以根据各数据条带的数据属性,在多个缓存级别的缓存区域中,确定各数据条带对应的目标缓存区域,以便可将不同数据条带按照不同的缓存级别并行缓存至对应的目标缓存区域,以实现通过对缓存器进行分区和分区缓存,即可达到充分利用缓存资源和提高缓存效率的效果,不仅可以大幅提高缓存性能,而且可以减少对存储系统的硬件或软件进行改进所需的开发成本,减少缓存成本。
如图2所示,本实施例还提供一种数据存储系统,该系统包括多个控制节点201以及磁盘组202;多个控制节点共享201磁盘组;每一控制节点至少包括驱动模块和磁盘阵列;该磁盘阵列是由磁盘组中的多个磁盘组合得到的一个容量巨大的磁盘组;该磁盘阵列包括多个不同缓存级别的缓存区域,具体可以根据实际需求进行设置,如包含3个缓存区域分别为第一缓存区域(下文也称上层缓存)、第二缓存区域(下文也称中层缓存)、第三缓存区域(下文也称下层缓存)。第一缓存区域、第二缓存区域和第三缓存区域所缓存的数据对应的数据重要性依次降低。也即不同对不同重要等级的数据块进行分类存储,以提高数据缓存性能的同时,降低缓存成本。驱动模块用于执行上述数据存储方法,具体执行步骤参见图1所示的数据存储方法的执行步骤,此处不再赘述。
如图6所示,存储系统的控制节点中预先配置有数据属性管理节点链表,该数据链表中包括多个数据属性管理节点;每一数据属性管理子节点与每一数据条带一一对应,每一数据属性管理子节点用于管理对应数据条带的数据属性;也即每一数据属性管理节点用于在数据读写命令到来之后,对数据读写命令对应的每一数据条带进行分别管理。如图5所示,数据属性管理子节点的管理数据表中包括多个用于对对应数据条带的数据属性进行存储的字段,分别包括用于存储对应数据条带中各数据块的访问次数的字段、用于存储对应数据条带中各数据块的访问时间戳的字段、用于存储对应数据条带的总访问次数的字段、用于存储对应数据条带的初始重要等级的字段、用于存储指示与数据属性管理子节点相邻的数据属性管理子节点的指针的字段,以及用于存储指示对应数据条带的标识的字段中的一种或多种组合。
图9示例了一种电子设备的实体结构示意图,如图9所示,该电子设备可以包括:处理器(processor)901、通信接口(Communications Interface)902、存储器(memory)903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信。处理器901可以调用存储器903中的逻辑指令,以执行数据存储方法,该方法包括:获取数据缓存指令;根据数据缓存指令,获取待缓存数据,并对待缓存数据进行条带划分,得到多个数据条带;根据各数据条带的数据属性,在多个缓存区域中,确定各数据条带对应的目标缓存区域;根据目标缓存区域的缓存策略,将各数据条带并行缓存至各数据条带对应的目标缓存区域。
此外,上述的存储器903中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,计算机程序被处理器执行时,计算机能够执行上述各方法所提供的数据存储方法,该方法包括:获取数据缓存指令;根据数据缓存指令,获取待缓存数据,并对待缓存数据进行条带划分,得到多个数据条带;根据各数据条带的数据属性,在多个缓存区域中,确定各数据条带对应的目标缓存区域;根据目标缓存区域的缓存策略,将各数据条带并行缓存至各数据条带对应的目标缓存区域。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的数据存储方法,该方法包括:获取数据缓存指令;根据数据缓存指令,获取待缓存数据,并对待缓存数据进行条带划分,得到多个数据条带;根据各数据条带的数据属性,在多个缓存区域中,确定各数据条带对应的目标缓存区域;根据目标缓存区域的缓存策略,将各数据条带并行缓存至各数据条带对应的目标缓存区域。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (25)
1.一种数据存储方法,其特征在于,包括:
获取数据缓存指令;
根据所述数据缓存指令,获取待缓存数据,并对所述待缓存数据进行条带划分,得到多个数据条带;
根据各所述数据条带的标识,在存储系统的数据属性管理节点链表中确定各所述数据条带的对应数据属性管理节点,从各所述数据条带的对应数据属性管理节点中获取各所述数据条带的数据属性;根据各所述数据条带的数据属性,在多个缓存区域中,确定各所述数据条带对应的目标缓存区域;所述数据属性包括访问信息以及数据重要性信息中的至少一种信息;所述访问信息包括访问次数、访问时间戳、访问频次中的至少一种信息;
根据所述目标缓存区域的缓存策略,将各所述数据条带并行缓存至各所述数据条带对应的目标缓存区域;不同的缓存区域具有不同的缓存策略、缓存优先级别以及缓存空间;所述缓存策略包括增加读取写锁的缓存策略、不增加读取写锁的缓存策略、增加读锁的缓存策略、基于静态随机存取存储介质进行数据缓存的策略和基于动态随机存取存储介质进行数据缓存的策略中的至少一种策略。
2.根据权利要求1所述的数据存储方法,其特征在于,所述数据属性包括访问信息;
所述根据各所述数据条带的数据属性,在多个缓存区域中,确定各所述数据条带对应的目标缓存区域,包括:
根据各所述数据条带的所述访问信息,确定各所述数据条带的目标重要等级;
根据所述目标重要等级,在多个所述缓存区域中,确定各所述数据条带对应的目标缓存区域。
3.根据权利要求2所述的数据存储方法,其特征在于,所述根据各所述数据条带的所述访问信息,确定各所述数据条带的目标重要等级,包括:
在所述访问信息中,获取各所述数据条带中各数据块的访问次数;
将各所述数据条带中所有数据块的访问次数相加,得到各所述数据条带的总访问次数;
根据各所述数据条带的总访问次数,确定各所述数据条带的目标重要等级。
4.根据权利要求3所述的数据存储方法,其特征在于,所述根据各所述数据条带的总访问次数,确定各所述数据条带的目标重要等级,包括:
获取各所述数据条带对应的多个访问次数区间;
将各所述数据条带的所述总访问次数,与各所述数据条带对应的多个访问次数区间进行匹配;
根据匹配结果,在所述多个访问次数区间中,确定各所述数据条带的所述总访问次数对应的目标访问次数区间;
根据所述目标访问次数区间所属的访问等级,确定各所述数据条带的第一访问等级;
根据所述第一访问等级,确定各所述数据条带的目标重要等级。
5.根据权利要求4所述的数据存储方法,其特征在于,所述获取各所述数据条带对应的多个访问次数区间,包括:
获取各所述数据条带中数据块的分块数量;
根据多种不同的预设比例和所述分块数量,确定各所述数据条带对应的多个访问次数区间。
6.根据权利要求4所述的数据存储方法,其特征在于,所述根据所述第一访问等级,确定各所述数据条带的目标重要等级,包括:
将各所述数据条带的第一访问等级作为各所述数据条带的目标重要等级。
7.根据权利要求4所述的数据存储方法,其特征在于,所述数据属性还包括初始重要等级;
所述根据所述第一访问等级,确定各所述数据条带的目标重要等级,包括:
根据所述第一访问等级和所述初始重要等级,确定各所述数据条带的目标重要等级。
8.根据权利要求7所述的数据存储方法,其特征在于,所述根据所述第一访问等级和所述初始重要等级,确定各所述数据条带的目标重要等级,包括:
在所述访问信息中,获取各所述数据条带中各数据块的访问时间戳;
根据所述访问时间戳、所述第一访问等级以及所述初始重要等级,确定各所述数据条带的目标重要等级。
9.根据权利要求8所述的数据存储方法,其特征在于,所述根据所述访问时间戳、所述第一访问等级以及所述初始重要等级,确定各所述数据条带的目标重要等级,包括:
根据所述访问时间戳,获取各所述数据条带的当前次访问时间戳和上一次访问时间戳;
将所述当前次访问时间戳与所述上一次访问时间戳相减,得到各所述数据条带的访问间隙;
根据所述访问时间戳,获取各所述数据条带在预设时段内的访问频次;
根据所述第一访问等级、所述访问间隙以及所述访问频次,确定各所述数据条带的目标访问等级;
根据所述目标访问等级以及所述初始重要等级,确定各所述数据条带的目标重要等级。
10.根据权利要求9所述的数据存储方法,其特征在于,所述根据所述第一访问等级、所述访问间隙以及所述访问频次,确定各所述数据条带的目标访问等级,包括:
根据所述访问间隙,确定各所述数据条带的第二访问等级;
根据所述访问频次,确定各所述数据条带的第三访问等级;
获取所述第一访问等级、所述第二访问等级和所述第三访问等级各自对应的权重系数;
根据所述权重系数,对所述第一访问等级、所述第二访问等级和所述第三访问等级进行融合,得到所述各所述数据条带的目标访问等级。
11.根据权利要求9所述的数据存储方法,其特征在于,所述根据所述目标访问等级以及所述初始重要等级,确定各所述数据条带的目标重要等级,包括:
对所述目标访问等级和所述初始重要等级进行加权相加,得到各所述数据条带的目标重要等级。
12.根据权利要求2-11任一所述的数据存储方法,其特征在于,所述根据所述目标重要等级,在多个所述缓存区域中,确定各所述数据条带对应的目标缓存区域,包括:
根据第一映射关系和所述目标重要等级,确定各所述数据条带对应的缓存级别;
在多个所述缓存区域中,确定与各所述数据条带对应的缓存级别匹配的缓存区域,作为各所述数据条带对应的所述目标缓存区域;
其中,所述第一映射关系中预先存储有各缓存级别与各目标重要等级之间的关联关系。
13.根据权利要求1-11任一所述的数据存储方法,其特征在于,多个所述缓存区域包括第一缓存区域、第二缓存区域和第三缓存区域;
所述方法还包括:
为所述第一缓存区域配置第一缓存级别和第一缓存空间;
为所述第二缓存区域配置第二缓存级别和第二缓存空间;
为所述第三缓存区域配置第三缓存级别和第三缓存空间;
其中,所述第一缓存级别、所述第二缓存级别和所述第三缓存级别分别对应的缓存级别依次递减;
所述第一缓存空间、所述第二缓存空间和所述第三缓存空间分别对应的缓存空间大小依次递增。
14.根据权利要求13所述的数据存储方法,其特征在于,所述根据所述目标缓存区域的缓存策略,将各所述数据条带并行缓存至各所述数据条带对应的目标缓存区域,包括:
在任一数据条带对应的所述目标缓存区域为所述第二缓存区域的情况下,基于读锁,将所述任一数据条带中各数据块并行缓存至所述任一数据条带对应的所述目标缓存区域。
15.根据权利要求13所述的数据存储方法,其特征在于,所述根据所述目标缓存区域的缓存策略,将各所述数据条带并行缓存至各所述数据条带对应的目标缓存区域,包括:
在任一数据条带对应的所述目标缓存区域为所述第三缓存区域的情况下,基于读锁和写锁,将所述任一数据条带中各数据块并行缓存至所述任一数据条带对应的所述目标缓存区域。
16.根据权利要求13所述的数据存储方法,其特征在于,所述根据所述目标缓存区域的缓存策略,将各所述数据条带并行缓存至各所述数据条带对应的目标缓存区域,包括:
在任一数据条带对应的所述目标缓存区域为所述第一缓存区域的情况下,基于静态随机存取存储介质,将所述任一数据条带中各数据块并行缓存至所述任一数据条带对应的所述目标缓存区域。
17.根据权利要求13所述的数据存储方法,其特征在于,所述根据所述目标缓存区域的缓存策略,将各所述数据条带并行缓存至各所述数据条带对应的目标缓存区域,包括:
在任一数据条带对应的所述目标缓存区域为所述第二缓存区域或所述第三缓存区域的情况下,基于动态随机存取存储介质,将所述任一数据条带中各数据块并行缓存至所述任一数据条带对应的所述目标缓存区域。
18.根据权利要求1-11任一所述的数据存储方法,其特征在于,所述方法还包括:
获取更新指令;所述更新指令用于对目标数据条带的数据属性进行更新;
根据所述更新指令,获取所述目标数据条带的目标数据属性;
根据所述目标数据属性,更新所述目标数据条带的数据属性,得到所述目标数据条带的更新后的数据属性;
根据所述更新后的数据属性,在多个所述缓存区域中,确定所述目标数据条带的对应的待迁移目标缓存区域;
在所述待迁移目标缓存区域与所述目标数据条带的当前的目标缓存区域不同的情况下,将所述目标数据条带从所述当前的目标缓存区域中迁移至所述待迁移目标缓存区域。
19.根据权利要求1-11任一所述的数据存储方法,其特征在于,所述获取数据缓存指令,包括:
接收命令行界面的命令;
从所述命令行界面的命令中解析出所述数据缓存指令;和/或,
接收图形化界面的命令;
从所述图形化界面的命令中解析出所述数据缓存指令。
20.一种数据存储装置,其特征在于,包括:
获取模块,用于获取数据缓存指令;
切分模块,用于根据所述数据缓存指令,获取待缓存数据,并对所述待缓存数据进行条带划分,得到多个数据条带;
确定模块,用于根据各所述数据条带的标识,在存储系统的数据属性管理节点链表中确定各所述数据条带的对应数据属性管理节点,从各所述数据条带的对应数据属性管理节点中获取各所述数据条带的数据属性;根据各所述数据条带的数据属性,在多个缓存区域中,确定各所述数据条带对应的目标缓存区域;所述数据属性包括访问信息以及数据重要性信息中的至少一种信息;所述访问信息包括访问次数、访问时间戳、访问频次中的至少一种信息;
缓存模块,用于根据所述目标缓存区域的缓存策略,将各所述数据条带并行缓存至各所述数据条带对应的目标缓存区域;不同的缓存区域具有不同的缓存策略、缓存优先级别以及缓存空间;所述缓存策略包括增加读取写锁的缓存策略、不增加读取写锁的缓存策略、增加读锁的缓存策略、基于静态随机存取存储介质进行数据缓存的策略和基于动态随机存取存储介质进行数据缓存的策略中的至少一种策略。
21.一种数据存储系统,其特征在于,包括多个控制节点以及磁盘组;
多个所述控制节点共享所述磁盘组;
所述控制节点包括驱动模块和磁盘阵列;所述磁盘阵列是由所述磁盘组中的多个磁盘组合得到的;
所述磁盘阵列包括多个缓存区域;
所述驱动模块用于执行如权利要求1至19任一项所述数据存储方法。
22.根据权利要求21所述的数据存储系统,其特征在于,所述控制节点还包括多个数据属性管理子节点;
每一所述数据属性管理子节点与每一数据条带一一对应,每一所述数据属性管理子节点用于管理对应数据条带的数据属性;
所述数据属性管理子节点的管理数据表中包括多个用于对所述对应数据条带的数据属性进行存储的字段;
多个所述字段包括用于存储所述对应数据条带中各数据块的访问信息的字段、用于存储所述对应数据条带的初始重要等级的字段、用于存储指示与所述数据属性管理子节点相邻的数据属性管理子节点的指针的字段,以及用于存储指示所述对应数据条带的标识的字段中的一种或多种组合。
23.根据权利要求22所述的数据存储系统,其特征在于,所述用于存储所述对应数据条带中各数据块的访问信息的字段,包括以下至少一项:
用于存储所述对应数据条带中各数据块的访问次数的字段;
用于存储所述对应数据条带中各数据块的访问时间戳的字段;
用于存储所述对应数据条带的总访问次数的字段。
24.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至19任一项所述数据存储方法。
25.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至19任一项所述数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310696412.2A CN116450053B (zh) | 2023-06-13 | 2023-06-13 | 数据存储方法、装置、系统、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310696412.2A CN116450053B (zh) | 2023-06-13 | 2023-06-13 | 数据存储方法、装置、系统、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116450053A CN116450053A (zh) | 2023-07-18 |
CN116450053B true CN116450053B (zh) | 2023-09-05 |
Family
ID=87130471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310696412.2A Active CN116450053B (zh) | 2023-06-13 | 2023-06-13 | 数据存储方法、装置、系统、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116450053B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105302830A (zh) * | 2014-07-09 | 2016-02-03 | 方正国际软件(北京)有限公司 | 一种地图瓦片缓存方法及装置 |
CN108259945A (zh) * | 2018-04-19 | 2018-07-06 | 腾讯音乐娱乐科技(深圳)有限公司 | 处理播放多媒体数据的播放请求的方法和装置 |
CN109062505A (zh) * | 2018-07-13 | 2018-12-21 | 南瑞集团有限公司 | 一种缓存策略写入分层硬件架构下的写性能优化方法 |
CN112351088A (zh) * | 2020-10-29 | 2021-02-09 | 平安科技(深圳)有限公司 | 一种cdn缓存方法、装置、计算机设备及存储介质 |
CN114968845A (zh) * | 2022-05-29 | 2022-08-30 | 苏州浪潮智能科技有限公司 | 一种缓存处理的方法、系统、设备和存储介质 |
CN115250295A (zh) * | 2021-04-26 | 2022-10-28 | 北京字跳网络技术有限公司 | 一种媒体内容处理方法、装置、设备和存储介质 |
CN115543871A (zh) * | 2022-11-29 | 2022-12-30 | 苏州浪潮智能科技有限公司 | 数据存储方法及相关设备 |
-
2023
- 2023-06-13 CN CN202310696412.2A patent/CN116450053B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105302830A (zh) * | 2014-07-09 | 2016-02-03 | 方正国际软件(北京)有限公司 | 一种地图瓦片缓存方法及装置 |
CN108259945A (zh) * | 2018-04-19 | 2018-07-06 | 腾讯音乐娱乐科技(深圳)有限公司 | 处理播放多媒体数据的播放请求的方法和装置 |
CN109062505A (zh) * | 2018-07-13 | 2018-12-21 | 南瑞集团有限公司 | 一种缓存策略写入分层硬件架构下的写性能优化方法 |
CN112351088A (zh) * | 2020-10-29 | 2021-02-09 | 平安科技(深圳)有限公司 | 一种cdn缓存方法、装置、计算机设备及存储介质 |
CN115250295A (zh) * | 2021-04-26 | 2022-10-28 | 北京字跳网络技术有限公司 | 一种媒体内容处理方法、装置、设备和存储介质 |
CN114968845A (zh) * | 2022-05-29 | 2022-08-30 | 苏州浪潮智能科技有限公司 | 一种缓存处理的方法、系统、设备和存储介质 |
CN115543871A (zh) * | 2022-11-29 | 2022-12-30 | 苏州浪潮智能科技有限公司 | 数据存储方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116450053A (zh) | 2023-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10853139B2 (en) | Dynamic workload management based on predictive modeling and recommendation engine for storage systems | |
US10374792B1 (en) | Layout-independent cryptographic stamp of a distributed dataset | |
US20200125286A1 (en) | Fragment Management Method and Fragment Management Apparatus | |
US10866970B1 (en) | Range query capacity allocation | |
US9280300B2 (en) | Techniques for dynamically relocating virtual disk file blocks between flash storage and HDD-based storage | |
CN114860163B (zh) | 一种存储系统、内存管理方法和管理节点 | |
CA2947158A1 (en) | Systems, devices and methods for generating locality-indicative data representations of data streams, and compressions thereof | |
US11061788B2 (en) | Storage management method, electronic device, and computer program product | |
US9330158B1 (en) | Range query capacity allocation | |
CN111737168A (zh) | 一种缓存系统、缓存处理方法、装置、设备及介质 | |
CN109582213A (zh) | 数据重构方法及装置、数据存储系统 | |
CN104519103A (zh) | 网络数据的同步处理方法、服务器及相关系统 | |
CN113723443A (zh) | 一种视觉大模型分布式训练方法及系统 | |
Noorshams | Modeling and prediction of i/o performance in virtualized environments | |
CN111708894A (zh) | 一种知识图谱创建方法 | |
US11609910B1 (en) | Automatically refreshing materialized views according to performance benefit | |
EP4170499A1 (en) | Data storage method, storage system, storage device, and storage medium | |
KR20210103393A (ko) | 낮은-지역성 데이터에서 높은-지역성 데이터로의 변환을 관리하기 위한 시스템 및 방법 | |
CN116450053B (zh) | 数据存储方法、装置、系统、电子设备和存储介质 | |
Mukherjee | Non-replicated dynamic fragment allocation in distributed database systems | |
CN115904255A (zh) | 一种数据请求方法、装置、设备及存储介质 | |
CN117331487A (zh) | 一种数据重删方法及相关系统 | |
CN115793957A (zh) | 写数据的方法、装置及计算机存储介质 | |
Luo et al. | Towards efficiently supporting database as a service with QoS guarantees | |
US20240012756A1 (en) | Cache management method and storage device |
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 |