CN116301663A - 一种数据存储方法、装置及主机 - Google Patents
一种数据存储方法、装置及主机 Download PDFInfo
- Publication number
- CN116301663A CN116301663A CN202310537671.0A CN202310537671A CN116301663A CN 116301663 A CN116301663 A CN 116301663A CN 202310537671 A CN202310537671 A CN 202310537671A CN 116301663 A CN116301663 A CN 116301663A
- Authority
- CN
- China
- Prior art keywords
- data
- updated
- update log
- dpu
- cpu
- 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
- 238000000034 method Methods 0.000 title claims abstract description 90
- 238000013500 data storage Methods 0.000 title claims abstract description 56
- 238000012545 processing Methods 0.000 claims abstract description 11
- 230000026676 system process Effects 0.000 claims description 20
- 238000012544 monitoring process Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method 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
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 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/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/0625—Power saving in 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/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]
-
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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/5083—Techniques for rebalancing the load in a distributed system
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据存储方法、装置及主机,涉及数据处理技术领域,上述方法包括:CPU在监控到应用程序执行写操作时,获取应用程序执行写操作时输入的待更新数据;将待更新数据对应的更新日志写入主机的内存,更新日志包括待更新数据和待更新数据的元数据;向DPU发送内存中存储的更新日志;DPU根据更新日志包括的元数据,存储更新日志包括的待更新数据。应用本申请实施例提供的技术方案可以降低CPU的资源消耗,降低存储访问时延。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据存储方法、装置及主机。
背景技术
分布式存储系统因具有较高的可靠性、可用性、存取效率和扩展性,被广泛用于存储服务中。目前,分布式存储系统中,由主机CPU(Central Processing Unit,中央处理器)实现数据的本地落盘和远程复制。随着存储服务需要处理的数据量不断增长,CPU性能的增长已无法满足数据量增长的需求,这种情况下,主机上各种应用程序会相互抢占CPU资源和内存资源,导致CPU频繁进行上下文切换和调度,增大了CPU资源消耗,增大了存储访问时延。此外,主机CPU采用同步进程进行数据的本地落盘和远程复制,这也会大大增加存储访问时延。
发明内容
本申请实施例的目的在于提供一种数据存储方法、装置及主机,以降低CPU的资源消耗,降低存储访问时延。具体技术方案如下:
第一方面,本申请提供了一种数据存储方法,应用于主机的CPU,所述主机还包括DPU(Data Processing Unit,数据中心处理器);所述方法包括:
在监控到应用程序执行写操作时,获取所述应用程序执行写操作时输入的待更新数据;
将所述待更新数据对应的更新日志写入所述主机的内存,所述更新日志包括所述待更新数据和所述待更新数据的元数据;
向所述DPU发送所述内存中存储的所述更新日志,以使所述DPU根据所述更新日志包括的元数据,存储所述更新日志包括的待更新数据。
在一些实施例中,所述向所述DPU发送所述内存中存储的所述更新日志的步骤,包括:
合并所述内存中存储的多条更新日志,得到合并日志;
向所述DPU发送所述合并日志,以使所述DPU将所述合并日志拆分为多条更新日志,根据拆分得到的每条更新日志包括的元数据,存储每条更新日志包括的待更新数据。
在一些实施例中,所述方法还包括:
监控所述内存中存储的更新日志是否满足预设条件;当满足所述预设条件时,执行所述向所述DPU发送所述内存中存储的所述更新日志的步骤;
所述预设条件包括以下至少一项:
所述写操作完成;
所述内存中存储的更新日志的数据量总和达到预设数据量;
距离上一次发送更新日志的时长达到预设时长;
所述内存中存储的更新日志的条数达到预设条数。
在一些实施例中,所述方法还包括:
在所述将所述待更新数据对应的更新日志写入所述主机的内存的步骤之前,为所述待更新数据分配系统进程,并为所述系统进程分配时间片;
在所述将所述待更新数据对应的更新日志写入所述主机的内存的步骤之后,释放所述时间片。
第二方面,本申请提供了一种数据存储方法,应用于主机的DPU,所述主机还包括CPU;所述方法包括:
接收所述CPU发送的更新日志,所述更新日志为:所述CPU在监控到应用程序执行写操作时,根据所述应用程序执行写操作时输入的待更新数据生成的日志,所述更新日志包括所述待更新数据和所述待更新数据的元数据;
根据所述更新日志包括的元数据,存储所述更新日志包括的待更新数据。
在一些实施例中,所述接收所述CPU发送的更新日志的步骤,包括:
接收所述CPU发送的合并日志,所述合并日志为所述CPU合并多条更新日志得到的日志;
所述根据所述更新日志包括的元数据,存储所述更新日志包括的待更新数据的步骤,包括:
将所述合并日志拆分为多条更新日志;
根据拆分得到的每条更新日志包括的元数据,存储每条更新日志包括的待更新数据。
在一些实施例中,所述根据所述更新日志包括的元数据,存储所述更新日志包括的待更新数据的步骤,包括:
根据所述更新日志包括的元数据,确定所述待更新数据的存储位置;
在所述存储位置位于所述主机上时,将所述待更新数据存储到所述主机上的所述存储位置;
在所述存储位置位于远端主机上时,将所述待更新数据进行压缩,得到压缩后数据,将所述压缩后数据传输到所述远端主机,以使所述远端主机解压缩所述压缩后数据,得到所述待更新数据,并存储所述待更新数据。
在一些实施例中,在所述存储所述更新日志包括的待更新数据的步骤之后,还包括:
向所述CPU返回更新结果信息,所述更新结果信息表示所述DPU是否成功存储所述待更新数据。
第三方面,本申请提供了一种数据存储装置,应用于主机的CPU,所述主机还包括DPU;所述装置包括:
获取模块,用于在监控到应用程序执行写操作时,获取所述应用程序执行写操作时输入的待更新数据;
写入模块,用于将所述待更新数据对应的更新日志写入所述主机的内存,所述更新日志包括所述待更新数据和所述待更新数据的元数据;
发送模块,用于向所述DPU发送所述内存中存储的所述更新日志,以使所述DPU根据所述更新日志包括的元数据,存储所述更新日志包括的待更新数据。
在一些实施例中,所述发送模块,具体用于:
合并所述内存中存储的多条更新日志,得到合并日志;
向所述DPU发送所述合并日志,以使所述DPU将所述合并日志拆分为多条更新日志,根据拆分得到的每条更新日志包括的元数据,存储每条更新日志包括的待更新数据。
在一些实施例中,所述装置还包括:
监控模块,用于监控所述内存中存储的更新日志是否满足预设条件;当满足所述预设条件时,触发所述发送模块;
所述预设条件包括以下至少一项:
所述写操作完成;
所述内存中存储的更新日志的数据量总和达到预设数据量;
距离上一次发送更新日志的时长达到预设时长;
所述内存中存储的更新日志的条数达到预设条数。
在一些实施例中,所述写入模块还用于:
在执行所述将所述待更新数据对应的更新日志写入所述主机的内存的步骤之前,为所述待更新数据分配系统进程,并为所述系统进程分配时间片;
在执行所述将所述待更新数据对应的更新日志写入所述主机的内存的步骤之后,释放所述时间片。
第四方面,本申请提供了一种数据存储装置,应用于主机的DPU,所述主机还包括CPU;所述装置包括:
接收模块,用于接收所述CPU发送的更新日志,所述更新日志为:所述CPU在监控到应用程序执行写操作时,根据所述应用程序执行写操作时输入的待更新数据生成的日志,所述更新日志包括所述待更新数据和所述待更新数据的元数据;
存储模块,用于根据所述更新日志包括的元数据,存储所述更新日志包括的待更新数据。
在一些实施例中,所述接收模块,具体用于:
接收所述CPU发送的合并日志,所述合并日志为所述CPU合并多条更新日志得到的日志;
所述存储模块,具体用于:
将所述合并日志拆分为多条更新日志;
根据拆分得到的每条更新日志包括的元数据,存储每条更新日志包括的待更新数据。
在一些实施例中,所述存储模块,具体用于:
根据所述更新日志包括的元数据,确定所述待更新数据的存储位置;
在所述存储位置位于所述主机上时,将所述待更新数据存储到所述主机上的所述存储位置;
在所述存储位置位于远端主机上时,将所述待更新数据进行压缩,得到压缩后数据,将所述压缩后数据传输到所述远端主机,以使所述远端主机解压缩所述压缩后数据,得到所述待更新数据,并存储所述待更新数据。
在一些实施例中,所述存储模块还用于:
向所述CPU返回更新结果信息,所述更新结果信息表示所述DPU是否成功存储所述待更新数据。
第五方面,本申请提供了一种主机,包括CPU和DPU,所述CPU执行第一方面所述的任一方法步骤,所述DPU执行第二方面所述的任一方法步骤。
本申请实施例有益效果:
本申请实施例提供的技术方案中,在分布式存储系统的主机中引入DPU,CPU将待更新数据以日志的形式存储至内存中,进而DPU基于更新日志包括的元数据,完成待更新数据的分布式存储,这实现了将存储负载卸载到DPU,减少了因CPU的IO操作带来的频繁上下文切换和调度,降低了CPU资源消耗和存储访问时延。此外,主机将存储负载卸载到DPU,可以实现通过异步进程进行数据的本地落盘和远程复制,CPU只需要将待更新数据写入内存即可,减少了对CPU的占用,进一步降低了存储访问时延,提升了分布式存储系统的整体性能。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为本申请实施例提供的数据存储方法的第一种流程示意图;
图2为本申请实施例提供的数据存储方法的第二种流程示意图;
图3为本申请实施例提供的DPU存储待更新数据的一种流程示意图;
图4为本申请实施例提供的数据存储方法的第三种流程示意图;
图5为本申请实施例提供的数据存储的一种流程示意图;
图6为本申请实施例提供的数据存储方法的第四种流程示意图;
图7为本申请实施例提供的数据存储方法的第五种流程示意图;
图8为本申请实施例提供的数据存储方法的第六种流程示意图;
图9为本申请实施例提供的数据存储方法的第七种流程示意图;
图10为本申请实施例提供的数据存储装置的第一种结构示意图;
图11为本申请实施例提供的数据存储装置的第二种结构示意图;
图12为本申请实施例提供的主机的一种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。
为便于理解,下面对本申请实施例中出现的词语进行解释说明。
CPU:计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
DPU:以数据为中心构造的专用处理器,采用软件定义技术路线支撑基础设施层资源虚拟化,支持存储、安全、服务质量管理等基础设施层服务。
PCIE(Peripheral Component Interconnect Express,外围组件互连高速):是一种高速串行计算机扩展总线标准。
分布式存储(Distributed Storage):一种数据存储技术,通过网络使用企业中每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在企业的各个角落。
元数据(Metadata):又称中介数据、中继数据,为描述数据的数据(data aboutdata),主要是描述数据属性(property)的信息,用来支持指示存储位置、管理用户数据的索引、配置等信息。
传统的存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,不能满足大规模存储应用的需要。目前,多租户的云计算系统已经成为数据中心的主要承载系统,在多租户的云计算系统中,多个应用程序共享计算和存储资源,存储资源分布式的存储在多个节点中。分布式存储系统将数据分散存储在多台独立的设备上,采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它具有较高的可靠性、可用性、存取效率和扩展性,被广泛用于存储服务中。
目前,分布式存储系统中,由主机CPU实现数据的本地落盘和远程复制。随着存储服务需要处理的数据量不断增长,CPU性能的增长已无法满足数据量增长的需求,存储的IO(Input/Output,输入/输出)密集型导致的CPU上下文切换成为消耗CPU的主要问题。并且,主机上各种应用程序会相互抢占CPU资源和内存资源,同样导致CPU频繁进行上下文切换和调度,增大了CPU资源消耗,增大了存储访问时延。此外,主机CPU采用同步进程进行数据的本地落盘和远程复制,这也会大大增加存储访问时延。
为了降低CPU的资源消耗,并降低存储访问时延,本申请实施例提供了一种数据存储方法,应用于分布式存储系统中的主机,上述主机包括:CPU和DPU。在分布式存储系统的主机中引入DPU,CPU将待更新数据以日志的形式存储至内存中,进而DPU基于更新日志包括的元数据,完成待更新数据的分布式存储,这实现了将存储负载卸载到DPU,减少了因CPU的IO操作带来的频繁上下文切换和调度,降低了CPU资源消耗和存储访问时延。此外,主机将存储负载卸载到DPU,可以实现通过异步进程进行数据的本地落盘和远程复制,CPU只需要将待更新数据写入内存即可,减少了对CPU的占用,进一步降低了存储访问时延,提升了分布式存储系统的整体性能。
下面通过具体实施例,对本申请实施例提供的数据存储方法进行详细说明。
参见图1,为本申请实施例提供的数据存储方法的第一种流程示意图,应用于分布式存储系统中的主机,上述主机包括:CPU和DPU。上述数据存储方法包括:
步骤S11,CPU在监控到应用程序执行写操作时,获取应用程序执行写操作时输入的待更新数据。
本申请实施例中,主机的CPU可以通过存储系统调用捕获应用程序执行的数据读操作和写操作,即通过监控主机存储系统调用,监控应用程序执行的操作。当监控到应用程序执行写操作时,CPU判断写入数据是否更新。当判定写入数据有更新时,CPU获取到更新的写入数据,该更新的写入数据即为应用程序执行写操作时所输入的待更新数据。当监控到应用程序执行读操作时,CPU通过内存读取在对应存储位置的读取数据,并将读取数据返回给应用程序。
CPU可以同时监控多个应用程序,当监控到任一应用程序执行写操作时,CPU获取该应用程序执行写操作时输入的待更新数据,对上述应用程序的数量不作限定。
步骤S12,CPU将待更新数据对应的更新日志写入主机的内存,更新日志包括待更新数据和待更新数据的元数据。
本申请实施例中,CPU获取待更新数据后,生成待更新数据的元数据,即生成描述待更新数据属性的信息。其中,元数据可以包括指示待更新数据的存储位置的信息,管理待更新数据的索引和配置的信息等,在此对元数据包括的信息不作限定。CPU生成待更新数据的元数据后,将待更新数据和待更新数据的元数据组成日志,本申请实施例中,将该日志称为更新日志。CPU将更新日志写入主机的内存,实现了将待更新数据和元数据以日志的形式暂存在内存中。
本申请实施例中,CPU可以并行对多个应用程序进行处理。为保证数据的准确存储,CPU将更新日志写入主机的内存后,建立更新日志与应用程序的关联关系,以便获知不同应用程序对应的更新日志。不同应用程序对应的更新日志的存储方式相同,后续仅以一个应用程序对应的更新日志的存储方式进行说明,并不起限定作用。
本申请实施例中,CPU获取待更新数据后,可以为该待更新数据分配系统进程,并为该系统进程分配时间片。CPU使用该系统进程,按照分配的时间片将更新日志写入主机的内存。在将待更新数据对应的更新日志写入主机的内存之后,CPU释放分配给该系统进程的时间片。这里,系统进程同步返回更新日志写入内存的结果。该结果指示更新日志写入内存成功或失败。CPU基于该结果确定是否重新向内存中写入更新日志,以及是否向用户输出告警信息,以避免数据存储错误。
本申请实施例中,CPU可以通过同一个系统进程,将同一应用程序输入的各个待更新数据对应的更新日志写入主机的内存,在该应用程序没有输入待更新数据且该应用程序执行的写操作未结束时,该系统进程进入睡眠状态。CPU也可以通过不同的系统进程,将同一应用程序输入的各个待更新数据对应的更新日志写入主机的内存,在成功将更新日志写入主机的内存后,释放该系统进程。对于CPU将更新日志写入主机的内存的方式不作限定。
步骤S13,CPU向DPU发送内存中存储的更新日志。
本申请实施例中,DPU通过PCIE总线连接CPU。CPU通过PCIE总线将内存中存储的更新日志向DPU发送,即通过PCIE总线将待更新数据和待更新数据的元数据从主机的内存同步到DPU的内存。CPU可以通过CPU与DPU之间传输的最小单元,即存储块,向DPU发送数据。例如,CPU可以向DPU发送一个或多个存储块大小的更新日志。一个存储块大小可以为4MB(Megabytes,兆字节),也可以是其他的数据量,在此对存储块大小不作限定。
在一些实施例中,CPU实时监控向DPU发送更新日志的过程。若CPU成功向DPU发送内存中存储的更新日志,即更新日志成功存储到DPU的内存,则CPU记录表示发送成功的发送结果信息,并向应用程序返回该发送结果信息。同时,CPU清空主机的内存中存储的该条更新日志。
若CPU向DPU发送内存中存储的更新日志失败,即更新日志未能成功存储到DPU的内存,则CPU再次向DPU发送内存中存储的更新日志。本申请实施例中,若CPU向DPU发送内存中存储的更新日志失败的次数达到第一预设次数,或将更新日志存储到DPU的内存所用的时长达到第一预设时长,则CPU记录表示发送失败的发送结果信息,并向应用程序返回发送结果信息。
步骤S14,DPU根据更新日志包括的元数据,存储更新日志包括的待更新数据。
本申请实施例中,DPU通过PCIE总线接收CPU发送的更新日志,将更新日志存储到DPU的内存。DPU可以从更新日志中解析得到待更新数据和元数据,根据元数据包括的指示待更新数据的存储位置的信息,将待更新数据存储到对应的存储位置。DPU可以通过纠删码、再生码等编码方式存储待更新数据,在此对采用的编码方式不作限定。
在一些实施例中,DPU实时监控存储更新日志包括的待更新数据的过程,在执行存储更新日志包括的待更新数据的步骤之后,DPU通过RPC(Remote Procedure Call,远程过程调用)协议向CPU异步返回是否成功存储待更新数据的更新结果信息,使得CPU可以确定该待更新数据是否更新完成,并将更新结果及时反馈给应用程序。
若DPU存储待更新数据成功,则DPU向CPU返回表示存储待更新数据成功的更新结果信息,并由CPU向应用程序返回更新结果信息。若DPU存储待更新数据失败,即DPU未能将待更新数据存储到对应的存储位置,则DPU可以再次根据更新日志包括的元数据,对更新日志包括的待更新数据进行存储。本申请实施例中,若DPU存储待更新数据失败的次数达到第二预设次数,或DPU存储待更新数据所用的时长达到第二预设时长,则DPU向CPU返回表示存储待更新数据失败的更新结果信息,并由CPU向应用程序返回更新结果信息。
本申请实施例提供的技术方案中,在分布式存储系统的主机中引入DPU,CPU将待更新数据以日志的形式存储至内存中,进而DPU基于更新日志包括的元数据,完成待更新数据的分布式存储,这实现了将存储负载卸载到DPU,减少了因CPU的IO操作带来的频繁上下文切换和调度,降低了CPU资源消耗和存储访问时延。此外,主机将存储负载卸载到DPU,可以实现通过异步进程进行数据的本地落盘和远程复制,CPU只需要将待更新数据写入内存即可,减少了对CPU的占用,进一步降低了存储访问时延,提升了分布式存储系统的整体性能。
本申请实施例中,DPU硬件融入到整个存储的IO数据处理路径中,由于DPU对IO密集型的数据有天然的处理优势,采用DPU接管存储IO和数据落盘流程,把分布式存储卸载到DPU处理,可以大幅度提升分布式存储系统的性能。
在一些实施例中,参见图2,为本申请实施例提供的数据存储方法的第二种流程示意图。
步骤S21,CPU在监控到应用程序执行写操作时,获取应用程序执行写操作时输入的待更新数据。与上述步骤S11相同。
步骤S22,CPU将待更新数据对应的更新日志写入主机的内存,更新日志包括待更新数据和待更新数据的元数据。与上述步骤S12相同。
步骤S23,CPU合并内存中存储的多条更新日志,得到合并日志;向DPU发送合并日志。
本申请实施例中,主机的内存中存储一条或多条更新日志,并且,存储的一条更新日志的数据量可能较小,例如一条更新日志的数据量为10、20、30字节等,远远小于存储块的大小。CPU可以将内存中存储的多条更新日志合并为一条日志,得到数据量更大的合并日志,将合并日志向DPU发送。
在一些实施例中,CPU实时监控向DPU发送合并日志的过程,若CPU向DPU发送内存中存储的合并日志失败,则CPU再次向DPU发送内存中存储的合并日志。与CPU监控向DPU发送内存中存储的更新日志的操作类似,具体参见上述步骤S13部分的描述。
步骤S24,DPU将合并日志拆分为多条更新日志;根据拆分得到的每条更新日志包括的元数据,存储每条更新日志包括的待更新数据。
本申请实施例中,DPU接收CPU发送的合并日志,将合并日志存储到DPU的内存。将合并日志拆分为多条更新日志后,DPU分别存储拆分得到的每条更新日志包括的待更新数据。DPU根据每条更新日志包括的元数据中,指示每条更新日志包括的待更新数据的存储位置的信息,将每条待更新数据分别存储到对应的存储位置。
在一些实施例中,DPU实时监控存储每条更新日志包括的待更新数据的过程。若DPU存储任一条待更新数据失败,则DPU根据该待更新数据对应的元数据,对该待更新数据再次进行存储,而不影响其他待更新数据的存储。具体参见上述步骤S14部分的描述。
本申请实施例提供的技术方案中,CPU将内存中存储的多条更新日志合并,向DPU发送合并日志,可以减少CPU通过PCIE总线向DPU发送日志的次数,进而降低CPU与DPU之间跨PCIE的访问开销。此外,CPU将多条数据量较小的更新日志合并,一次性传输给DPU,提高了一次传输的数据量,提高了分布式存储系统的吞吐量。
在一些实施例中,CPU实时监控内存中存储的更新日志是否满足预设条件,预设条件包括以下至少一项:写操作完成;内存中存储的更新日志的数据量总和达到预设数据量;距离上一次发送更新日志的时长达到预设时长;内存中存储的更新日志的条数达到预设条数。当满足预设条件时,CPU可以向DPU发送内存中存储的更新日志,即执行步骤S13。
在一个示例中,CPU可以通过数据监控进程实时监控应用程序执行的写操作是否完成,当监控到应用程序执行的写操作完成后,该应用程序不再需要存储新的待更新数据,CPU合并内存中存储的多条更新日志,得到合并日志,向DPU发送合并日志。
在另一个示例中,CPU实时监控内存中存储的更新日志的数据量总和,当内存中存储的更新日志的数据量总和达到预设数据量时,CPU合并内存中存储的多条更新日志,得到合并日志,向DPU发送合并日志。预设数据量可以为一个存储块的数据量,也可以是小于存储块的一个数据量,在此不作限定。
本申请实施例提供的技术方案中,CPU在满足预设条件的情况下,向DPU发送日志。在预设条件为存储的更新日志的数据量总和达到预设数据量,或内存中存储的更新日志的条数达到预设条数时,增加CPU向DPU发送一次日志的数据量,以提高分布式存储系统的吞吐量,降低跨PCIE访问带来的开销,减小资源浪费。在预设条件为写操作完成或距离上一次发送更新日志的时长达到预设时长时,CPU可以及时向DPU发送日志,以降低存储间的延迟。
本申请实施例中,可以综合多个预设条件,以同时得到上述多个有益效果。具体可以根据实际情况选择预设条件。
在一些实施例中,参见图3,为本申请实施例提供的DPU存储待更新数据的一种流程示意图。
步骤S31,DPU根据更新日志包括的元数据,确定待更新数据的存储位置。
本申请实施例中,元数据包括指示存储待更新数据的存储位置的信息,因此,DPU根据每一条更新日志包括的元数据,可以确定存储每一条待更新数据的存储位置,使得DPU根据存储位置存储待更新数据。当DPU确定待更新数据的存储位置位于DPU所在的主机上时,执行步骤S32;当DPU确定待更新数据的存储位置位于远端主机上时,执行步骤S33。
步骤S32,DPU将待更新数据存储到主机上的存储位置。
本申请实施例中,当存储位置位于DPU所在的主机上时,DPU直接将待更新数据存储到对应的存储位置,实现本地落盘。
步骤S33,DPU将待更新数据进行压缩,得到压缩后数据,将压缩后数据传输到远端主机,以使远端主机解压缩压缩后数据,得到待更新数据,并存储待更新数据。
本申请实施例中,当存储位置位于远端主机上时,DPU需要通过网络向远端主机传输待更新数据进行数据存储。在传输待更新数据前,DPU可以压缩待更新数据,将得到的压缩后数据传输到远端主机,使得在网络中传输的数据的数据量小于待更新数据的数据量。远端主机接收到压缩后数据后,将压缩后数据解压缩得到待更新数据,并将待更新数据存储存储到对应的存储位置。
本申请实施例提供的技术方案中,DPU根据元数据将待更新数据存储到DPU所在的主机或远程主机。并且,在存储到远程主机时,DPU先将待更新数据压缩进行传输,使得传输的数据量减小,提高网络带宽的利用率,进一步提高分布式存储系统的吞吐量。
下面结合图4和图5,对本申请实施例提供的数据存储方法进行详细说明。
图4为本申请实施例提供的数据存储方法的第三种流程示意图。本申请实施例中,以预设条件包括:写操作完成、内存中存储的更新日志的数据量总和达到预设数据量为例。其中,预设数据量为存储块大小。
步骤S41,CPU监控主机存储系统调用。
步骤S42,CPU判断写入数据是否更新。若是,则CPU执行步骤S43;若否,则CPU返回执行步骤S41,继续监控主机存储系统调用。
步骤S43,CPU分配时间片。
步骤S44,CPU将更新日志写入主机内存。
步骤S45,CPU释放时间片,并向存储系统调用同步返回将更新日志写入主机内存的信息。
步骤S46,CPU监控主机内存中存储的更新日志。
本申请实施例中,在执行步骤S44后,CPU执行步骤S46,即持续监控主机内存中存储的更新日志,并执行步骤S47。
步骤S47,CPU判断写操作是否完成或更新日志的数据量是否达到存储块大小。
本申请实施例中,若是,表示CPU判断写操作完成或更新日志的数据量达到存储块大小,则执行步骤S48;若否,表示CPU判断写操作未完成且更新日志的数据量未达到存储块大小,则返回执行步骤S46,继续监控主机内存中存储的更新日志。
步骤S48,CPU将更新日志同步到DPU的内存。
步骤S49,DPU判断待更新数据是否本地存储。若是,则执行步骤S410;若否,则执行步骤S411。
步骤S410,DPU将待更新数据发布到本地主机存储,并向存储系统调用异步返回将待更新数据写入存储位置的信息。
步骤S411,DPU将待更新数据压缩并通过网络发布到其他主机存储,即将待更新数据压缩并通过网络发布到远端主机进行存储,并向存储系统调用异步返回将待更新数据写入存储位置的信息。
上述步骤S41-步骤S411可参见图1-图3关于数据存储方法的相关描述。
图5为本申请实施例提供的数据存储的一种流程示意图。主机(Host)通过存储系统调用,监控应用程序执行的读操作或写操作,通过主机的CPU获取应用程序执行写操作时输入的待更新数据,将待更新数据对应的更新日志写入主机内存,如图5中Log(日志)A、LogB、LogN等更新日志。在满足上述预设条件的情况下,CPU将多条更新日志合并,即得到合并日志为LogA+LogB+LogN,将合并日志通过PCIE总线同步到DPU内存。DPU将多条更新日志拆分,通过监控进程,将多条待更新数据存储到本地磁盘,或压缩多条待更新数据传输到远程主机的NIC(Network Interface Card,网络接卡口),进而将多条待更新数据存储到远程主机。具体操作可参见图1-图3关于数据存储方法的相关描述。
与上述数据存储方法相对应,本申请实施例还提供了一种数据存储方法,应用于主机的CPU,上述主机还包括DPU,如图6所示,为本申请实施例提供的数据存储方法的第四种流程示意图,上述方法包括:
步骤S61,CPU在监控到应用程序执行写操作时,获取应用程序执行写操作时输入的待更新数据。参见上述步骤S11的相关描述。
步骤S62,CPU将待更新数据对应的更新日志写入主机的内存,更新日志包括待更新数据和待更新数据的元数据。参见上述步骤S12的相关描述。
步骤S63,CPU向DPU发送内存中存储的更新日志,以使DPU根据更新日志包括的元数据,存储更新日志包括的待更新数据。参见上述步骤S13-步骤S14的相关描述。
本申请实施例提供的技术方案中,在分布式存储系统的主机中引入DPU,CPU将待更新数据以日志的形式存储至内存中,进而DPU基于更新日志包括的元数据,完成待更新数据的分布式存储,这实现了将存储负载卸载到DPU,减少了因CPU的IO操作带来的频繁上下文切换和调度,降低了CPU资源消耗和存储访问时延。此外,主机将存储负载卸载到DPU,可以实现通过异步进程进行数据的本地落盘和远程复制,CPU只需要将待更新数据写入内存即可,减少了对CPU的占用,进一步降低了存储访问时延,提升了分布式存储系统的整体性能。
在一些实施例中,如图7所示,为本申请实施例提供的数据存储方法的第五种流程示意图,上述方法包括:
步骤S71,CPU在监控到应用程序执行写操作时,获取应用程序执行写操作时输入的待更新数据。参见上述步骤S11的相关描述。
步骤S72,CPU将待更新数据对应的更新日志写入主机的内存,更新日志包括待更新数据和待更新数据的元数据。参见上述步骤S12的相关描述。
步骤S73,CPU合并内存中存储的多条更新日志,得到合并日志;向DPU发送合并日志,以使DPU将合并日志拆分为多条更新日志,根据拆分得到的每条更新日志包括的元数据,存储每条更新日志包括的待更新数据。具体参见上述步骤S23-步骤S24的相关描述。
在一些实施例中,CPU监控内存中存储的更新日志是否满足预设条件;当满足预设条件时,CPU执行向DPU发送内存中存储的更新日志的步骤。
预设条件包括以下至少一项:
写操作完成;
内存中存储的更新日志的数据量总和达到预设数据量;
距离上一次发送更新日志的时长达到预设时长;
内存中存储的更新日志的条数达到预设条数。
具体参见上述关于预设条件的相关描述。
在一些实施例中,在将待更新数据对应的更新日志写入主机的内存之前,CPU为待更新数据分配系统进程,并为系统进程分配时间片。在将待更新数据对应的更新日志写入主机的内存之后,CPU释放时间片。具体参见上述步骤S12中关于CPU分配系统进程和时间片的相关描述。
与上述数据存储方法相对应,本申请实施例还提供了一种数据存储方法,应用于主机的DPU,上述主机还包括CPU,如图8所示,为本申请实施例提供的数据存储方法的第六种流程示意图,上述方法包括:
步骤S81,DPU接收CPU发送的更新日志,更新日志为:CPU在监控到应用程序执行写操作时,根据应用程序执行写操作时输入的待更新数据生成的日志,更新日志包括待更新数据和待更新数据的元数据。参见上述步骤S11-步骤S13的相关描述。
步骤S82,DPU根据更新日志包括的元数据,存储更新日志包括的待更新数据。参见上述步骤S14的相关描述。
本申请实施例提供的技术方案中,在分布式存储系统的主机中引入DPU,CPU将待更新数据以日志的形式存储至内存中,进而DPU基于更新日志包括的元数据,完成待更新数据的分布式存储,这实现了将存储负载卸载到DPU,减少了因CPU的IO操作带来的频繁上下文切换和调度,降低了CPU资源消耗和存储访问时延。此外,主机将存储负载卸载到DPU,可以实现通过异步进程进行数据的本地落盘和远程复制,CPU只需要将待更新数据写入内存即可,减少了对CPU的占用,进一步降低了存储访问时延,提升了分布式存储系统的整体性能。
在一些实施例中,如图9所示,为本申请实施例提供的数据存储方法的第七种流程示意图,上述方法包括:
步骤S91,DPU接收CPU发送的合并日志,合并日志为CPU合并多条更新日志得到的日志。具体参见上述步骤S23的相关描述。
步骤S92,DPU将合并日志拆分为多条更新日志;根据拆分得到的每条更新日志包括的元数据,存储每条更新日志包括的待更新数据。具体参见上述步骤S24的相关描述。
在一些实施例中,DPU根据更新日志包括的元数据,确定待更新数据的存储位置;在存储位置位于主机上时,将待更新数据存储到主机上的存储位置;在存储位置位于远端主机上时,将待更新数据进行压缩,得到压缩后数据,将压缩后数据传输到远端主机,以使远端主机解压缩压缩后数据,得到待更新数据,并存储待更新数据。具体参见上述图3的相关描述。
在一些实施例中,DPU在存储更新日志包括的待更新数据之后,向CPU返回更新结果信息,更新结果信息表示DPU是否成功存储待更新数据。具体参见上述步骤S14部分关于更新结果信息的相关描述。
与上述数据存储方法相对应,本申请实施例还提供了一种数据存储装置,应用于主机的CPU,上述主机还包括DPU,如图10所示,为本申请实施例提供的数据存储装置的第一种结构示意图,上述装置包括:
获取模块101,用于在监控到应用程序执行写操作时,获取所述应用程序执行写操作时输入的待更新数据;
写入模块102,用于将所述待更新数据对应的更新日志写入所述主机的内存,所述更新日志包括所述待更新数据和所述待更新数据的元数据;
发送模块103,用于向所述DPU发送所述内存中存储的所述更新日志,以使所述DPU根据所述更新日志包括的元数据,存储所述更新日志包括的待更新数据。
在一些实施例中,所述发送模块103,具体用于:
合并所述内存中存储的多条更新日志,得到合并日志;
向所述DPU发送所述合并日志,以使所述DPU将所述合并日志拆分为多条更新日志,根据拆分得到的每条更新日志包括的元数据,存储每条更新日志包括的待更新数据。
在一些实施例中,所述装置还包括:
监控模块,用于监控所述内存中存储的更新日志是否满足预设条件;当满足所述预设条件时,触发所述发送模块103;
所述预设条件包括以下至少一项:
所述写操作完成;
所述内存中存储的更新日志的数据量总和达到预设数据量;
距离上一次发送更新日志的时长达到预设时长;
所述内存中存储的更新日志的条数达到预设条数。
在一些实施例中,所述写入模块102还用于:
在执行所述将所述待更新数据对应的更新日志写入所述主机的内存的步骤之前,为所述待更新数据分配系统进程,并为所述系统进程分配时间片;
在执行所述将所述待更新数据对应的更新日志写入所述主机的内存的步骤之后,释放所述时间片。
本申请实施例提供的技术方案中,在分布式存储系统的主机中引入DPU,CPU将待更新数据以日志的形式存储至内存中,进而DPU基于更新日志包括的元数据,完成待更新数据的分布式存储,这实现了将存储负载卸载到DPU,减少了因CPU的IO操作带来的频繁上下文切换和调度,降低了CPU资源消耗和存储访问时延。此外,主机将存储负载卸载到DPU,可以实现通过异步进程进行数据的本地落盘和远程复制,CPU只需要将待更新数据写入内存即可,减少了对CPU的占用,进一步降低了存储访问时延,提升了分布式存储系统的整体性能。
与上述数据存储方法相对应,本申请实施例还提供了一种数据存储装置,应用于主机的DPU,上述主机还包括CPU,如图11所示,为本申请实施例提供的数据存储装置的第二种结构示意图,上述装置包括:
接收模块111,用于接收所述CPU发送的更新日志,所述更新日志为:所述CPU在监控到应用程序执行写操作时,根据所述应用程序执行写操作时输入的待更新数据生成的日志,所述更新日志包括所述待更新数据和所述待更新数据的元数据;
存储模块112,用于根据所述更新日志包括的元数据,存储所述更新日志包括的待更新数据。
在一些实施例中,所述接收模块111,具体用于:
接收所述CPU发送的合并日志,所述合并日志为所述CPU合并多条更新日志得到的日志;
所述存储模块112,具体用于:
将所述合并日志拆分为多条更新日志;
根据拆分得到的每条更新日志包括的元数据,存储每条更新日志包括的待更新数据。
在一些实施例中,所述存储模块112,具体用于:
根据所述更新日志包括的元数据,确定所述待更新数据的存储位置;
在所述存储位置位于所述主机上时,将所述待更新数据存储到所述主机上的所述存储位置;
在所述存储位置位于远端主机上时,将所述待更新数据进行压缩,得到压缩后数据,将所述压缩后数据传输到所述远端主机,以使所述远端主机解压缩所述压缩后数据,得到所述待更新数据,并存储所述待更新数据。
在一些实施例中,所述存储模块112还用于:
向所述CPU返回更新结果信息,所述更新结果信息表示所述DPU是否成功存储所述待更新数据。
本申请实施例提供的技术方案中,在分布式存储系统的主机中引入DPU,CPU将待更新数据以日志的形式存储至内存中,进而DPU基于更新日志包括的元数据,完成待更新数据的分布式存储,这实现了将存储负载卸载到DPU,减少了因CPU的IO操作带来的频繁上下文切换和调度,降低了CPU资源消耗和存储访问时延。此外,主机将存储负载卸载到DPU,可以实现通过异步进程进行数据的本地落盘和远程复制,CPU只需要将待更新数据写入内存即可,减少了对CPU的占用,进一步降低了存储访问时延,提升了分布式存储系统的整体性能。
与上述数据存储方法相对应,本申请实施例还提供了一种主机,如图12所示,包括CPU121和DPU122,所述CPU121执行上述应用于CPU121的任一数据存储方法,所述DPU122执行上述应用于DPU122的任一数据存储方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk (SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、主机、计算机可读存储介质、计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (11)
1.一种数据存储方法,其特征在于,应用于主机的中央处理器CPU,所述主机还包括数据中心处理器DPU;所述方法包括:
在监控到应用程序执行写操作时,获取所述应用程序执行写操作时输入的待更新数据;
将所述待更新数据对应的更新日志写入所述主机的内存,所述更新日志包括所述待更新数据和所述待更新数据的元数据;
向所述DPU发送所述内存中存储的所述更新日志,以使所述DPU根据所述更新日志包括的元数据,存储所述更新日志包括的待更新数据。
2.根据权利要求1所述的方法,其特征在于,所述向所述DPU发送所述内存中存储的所述更新日志的步骤,包括:
合并所述内存中存储的多条更新日志,得到合并日志;
向所述DPU发送所述合并日志,以使所述DPU将所述合并日志拆分为多条更新日志,根据拆分得到的每条更新日志包括的元数据,存储每条更新日志包括的待更新数据。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
监控所述内存中存储的更新日志是否满足预设条件;当满足所述预设条件时,执行所述向所述DPU发送所述内存中存储的所述更新日志的步骤;
所述预设条件包括以下至少一项:
所述写操作完成;
所述内存中存储的更新日志的数据量总和达到预设数据量;
距离上一次发送更新日志的时长达到预设时长;
所述内存中存储的更新日志的条数达到预设条数。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在所述将所述待更新数据对应的更新日志写入所述主机的内存的步骤之前,为所述待更新数据分配系统进程,并为所述系统进程分配时间片;
在所述将所述待更新数据对应的更新日志写入所述主机的内存的步骤之后,释放所述时间片。
5.一种数据存储方法,其特征在于,应用于主机的数据中心处理器DPU,所述主机还包括中央处理器CPU;所述方法包括:
接收所述CPU发送的更新日志,所述更新日志为:所述CPU在监控到应用程序执行写操作时,根据所述应用程序执行写操作时输入的待更新数据生成的日志,所述更新日志包括所述待更新数据和所述待更新数据的元数据;
根据所述更新日志包括的元数据,存储所述更新日志包括的待更新数据。
6.根据权利要求5所述的方法,其特征在于,所述接收所述CPU发送的更新日志的步骤,包括:
接收所述CPU发送的合并日志,所述合并日志为所述CPU合并多条更新日志得到的日志;
所述根据所述更新日志包括的元数据,存储所述更新日志包括的待更新数据的步骤,包括:
将所述合并日志拆分为多条更新日志;
根据拆分得到的每条更新日志包括的元数据,存储每条更新日志包括的待更新数据。
7.根据权利要求5或6所述的方法,其特征在于,所述根据所述更新日志包括的元数据,存储所述更新日志包括的待更新数据的步骤,包括:
根据所述更新日志包括的元数据,确定所述待更新数据的存储位置;
在所述存储位置位于所述主机上时,将所述待更新数据存储到所述主机上的所述存储位置;
在所述存储位置位于远端主机上时,将所述待更新数据进行压缩,得到压缩后数据,将所述压缩后数据传输到所述远端主机,以使所述远端主机解压缩所述压缩后数据,得到所述待更新数据,并存储所述待更新数据。
8.根据权利要求5或6所述的方法,其特征在于,在所述存储所述更新日志包括的待更新数据的步骤之后,还包括:
向所述CPU返回更新结果信息,所述更新结果信息表示所述DPU是否成功存储所述待更新数据。
9.一种数据存储装置,其特征在于,应用于主机的中央处理器CPU,所述主机还包括数据中心处理器DPU;所述装置包括:
获取模块,用于在监控到应用程序执行写操作时,获取所述应用程序执行写操作时输入的待更新数据;
写入模块,用于将所述待更新数据对应的更新日志写入所述主机的内存,所述更新日志包括所述待更新数据和所述待更新数据的元数据;
发送模块,用于向所述DPU发送所述内存中存储的所述更新日志,以使所述DPU根据所述更新日志包括的元数据,存储所述更新日志包括的待更新数据。
10.一种数据存储装置,其特征在于,应用于主机的数据中心处理器DPU,所述主机还包括中央处理器CPU;所述装置包括:
接收模块,用于接收所述CPU发送的更新日志,所述更新日志为:所述CPU在监控到应用程序执行写操作时,根据所述应用程序执行写操作时输入的待更新数据生成的日志,所述更新日志包括所述待更新数据和所述待更新数据的元数据;
存储模块,用于根据所述更新日志包括的元数据,存储所述更新日志包括的待更新数据。
11.一种主机,其特征在于,包括中央处理器CPU和数据中心处理器DPU,所述CPU执行权利要求1-4任一所述的方法步骤,所述DPU执行权利要求5-8任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310537671.0A CN116301663B (zh) | 2023-05-12 | 2023-05-12 | 一种数据存储方法、装置及主机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310537671.0A CN116301663B (zh) | 2023-05-12 | 2023-05-12 | 一种数据存储方法、装置及主机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116301663A true CN116301663A (zh) | 2023-06-23 |
CN116301663B CN116301663B (zh) | 2024-06-21 |
Family
ID=86799904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310537671.0A Active CN116301663B (zh) | 2023-05-12 | 2023-05-12 | 一种数据存储方法、装置及主机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116301663B (zh) |
Citations (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002024068A (ja) * | 2000-07-06 | 2002-01-25 | Nec Corp | ジャーナルマージ制御システム及びジャーナルマージ制御方法 |
CN103209087A (zh) * | 2012-01-17 | 2013-07-17 | 深圳市腾讯计算机系统有限公司 | 分布式日志统计处理方法和系统 |
CN103841167A (zh) * | 2012-11-27 | 2014-06-04 | 中国移动通信集团公司 | 一种用户数据同步方法及设备 |
CN106850761A (zh) * | 2016-12-30 | 2017-06-13 | 江苏天联信息科技发展有限公司 | 日志文件存储方法及装置 |
CN108932241A (zh) * | 2017-05-24 | 2018-12-04 | 腾讯科技(深圳)有限公司 | 日志数据统计方法、装置及节点 |
CN110232054A (zh) * | 2019-06-19 | 2019-09-13 | 北京百度网讯科技有限公司 | 日志传输系统及流式日志传输方法 |
US20200089784A1 (en) * | 2018-09-17 | 2020-03-19 | Alibaba Group Holding Limited | Method and system for reduced data movement compression using in-storage computing and a customized file system |
CN111782470A (zh) * | 2020-06-30 | 2020-10-16 | 中国工商银行股份有限公司 | 分布式容器日志数据处理方法及装置 |
WO2021147793A1 (zh) * | 2020-01-22 | 2021-07-29 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、系统、电子设备及计算机存储介质 |
WO2021169268A1 (zh) * | 2020-02-28 | 2021-09-02 | 平安科技(深圳)有限公司 | 数据处理方法、装置、设备和存储介质 |
CN113595694A (zh) * | 2021-09-28 | 2021-11-02 | 阿里巴巴(中国)有限公司 | 数据的传输方法、计算设备及存储介质 |
CN113805789A (zh) * | 2020-06-11 | 2021-12-17 | 华为技术有限公司 | 存储设备中的元数据处理方法及相关设备 |
CN114363042A (zh) * | 2021-12-30 | 2022-04-15 | 爱集微咨询(厦门)有限公司 | 日志分析方法、装置、设备及可读存储介质 |
CN114422367A (zh) * | 2022-03-28 | 2022-04-29 | 阿里云计算有限公司 | 报文处理方法及装置 |
CN114637475A (zh) * | 2022-04-13 | 2022-06-17 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统控制方法、装置及可读存储介质 |
CN115114222A (zh) * | 2022-08-30 | 2022-09-27 | 珠海星云智联科技有限公司 | 行情快照分发方法及相关装置 |
CN115202573A (zh) * | 2022-06-01 | 2022-10-18 | 阿里巴巴(中国)有限公司 | 数据存储系统以及方法 |
CN115222538A (zh) * | 2022-08-15 | 2022-10-21 | 深圳星云智联科技有限公司 | 行情快照数据计算方法、装置、电子设备和存储介质 |
CN115408108A (zh) * | 2022-08-30 | 2022-11-29 | 阿里巴巴(中国)有限公司 | 一种云环境下的i/o卸载方法、设备、系统及存储介质 |
CN115509982A (zh) * | 2021-06-23 | 2022-12-23 | 华为技术有限公司 | 一种数据写入的方法、设备及网卡 |
CN115525221A (zh) * | 2022-08-19 | 2022-12-27 | 济南浪潮数据技术有限公司 | 一种数据更新方法、装置、设备及介质 |
CN115562734A (zh) * | 2022-09-22 | 2023-01-03 | 珠海星云智联科技有限公司 | 一种数据处理器配置方法、装置、设备及介质 |
CN115827660A (zh) * | 2023-02-14 | 2023-03-21 | 本原数据(北京)信息技术有限公司 | 数据更新方法、装置、电子设备及非易失性存储介质 |
CN115840662A (zh) * | 2021-09-18 | 2023-03-24 | 华为技术有限公司 | 一种数据备份系统及装置 |
CN115905114A (zh) * | 2023-03-09 | 2023-04-04 | 浪潮电子信息产业股份有限公司 | 元数据的批量更新方法、系统、电子设备及可读存储介质 |
CN115981833A (zh) * | 2021-10-15 | 2023-04-18 | 华为技术有限公司 | 一种任务处理方法及装置 |
CN116032930A (zh) * | 2021-10-27 | 2023-04-28 | 华为技术有限公司 | 网络存储方法、存储系统、数据处理单元及计算机系统 |
-
2023
- 2023-05-12 CN CN202310537671.0A patent/CN116301663B/zh active Active
Patent Citations (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002024068A (ja) * | 2000-07-06 | 2002-01-25 | Nec Corp | ジャーナルマージ制御システム及びジャーナルマージ制御方法 |
CN103209087A (zh) * | 2012-01-17 | 2013-07-17 | 深圳市腾讯计算机系统有限公司 | 分布式日志统计处理方法和系统 |
CN103841167A (zh) * | 2012-11-27 | 2014-06-04 | 中国移动通信集团公司 | 一种用户数据同步方法及设备 |
CN106850761A (zh) * | 2016-12-30 | 2017-06-13 | 江苏天联信息科技发展有限公司 | 日志文件存储方法及装置 |
CN108932241A (zh) * | 2017-05-24 | 2018-12-04 | 腾讯科技(深圳)有限公司 | 日志数据统计方法、装置及节点 |
US20200089784A1 (en) * | 2018-09-17 | 2020-03-19 | Alibaba Group Holding Limited | Method and system for reduced data movement compression using in-storage computing and a customized file system |
CN110232054A (zh) * | 2019-06-19 | 2019-09-13 | 北京百度网讯科技有限公司 | 日志传输系统及流式日志传输方法 |
WO2021147793A1 (zh) * | 2020-01-22 | 2021-07-29 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、系统、电子设备及计算机存储介质 |
WO2021169268A1 (zh) * | 2020-02-28 | 2021-09-02 | 平安科技(深圳)有限公司 | 数据处理方法、装置、设备和存储介质 |
CN113805789A (zh) * | 2020-06-11 | 2021-12-17 | 华为技术有限公司 | 存储设备中的元数据处理方法及相关设备 |
CN111782470A (zh) * | 2020-06-30 | 2020-10-16 | 中国工商银行股份有限公司 | 分布式容器日志数据处理方法及装置 |
CN115509982A (zh) * | 2021-06-23 | 2022-12-23 | 华为技术有限公司 | 一种数据写入的方法、设备及网卡 |
CN115840662A (zh) * | 2021-09-18 | 2023-03-24 | 华为技术有限公司 | 一种数据备份系统及装置 |
CN113595694A (zh) * | 2021-09-28 | 2021-11-02 | 阿里巴巴(中国)有限公司 | 数据的传输方法、计算设备及存储介质 |
CN115981833A (zh) * | 2021-10-15 | 2023-04-18 | 华为技术有限公司 | 一种任务处理方法及装置 |
CN116032930A (zh) * | 2021-10-27 | 2023-04-28 | 华为技术有限公司 | 网络存储方法、存储系统、数据处理单元及计算机系统 |
CN114363042A (zh) * | 2021-12-30 | 2022-04-15 | 爱集微咨询(厦门)有限公司 | 日志分析方法、装置、设备及可读存储介质 |
CN114422367A (zh) * | 2022-03-28 | 2022-04-29 | 阿里云计算有限公司 | 报文处理方法及装置 |
CN114637475A (zh) * | 2022-04-13 | 2022-06-17 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统控制方法、装置及可读存储介质 |
CN115202573A (zh) * | 2022-06-01 | 2022-10-18 | 阿里巴巴(中国)有限公司 | 数据存储系统以及方法 |
CN115222538A (zh) * | 2022-08-15 | 2022-10-21 | 深圳星云智联科技有限公司 | 行情快照数据计算方法、装置、电子设备和存储介质 |
CN115525221A (zh) * | 2022-08-19 | 2022-12-27 | 济南浪潮数据技术有限公司 | 一种数据更新方法、装置、设备及介质 |
CN115408108A (zh) * | 2022-08-30 | 2022-11-29 | 阿里巴巴(中国)有限公司 | 一种云环境下的i/o卸载方法、设备、系统及存储介质 |
CN115114222A (zh) * | 2022-08-30 | 2022-09-27 | 珠海星云智联科技有限公司 | 行情快照分发方法及相关装置 |
CN115562734A (zh) * | 2022-09-22 | 2023-01-03 | 珠海星云智联科技有限公司 | 一种数据处理器配置方法、装置、设备及介质 |
CN115827660A (zh) * | 2023-02-14 | 2023-03-21 | 本原数据(北京)信息技术有限公司 | 数据更新方法、装置、电子设备及非易失性存储介质 |
CN115905114A (zh) * | 2023-03-09 | 2023-04-04 | 浪潮电子信息产业股份有限公司 | 元数据的批量更新方法、系统、电子设备及可读存储介质 |
Non-Patent Citations (4)
Title |
---|
CHHABRA, SAKSHI等: "Dynamic Resource Allocation Method for Load Balance Scheduling Over Cloud Data Center Networks", JOURNAL OF WEB ENGINEERING, 30 November 2021 (2021-11-30) * |
杜心武;: "DB2数据库日志管理和应用", 科技信息(科学教研), no. 04, 1 February 2008 (2008-02-01) * |
郑慧霞;徐硕;: "Web日志预处理的Clementine方案", 医学信息学杂志, no. 12, 20 December 2009 (2009-12-20) * |
陈娟;胡庆达;陈游旻;陆游游;舒继武;杨晓辉;: "一种基于微日志的持久性事务内存系统", 计算机研究与发展, no. 09, 15 September 2018 (2018-09-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN116301663B (zh) | 2024-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11010240B2 (en) | Tracking status and restarting distributed replication | |
US11558270B2 (en) | Monitoring a stale data queue for deletion events | |
US20190243547A1 (en) | Distributed object replication architecture | |
US20190245918A1 (en) | Distributed replication of an object | |
US20190243688A1 (en) | Dynamic allocation of worker nodes for distributed replication | |
JP7549137B2 (ja) | トランザクション処理方法、システム、装置、機器、及びプログラム | |
CN106095957B (zh) | 分布式文件系统的跨域多副本文件同步方法及装置 | |
CN109947668A (zh) | 存储数据的方法和装置 | |
CN101594256A (zh) | 容灾方法、装置和系统 | |
CN107220271B (zh) | 一种分布式数字资源存储处理与管理的方法及系统 | |
CN116304390B (zh) | 时序数据处理方法、装置、存储介质及电子设备 | |
CN114296891A (zh) | 任务的调度方法、系统、计算设备、存储介质及程序产品 | |
CN109254873B (zh) | 数据备份方法、相关装置及系统 | |
US20190347165A1 (en) | Apparatus and method for recovering distributed file system | |
US10592169B2 (en) | Methods and systems that efficiently store metric data to enable period and peak detection | |
CN113051221A (zh) | 数据存储方法、装置、介质、设备及分布式文件系统 | |
WO2023010948A1 (zh) | 云桌面数据的迁移方法、业务节点、管理节点、服务器、电子设备和计算机可读存储介质 | |
CN114741335A (zh) | 缓存管理方法、装置、介质及设备 | |
CN116301663B (zh) | 一种数据存储方法、装置及主机 | |
CN114925078A (zh) | 数据更新方法、系统、电子设备及存储介质 | |
CN114490540B (zh) | 数据存储方法、介质、装置和计算设备 | |
CN116521639A (zh) | 一种日志数据的处理方法、电子设备和计算机可读介质 | |
CN113051244B (zh) | 数据访问方法和装置、数据获取方法和装置 | |
CN114090201A (zh) | 资源调度方法、装置、设备及存储介质 | |
CN114722261A (zh) | 一种资源的处理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |