CN115576503A - 数据存储方法、装置、存储介质及存储设备 - Google Patents
数据存储方法、装置、存储介质及存储设备 Download PDFInfo
- Publication number
- CN115576503A CN115576503A CN202211575663.7A CN202211575663A CN115576503A CN 115576503 A CN115576503 A CN 115576503A CN 202211575663 A CN202211575663 A CN 202211575663A CN 115576503 A CN115576503 A CN 115576503A
- Authority
- CN
- China
- Prior art keywords
- data
- process data
- storage
- service
- target service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
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
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/061—Improving I/O performance
-
- 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/0614—Improving the reliability of 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/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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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
技术领域
本申请涉及存储领域,具体而言,涉及一种数据存储方法、装置、存储介质及存储设备。
背景技术
企业级存储系统经历了多年发展,从以DAS、SAN为代表早期存储方式,经过近几年的发展,发展为分布式存储为代表的存储方式。其中,企业存储其最主要特征是提供非常高的数据可靠性,从而在存储过程中使用了各种各样的冗余策略,保障数据不会因偶发的软硬件故障丢失。
然而,研究发现,随着新兴业务的发展,对企业级存储的需求发生了变化,传统高可靠的存储方式无法满足新兴业务对存储方式的多样化需求。
发明内容
为了克服现有技术中的至少一个不足,本申请提供一种数据存储方法、装置、存储介质及存储设备,用于在企业级存储场景下提供更为灵活的存储方式,使得目标业务能够高效运行。具体包括:
第一方面,本申请提供一种数据存储方法,所述方法包括:
响应目标业务的运行请求,启动所述目标业务;
确定出所述目标业务运行期间产生的过程数据,其中,所述目标业务基于输入的原始数据生成所述过程数据,并基于所述过程数据生成最终数据;
将所述过程数据采取高性能策略进行存储,其中,所述高性能策略的存储效率高于高可靠策略的存储效率,而低于所述高可靠策略的存储可靠性。
第二方面,本申请提供一种数据存储装置,所述装置包括:
业务启动模块,用于响应目标业务的运行请求,启动所述目标业务;
过程数据模块,用于确定出所述目标业务运行期间产生的过程数据,其中,所述目标业务基于输入的原始数据生成所述过程数据,并基于所述过程数据生成最终数据;
数据存储模块,用于将所述过程数据采取高性能策略进行存储,其中,所述高性能策略的存储效率高于高可靠策略的存储效率,而低于所述高可靠策略的存储可靠性。
第三方面,本申请提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现所述的数据存储方法。
第四方面,本申请提供一种存储设备,所述存储设备包括处理器以及存储器,所述存储器存储有计算机程序,所述计算机程序被处理器执行时,实现所述的数据存储方法。
相对于现有技术而言,本申请具有以下有益效果:
本申请提供的数据存储方法、装置、存储介质及存储设备中,存储设备响应目标业务的运行请求,启动目标业务;确定出目标业务运行期间产生的过程数据,将过程数据采取高性能策略进行存储。由于述高性能策略的存储效率高于高可靠策略的存储效率,从而节省了数据存储时间,达到提升目标业务执行效率的目的。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的生成最终数据的原理示意图;
图2为本申请实施例提供的数据存储方法的流程示意图之一;
图3为本申请实施例提供的系统架构示意图;
图4为本申请实施例提供的数据存储方法的流程示意图之二;
图5为本申请实施例提供的LRU原理示意图之一;
图6为本申请实施例提供的LRU原理示意图之二;
图7为本申请实施例提供的数据存储方法的流程示意图之三;
图8为本申请实施例提供的数据存储装置的结构示意图;
图9为本申请实施例提供的存储设备的结构示意图。
图标:101-用户终端;102-存储设备;201-业务启动模块;202-过程数据模块;203-数据存储模块;301-存储器;302-处理器;303-通信单元;304-系统总线。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。此外,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
基于上述声明,在对本实施例进行详细介绍之前,首先应理解的是,企业级存储在数据的可靠性方面要求特别高,因而使用了各种各样的冗余策略,以保障数据不会因偶发的软硬件故障丢失。由于使用了各种各样的冗余策略会降低数据存储效率,继而会影响到业务的执行效率。
示例性的,在集中式存储中,普遍采用RAID进行数据保护;而近年的分布式系统中,则一般采用纠删码(Erasure Code)或多副本的方式进行数据保护。针对存储节点之间、用户主机与存储节点之间的网络连接,都要求有冗余备份,不会因一条光纤线的故障导致系统不可用。
然而,随着新兴业务的发展,用户对存储的需求不再是一味地追求高可靠性,而是出现了差异化的需求。例如,在企业级存储出现后,最基础的功能需要提供块存储和文件存储服务,其中,块存储可提供给数据库软件使用,如Oracle数据库;而文件存储服务更广泛一些,如用户文件共享,或网站应用存储非结构化数据。
近年云计算发展迅速,块存储在虚拟机中的应用也越来越多。对象存储服务相对文件存储更加简单,同时也满足网站应用存储非结构化数据的需求,应用也越来越广。上述数据库、虚拟机、网站应用等传统业务,要求企业存储有尽可能高的数据可靠性。
而对于一些新兴业务,则对企业级存储的要求有了变化。例如,人工智能、芯片设计、动画制作等领域,具有计算量大,耗时长,过程数据多,由一个一个的任务组成的特点。这就导致任务完成得越快,给用户带来的体验越好,效率越高。
如图1所示,从存储的角度出发,上述新兴业务涉及到三种数据类型:原始数据、过程数据、最终数据。其中,原始数据与最终数据的重要程度较高,因此,需要采取高可靠性存储策略,而过程数据的重要程度相对较低,可采取高性能存储策略。此处应理解的是,高可靠存储策略侧重于数据的可靠性,继而存储数据的速度较慢;而高性能存储策略则侧重于数据的存储效率,继而存储数据的速度较快。
例如,对于人工智能领域的机器学习模型进行训练时,其使用的原始数据为经标注的样本数据,最终数据是训练完成的网络模型,其余数据则被称为过程数据。
又例如,对于动画制作领域,涉及的素材、贴图、纹理等属于原始数据,制作完成的动画为最终数据,渲染过程中产生的数据被称为过程数据。
由于原始数据和最终数据对存储系统可靠性较高,因此,与传统应用一样,需要极致的可靠性;而对于过程数据,则没有较高的可靠性要求,因为即便存储的数据出现异常,只要将这个任务重新运行一次,也能够得到最终数据。因此,为了提升部分新兴业务的执行效率,在本实施例将中间数据进行高性能存储。
需要注意的是,以上现有技术中的方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本申请实施例针对上述问题所提出的解决方案,都应该是发明人在发明创造过程中对本申请做出的贡献,而不应当理解为本领域技术人员所公知的技术内容。
鉴于此,本实施例提供的数据存储方法,可以应用于数据存储设备。其中,该数据存储设备可以是,但不限于,移动终端、平板计算机、膝上型计算机、台式电脑以及服务器等。当存储设备为服务器时,该服务器可以是单个服务器,也可以是服务器组。服务器组可以是集中式的,也可以是分布式的(例如,服务器可以是分布式系统)。在一些实施例中,服务器相对于用户终端,可以是本地的、也可以是远程的。在一些实施例中,服务器可以在云平台上实现;仅作为示例,云平台可以包括私有云、公有云、混合云、社区云(CommunityCloud)、分布式云、跨云(Inter-Cloud)、多云(Multi-Cloud)等,或者它们的任意组合。在一些实施例中,服务器可以在具有一个或多个组件的电子设备上实现。
基于以上介绍,下面结合图2对本实施例提供的存储方法进行详细阐述。但应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。如图2所示,该方法包括:
S101,响应目标业务的运行请求,启动目标业务。
如图3所示,本实施例中的目标业务可以运行于云端的存储设备102,并且,目标业务所需的原始数据、业务运行期间产生的过程数据以及业务运行后产生的最终数据均存储在云端的存储设备102。本地的用户终端101与云端的存储设备102通过网络通信连接,使得用户可以通过该用户终端101访问云端的存储设备102,并对运行在云端的目标业务进行控制。
示例性的,假定该存储设备102提供有足够的算力,该目标任务为神经网路模型的训练任务,则用户可以通过用户终端101登录存储设备102后,使用该存储设备102的算力对神经网络模型进行训练,训练过程中使用到的样本数据、产生的过程数据以及最终训练出的目标模型均存储在云端。
S102,确定出目标业务运行期间产生的过程数据。
其中,目标业务基于输入的原始数据生成过程数据,并基于过程数据生成最终数据。对步骤S102进行详细介绍之前,首先应理解的是,目标业务运行期间不仅会生成过程数据,还会生成最终数据,而为了对两者采取不同的存储策略,首先需要能够识别两种数据。对此,本实施例针对不同的实施场景,提供了以下识别方式。
研究发现,一些目标业务在运行期间生成的过程数据与最终数据没有固定的存储规律。例如,没有将过程数据与最终数据分别存储在不同的文件夹中。对此,本实施例以目标业务生成的各业务数据为研究对象,提供步骤S102的以下实施方式:
S102-1A,获取业务数据的数据特征。
其中,业务数据由目标业务在运行期间基于原始数据生成。
S102-2A,若数据特征与过程数据的特征相匹配,则将业务数据确定为目标业务运行期间产生的过程数据。
示例性的,当目标业务运行期间生成的取业务数据为一个一个独立的业务文件时,相应的数据特征可以包括业务文件的后缀名、文件名、业务文件所属文件夹的名称。此时,过程数据的特征则可以包括预设的临时后缀名、临时文件夹名称以及临时文件名,下面就每种过程数据的特征分别进行介绍:
临时后缀名可以包括“.tmp”、“._mp”、“.log”、“.old”、“.bak”等;
临时文件夹名称可以包括“temp”、“Temporary”、“*temp*”、“*tmp*”、“cache”等;其中,“*tmp*”中的“*”表示任意字符或者字符串,例如,“traintmp”。
临时文件名则可以包括“*log”、“*tmp*”、“*temp*”等。
然后,对于目标业务在内存中生成的每个业务文件,存储系统获取该业务文件的后缀名、文件名、用于存储该业务文件的文件夹名称,将这些信息与上述临时后缀名、临时文件夹名称以及临时文件名进行匹配;若与三者中的任意一种或者多种匹配成功,则将该业务文件判定为过程数据。
另外,本实施例中的存储设备还提供有相应的配置界面,用户可以根据自身对目标业务的熟悉程度,在该配置界面中对上述临时后缀名中、临时文件夹名称以及临时文件名中的至少一种进行配置。当然,用户在进行配置时,除了上述示例中所列举的临时后缀名、临时文件夹名称以及临时文件名称,还可以依据自身对目标业务的熟悉情况,配置其他临时后缀名、临时文件夹名称以及临时文件名称。例如,假定目标业务为Word编辑程序,若该程序生成的Word文件的文件名中包括有符号“~$”,则该Word文件为Word编辑程序运行期间生成的过程数据。
以上临时后缀名、临时文件夹名称以及临时文件名等,均是开发人员或者用户根据自身经验预先设置的;但研究发现,一些目标业务在生成业务文件时,文件名称、后缀名可能并不符合上述规律,并且用户对该目标业务程序也并不熟悉,即并不完全知晓该目标业务生成的业务文件中,哪些属于过程数据。鉴于此,本实施例还提供了自主学习模式,用于总结目标业务的生成的过程数据所具备的规律。
因此,在本实施例中,存储设备获取目标业务在历史运行期间被执行预设操作的历史业务数据;根据历史业务数据,统计出过程数据的特征,其中,预设操作包括删除操作、仅有的写入操作中的至少一种。
此处应理解的是,一些目标业务在运行期间,会自己清理不再需要的过程数据,因此,存储设备提供有自主学习模式,当用户对目标业务并不熟悉时,可以开启自主学习模式。在自主学习模式下,存储设备获取这些删除的历史业务数据,并对这些被删除的历史业务数据的数据特征进行统计,获得过程数据的特征。
示例性的,该存储设备可以统计被删除的历史业务数据的后缀名、文件名、所在文件夹分别具有的共同特征。例如,经过统计之后发现,凡是文件后缀名为“.tf”(temp file)的业务文件都被进行了删除,则将“.tf”作为一条过程数据的特征。在后续运行该目标业务时,一旦检测到后缀名为“.tf”的业务文件,则将其确定为目标业务的过程数据。
又例如,经过统计之后发现,名为“other”的文件夹在目标业务运行完成后均被进行了删除,则将名为“other”的文件夹确定为一条过程数据的特征。在后续运行该目标业务时,一旦检测到写入该文件夹的业务文件,则将其确定为目标业务的过程数据。当然,以上示例仅仅是为了便于理解所列举的是示例。除此之外,还可以统计被删除的历史业务文件的文件名称,获得其他过程数据的特征。例如,将统计出的目标字符确定为一条过程数据的特征,当业务文件的文件名中包括有该目标字符,则将该业务文家确定为过程数据。
然而,一些目标业务并不会对过程数据进行清理,对此,研究还发现,凡是过程数据被生成之后,至少会被读取一次,用于生成最终数据;而最终数据往往只会有写入操作,而不会有读取操作。
基于这一发现,继续假定目标业务生成的过程数据与最终数据为一个一个的业务文件,该存储设备统计出只有写入操作的业务文件,将其视为目标业务的最终数据,而将剩余的业务文件视为过程数据;然后,按照上述事例中的统计策略,统计出过程数据的特征。
另外,值得说明的是,在一些情况下可能会出现统计误差,因此,该存储设备还可以将统计出的过程数据的特征提供给用户,以便用户做进一步的确认编辑。
在另一实施方式中,研究还发现一些目标业务的典型操作会生成过程数据,并且相应过程数据的存储位置具有规律可循。另外,在一些实施场景中,用户还可以指定特定的存储位置,将写入该存储位置的业务数据均视为过程数据。此时,步骤S102的具体实施方式包括:
S102-1B,获取业务数据的写入位置。
其中,业务数据由目标业务在运行期间基于原始数据生成。
S102-2B,若写入位置为预设的目标存储位置,则将业务数据确定为目标业务运行期间产生的过程数据。
示例性的,假定用户启动的目标业务为解压程序,存储设备在收到读取压缩文件(如file1.zip)的请求之后,监测带有该文件名(file1)的路径,将该路径下所生成的文件,识别为过程数据。例如,用户可以将存储路径“/mnt/tmp”配置为动画制作过程中过程数据专用的目标存储位置。此处应理解的是,动画制作时的原始素材是经压缩后存放的,若压缩包有2TB,解压之后可能达到10TB。若采取高可靠性存储策略一次性存储10TB的数据需要花费很长的时间,因此,用户可以将其解压到“/mnt/tmp”。由于该存储路径下采取高性能存储策略,从而能够极大提升原始素材的解压效率。
又或者,该存储设备还提供有路径配置界面,通过该路径配置界面接收用户指定的目标存储位置,然后,目标业务期间凡是写入该目标存储位置的业务数据均被视为过程数据。其中,该目标存储位置可以是用户指定的目标存储路径或者目标存储桶。其中,存储桶(Bucket)为对象存储的载体,可理解为存放对象的“容器”,且该“容器”可以无容量上限。对象可以以扁平化结构存放在存储桶中,无文件夹和目录的概念,用户可选择将对象存放到单个或多个存储桶中。存储设备还可以接收用户对存储桶的配置操作,对创建的存储桶进行配置,例如,配置存储桶的名称、存储桶所属地域、存储桶的访问权限等中的至少一种。
在另一实施方式中,研究还发现,目标业务在运行期间会与其他网络设备进行数据交互,但该交互过程中并非所有的业务数据均需要以高可靠策略进行存储。鉴于此,步骤S102的具体实施方式包括:
S102-1C,获取目标业务运行期间接收到的交互请求。
S102-2C,若交互请求中包括预设的附加字段,则将与交互请求关联的业务数据确定为目标业务运行期间产生的过程数据。
示例性的,以存储领域AWS提出的S3协议为例,该协议属于http协议,可以对header字段进行扩展,增加预设的附加字段。如此,存储设备在接收到交互请时,解析该请中是否携带有该附加字段;若有,则将与该交互请求关联的业务数据确定为过程数据。其中,与该交互请求关联的业务数据可以是该请求中包括的图片、音频、视频、文件等;还可以是存储设备处理该交互请求过程中产生的业务数据。
基于上述关于过程数据的介绍,继续参见图2,本实施例提供的数据存储方法还包括:
S103,将过程数据采取高性能策略进行存储。
其中,高性能策略的存储效率高于高可靠策略的存储效率,而低于高可靠策略的存储可靠性。为使方案更易于理解,下面就高性能存储策略与稿效率可靠存储策略进行示例性说明:
例如,相较于高可靠存储策略,高性能存储策略可以降低数据冗余度。例如,如将3副本冗余减少为1副本冗余,存在的可靠性风险为硬盘故障后,也就意味着只需要存储1份副本,从而提高了数据存储效率;但一旦出现异常使得硬盘中的数据丢失,则无法进行恢复,也意味着降低了数据存储时的可靠程度。
又例如,相较于可靠性存储策略,高性能存储策略可以在数据写入内存中便返回用户成功,从而提高数据存储效率;但数据写入节点发生故障时,内存中的则会丢失,也意味着低了数据存储时的可靠程度。
如此,在目标业务运行期间,识别该目标业务生成的过程数据,将过程数据以高性能存储策略进行存储,从而节省了数据存储时间,达到提升目标业务执行效率的目的。
在目标业务启动后,存储设备扫描各个存储节点的状态,确定在线的存储节点,并从在线的存储节点中选取目标存储节点用于为过程数据提供支持高性能存储策略的存储空间。然而,由于过程数据未采取高可靠存储策略,一旦部分目标存储节点发生异常,则意味着发生不可逆的数据丢失。此时,若目标业务继续运行下去,则会导致无法生成最终数据。
鉴于此,如图4所示,本实施例提供的数据存储方法还包括:
S104,检测过程数据的存储状态。
S105若存储状态满足异常条件,则清除过程数据并向用户发出异常通知,以使用户重新运行目标业务。
示例性的,假定目标业务的过程数据存在4个目标存储节点中,若检测到其中的目标存储节点发生掉线,则提示用户过程数据的存储状态发生异常。用户在得知过程数据的存储状态发生异常后,重新运行该目标业务得到新的过程数据,并基于新的过程数据得到目标业务的最终数据。
由于过程数据在生成之后,会被至少读取一次用于生成最终数据,而硬盘的读取效率远远低于内存的读取效率,因此,为了提升目标业务的执行效率,本实施例还为过程数据提供有缓存空间。
可选实施方式中,可以采取LRU(Least Recently Used)的方式管理缓存的过程数据。如图5所示,在LRU算法中,使用哈希链表来管理数据,哈希链表的每个节点为“<Key,Value>”形式的键值对,哈希链表按照数据的使用频率将将这些节点依次链接起来。
如图6所示,当图5中的“<Key2,Value2>”被读取,则将“<Key2,Value2>”从哈希链表的原节点位置抽离,插入到哈希链表的最右侧。如此,长期位于哈希链表左侧的节点表示长期不被使用的节点。
并且,为了提高过程数据的查询效率,本实施例中依据多个常见目标业务的存储访问模型,设置四个LRU结构,分别存放已被命中(读取)0次(即初次写入)、1次、2次、3次及以上的过程数据。对于同一过程数据,其具体实施方式包括:
过程数据初次写入,放入0次LRU中
被读取1次,在0次LRU中命中,移入1次LRU
被读取2次,在1次LRU中命中,移入2次LRU
被读取3次,在2次LRU中命中,移入3次LRU
被读取4次,在3次LRU中命中,则将该过程数据移动到3次LRU的头部(最近访问)。
并且,本实施例为每个LRU绑定一个布隆过滤器,用于快速判断需要读取的过程数据是否存在于当前的LRU中。进一步地,布隆过滤器有多个Hash算法,而本示例中,4个LRU绑定的布隆过滤器使用相同的Hash算法。如此,若查询到待读取的过程数据不在0次LRU中,则需要进一步查询1次LRU,由于4个LRU绑定的布隆过滤器使用相同的Hash算法,从而不用再重新计算布隆过滤器的Hash值,提高了查询效率。
基于上述介绍,如图7所示,本实施例提供的数据存储方法还包括:
S106,若缓存空间的状态满足释放条件,则获取缓存空间中每种目标过程数据的访问次数。
其中,每种目标过程数据的为具有至少1次访问次数的过程数据。此处,应理解的是,过程数据需要被至少读取至少一次,因此,即便需要释放缓存空间,也需要继续留存0次被读取的过程数据。
本实施例中的释放条件可以是,缓存空间剩余的容量小于设定的阈值,或者,距离上次释放缓存空间的时长大于时长阈值。当然,该释放条件不仅限于此,技术人员在实施本方案时,可以进行适应性调整。
S107,根据每种目标过程数据的访问次数,将缓存空间中的目标过程数据归类为多个数据集。
S108,分别根据每个数据集的释放比例,将每个数据集中的目标过程数据按照空闲时长由高到低的顺序进行清除。
其中,每个数据集的释放比例与数据集对应的访问次数成正相关。
继续上述示例中划分的3个数据集为例,经过大量的统计发现,被读取3次以上的过程数据,目标业务运行期间中再次被读取的概率较小,而被读取1次的过程数据,目标业务运行期间再次被读取的概率较大,因此,的释放比例可以设为5%,的释放比例可以设为10%,的释放比例可以设为85%。如此,既能回收一部分缓存空间,而又不会给目标业务的运行产生过于明显的影响。
在上述实施方中详细介绍了数据存储方法,在相同的发明构思,本实施例还提供一种数据存储装置。数据存储装置包括至少一个可以软件形式存储于存储器或固化在存储设备的操作系统(Operating System,简称OS)中的软件功能模块。存储设备中的处理器用于执行存储器中存储的可执行模块。例如,数据存储装置所包括的软件功能模块及计算机程序等。请参照图8,从功能上划分,数据存储装置可以包括:
业务启动模块201,用于响应目标业务的运行请求,启动目标业务。
在本实施例中,业务启动模块201用于实现图2中的步骤S101,关于该业务启动模块201的详细描述,可以参见步骤S101的详细描述。
过程数据模块202,用于确定出目标业务运行期间产生的过程数据,其中,目标业务基于输入的原始数据生成过程数据,并基于过程数据生成最终数据。
在本实施例中,过程数据模块202用于实现图2中的步骤S102,关于该过程数据模块202的详细描述,可以参见步骤S102的详细描述。
数据存储模块203,用于将过程数据采取高性能策略进行存储,其中,高性能策略的存储效率高于高可靠策略的存储效率,而低于高可靠策略的存储可靠性。
在本实施例中,数据存储模块203用于实现图2中的步骤S103,关于该数据存储模块203的详细描述可以参见步骤S103的详细描述。
另外,应理解的是,由于与数据存储方法具有相同的发明构思,因此,以上业务启动模块201、过程数据模块202、数据存储模块203还可以用于实现该数据存储方法的其他步骤或者子步骤。对此,本实施例不在进行赘述,可以参见数据存储方法的详细介绍。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
还应理解的是,以上实施方式如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
因此,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时,实现本实施例提供的数据存储方法。其中,该计算机可读存储介质可以是U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
请参照图8,本实施例还提供的一种存储设备。该存储设备可包括处理器302及存储器301。并且,存储器301存储有计算机程序,处理器通过读取并执行存储器301中与以上实施方式对应的计算机程序,实现本实施例所提供的数据存储方法。
继续参见图9,该存储设备还可以包括有通信单元303。以上该存储器301、处理器302以及通信单元303各元件相互之间通过系统总线304直接或间接地通信连接,以实现数据的传输或交互。
其中,该存储器301可以是基于任何电子、磁性、光学或其它物理原理的信息记录装置,用于记录执行指令、数据等。在一些实施方式中,该存储器301可以是,但不限于,易失存储器、非易失性存储器、存储驱动器等。
在一些实施方式中,该易失存储器可以是随机存取存储器(Random AccessMemory,RAM);在一些实施方式中,该非易失性存储器可以是只读存储器(Read OnlyMemory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)、闪存等;在一些实施方式中,该存储驱动器可以是磁盘驱动器、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合等。
该通信单元303用于通过网络收发数据。在一些实施方式中,该网络可以包括有线网络、无线网络、光纤网络、远程通信网络、内联网、因特网、局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、无线局域网(Wireless Local Area Networks,WLAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、公共电话交换网(Public Switched Telephone Network,PSTN)、蓝牙网络、ZigBee网络、或近场通信(Near Field Communication,NFC)网络等,或其任意组合。在一些实施例中,网络可以包括一个或多个网络接入点。例如,网络可以包括有线或无线网络接入点,例如基站和/或网络交换节点,服务请求处理系统的一个或多个组件可以通过该接入点连接到网络以交换数据和/或信息。
该处理器302可能是一种集成电路芯片,具有信号的处理能力,并且,该处理器可以包括一个或多个处理核(例如,单核处理器或多核处理器)。仅作为举例,上述处理器可以包括中央处理单元(Central Processing Unit,CPU)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、专用指令集处理器(Application SpecificInstruction-set Processor,ASIP)、图形处理单元(Graphics Processing Unit,GPU)、物理处理单元(Physics Processing Unit,PPU)、数字信号处理器 (Digital SignalProcessor,DSP)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、可编程逻辑器件(Programmable Logic Device,PLD)、控制器、微控制器单元、简化指令集计算机(Reduced Instruction Set Computing,RISC)、或微处理器等,或其任意组合。
应该理解到的是,在上述实施方式中所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上所述,仅为本申请的各种实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种数据存储方法,其特征在于,所述方法包括:
响应目标业务的运行请求,启动所述目标业务;
确定出所述目标业务运行期间产生的过程数据,其中,所述目标业务基于输入的原始数据生成所述过程数据,并基于所述过程数据生成最终数据;
将所述过程数据采取高性能策略进行存储,其中,所述高性能策略的存储效率高于高可靠策略的存储效率,而低于所述高可靠策略的存储可靠性。
2.根据权利要求1所述的数据存储方法,其特征在于,所述方法还包括:
检测所述过程数据的存储状态;
若所述存储状态满足异常条件,则清除所述过程数据并向用户发出异常通知,以使用户重新运行所述目标业务。
3.根据权利要求1所述的数据存储方法,其特征在于,所述确定出所述目标业务运行期间产生的过程数据,包括:
获取业务数据的数据特征,其中,所述业务数据由所述目标业务在运行期间基于所述原始数据生成;
若所述数据特征与过程数据的特征相匹配,则将所述业务数据确定为所述目标业务运行期间产生的过程数据。
4.根据权利要求3所述的数据存储方法,其特征在于,所述方法还包括:
获取所述目标业务在历史运行期间被执行预设操作的历史业务数据,其中,所述预设操作包括删除操作、仅有的写入操作中的至少一种;
根据所述历史业务数据,统计出所述过程数据的特征。
5.根据权利要求1所述的数据存储方法,其特征在于,所述确定出所述目标业务运行期间产生的过程数据,包括:
获取业务数据的写入位置,其中,所述业务数据由所述目标业务在运行期间基于所述原始数据生成;
若所述写入位置为预设的目标存储位置,则将所述业务数据确定为所述目标业务运行期间产生的过程数据。
6.根据权利要求1所述的数据存储方法,其特征在于,所述确定出所述目标业务运行期间产生的过程数据,包括:
获取所述目标业务运行期间接收到的交互请求;
若所述交互请求中包括预设的附加字段,则将与所述交互请求关联的业务数据确定为所述目标业务运行期间产生的过程数据。
7.根据权利要求1所述的数据存储方法,其特征在于,为所述过程数据提供有缓存空间,所述方法还包括:
若所述缓存空间的状态满足释放条件,则获取所述缓存空间中每种目标过程数据的访问次数,其中,每种目标过程数据的为具有至少1次访问次数的过程数据;
根据每种目标过程数据的访问次数,将所述缓存空间中的目标过程数据归类为多个数据集;
分别根据每个所述数据集的释放比例,将每个数据集中的目标过程数据按照空闲时长由高到低的顺序进行清除,其中,每个所述数据集的释放比例与所述数据集对应的访问次数成正相关。
8.一种数据存储装置,其特征在于,所述装置包括:
业务启动模块,用于响应目标业务的运行请求,启动所述目标业务;
过程数据模块,用于确定出所述目标业务运行期间产生的过程数据,其中,所述目标业务基于输入的原始数据生成所述过程数据,并基于所述过程数据生成最终数据;
数据存储模块,用于将所述过程数据采取高性能策略进行存储,其中,所述高性能策略的存储效率高于高可靠策略的存储效率,而低于所述高可靠策略的存储可靠性。
9.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求1-7任意一项所述的数据存储方法。
10.一种存储设备,其特征在于,所述存储设备包括处理器以及存储器,所述存储器存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求1-7任意一项所述的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211575663.7A CN115576503B (zh) | 2022-12-09 | 2022-12-09 | 数据存储方法、装置、存储介质及存储设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211575663.7A CN115576503B (zh) | 2022-12-09 | 2022-12-09 | 数据存储方法、装置、存储介质及存储设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115576503A true CN115576503A (zh) | 2023-01-06 |
CN115576503B CN115576503B (zh) | 2023-04-14 |
Family
ID=84590417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211575663.7A Active CN115576503B (zh) | 2022-12-09 | 2022-12-09 | 数据存储方法、装置、存储介质及存储设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115576503B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140040182A1 (en) * | 2008-08-26 | 2014-02-06 | Zeewise, Inc. | Systems and methods for collection and consolidation of heterogeneous remote business data using dynamic data handling |
US20210133166A1 (en) * | 2019-10-31 | 2021-05-06 | EMC IP Holding Company LLC | Similarity hash for binary data pages |
CN113806594A (zh) * | 2020-12-30 | 2021-12-17 | 京东科技控股股份有限公司 | 基于决策树的业务数据处理方法、装置、设备及存储介质 |
CN114022711A (zh) * | 2021-11-05 | 2022-02-08 | 中国电信股份有限公司 | 工业标识数据缓存处理方法及装置、介质及电子设备 |
WO2022063284A1 (zh) * | 2020-09-28 | 2022-03-31 | 京东科技控股股份有限公司 | 数据同步方法、装置、设备及计算机可读介质 |
CN114296646A (zh) * | 2021-12-24 | 2022-04-08 | 天翼云科技有限公司 | 基于io业务的缓存方法、装置、服务器和存储介质 |
CN114860745A (zh) * | 2022-05-10 | 2022-08-05 | 平安科技(深圳)有限公司 | 基于人工智能的数据库扩展方法及相关设备 |
-
2022
- 2022-12-09 CN CN202211575663.7A patent/CN115576503B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140040182A1 (en) * | 2008-08-26 | 2014-02-06 | Zeewise, Inc. | Systems and methods for collection and consolidation of heterogeneous remote business data using dynamic data handling |
US20210133166A1 (en) * | 2019-10-31 | 2021-05-06 | EMC IP Holding Company LLC | Similarity hash for binary data pages |
WO2022063284A1 (zh) * | 2020-09-28 | 2022-03-31 | 京东科技控股股份有限公司 | 数据同步方法、装置、设备及计算机可读介质 |
CN113806594A (zh) * | 2020-12-30 | 2021-12-17 | 京东科技控股股份有限公司 | 基于决策树的业务数据处理方法、装置、设备及存储介质 |
CN114022711A (zh) * | 2021-11-05 | 2022-02-08 | 中国电信股份有限公司 | 工业标识数据缓存处理方法及装置、介质及电子设备 |
CN114296646A (zh) * | 2021-12-24 | 2022-04-08 | 天翼云科技有限公司 | 基于io业务的缓存方法、装置、服务器和存储介质 |
CN114860745A (zh) * | 2022-05-10 | 2022-08-05 | 平安科技(深圳)有限公司 | 基于人工智能的数据库扩展方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115576503B (zh) | 2023-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10437672B2 (en) | Erasure coding and replication in storage clusters | |
TWI474164B (zh) | 自同級裝置及雲端之差異式檔案及系統復原 | |
CN107544862B (zh) | 一种基于纠删码的存储数据重构方法和装置、存储节点 | |
CN107807794B (zh) | 一种数据存储方法和装置 | |
US20150213100A1 (en) | Data synchronization method and system | |
US10862672B2 (en) | Witness blocks in blockchain applications | |
US20190317872A1 (en) | Database cluster architecture based on dual port solid state disk | |
CN110727404A (zh) | 一种基于存储端的数据重删方法、设备以及存储介质 | |
CN110888837B (zh) | 对象存储小文件归并方法及装置 | |
CN104965835A (zh) | 一种分布式文件系统的文件读写方法及装置 | |
CN115098447A (zh) | 文件恢复方法、装置、电子设备及可读存储介质 | |
WO2009031158A2 (en) | Method and apparatus for network based data recovery | |
CN115576503B (zh) | 数据存储方法、装置、存储介质及存储设备 | |
JP6671708B2 (ja) | バックアップリストアシステム及びバックアップリストア方法 | |
JP2010170475A (ja) | ストレージシステム、ストレージシステムにおけるデータ書込方法及びデータ書込プログラム | |
US10241878B2 (en) | System and method of data allocation providing increased reliability of storage | |
CN113535482A (zh) | 云备份链数据备份、管理方法及装置、设备、可读介质 | |
CN108769123B (zh) | 一种数据系统及数据处理方法 | |
CN111026720A (zh) | 一种文件处理方法、系统及相关设备 | |
KR20200101594A (ko) | 분산 파일 시스템에서 클라이언트 기반의 실시간 데이터 복구에 기반한 디코딩 처리 방법 및 이를 위한 장치 | |
EP4369658A2 (en) | Method of storing blockchain transaction data using fountain codes and apparatus for the same | |
WO2024082773A1 (zh) | 一种迁移文件系统的方法和相关设备 | |
WO2015040711A1 (ja) | ストレージ装置、ストレージ装置におけるデータの制御方法、及びストレージシステム | |
CN107463336B (zh) | 一种ssd缓存中固态磁盘失效的处理方法及系统 | |
WO2013136584A1 (ja) | データ転送システム |
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 |