CN116635831A - 一种数据存储方法、装置及相关设备 - Google Patents
一种数据存储方法、装置及相关设备 Download PDFInfo
- Publication number
- CN116635831A CN116635831A CN202180006938.2A CN202180006938A CN116635831A CN 116635831 A CN116635831 A CN 116635831A CN 202180006938 A CN202180006938 A CN 202180006938A CN 116635831 A CN116635831 A CN 116635831A
- Authority
- CN
- China
- Prior art keywords
- data
- copies
- file system
- storing
- partition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据存储方法,该方法可以应用于包括多个可用区AZ的数据处理平台,并且,该数据处理平台获取待存储数据的多份副本,并将该待存储数据的多份副本存储至数据处理平台的不同AZ中。这样,当部分AZ因为自然灾害或者其它灾难而导致其不可用时,由于不同AZ之间间隔的物理距离通常较大,因此,该灾难通常可以不对其它AZ产生影响,从而数据处理平台可以基于正常运行的其它AZ中存储的待存储数据的副本,继续为用户提供数据读写服务,进而可以避免灾难发生而降低数据处理平台提供数据读写服务的质量、提高数据处理平台存储数据的可靠性。此外,本申请实施例还提供了对应的装置及相关设备。
Description
本申请要求于2021年10月28日递交印度专利局、申请号为202131049367,发明名称为“DATA MANAGEMENT SYSTEM AND METHOD”的印度专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请实施例涉及数据库技术领域,尤其涉及一种数据存储方法、装置及相关设备。
数据处理平台,用于为用户提供数据读写服务,如数据存储、数据读取等,可以包括分布式数据库以及文件系统。其中,分布式数据库,如HBase数据库等,通常包括主(master)节点以及多个分区服务器(Region Server,RS)节点。并且,master节点用于为各RS节点分配该RS节点负责读写的数据所属的分区(region),每个RS节点所分配到的分区数量可以是一个或者多个;RS节点用于根据其分配到的分区,向文件系统写入新数据,或者将用户请求的文本系统中的数据反馈给用户,以实现数据读写服务。
实际应用时,因为自然灾害等灾难,可能会导致数据处理平台为用户提供的数据读写服务的质量降低,从而影响用户的使用体验。因此,目前亟需一种数据存储方法,以实现在发生灾难时,数据处理平台为用户提供的数据读写服务的质量能够保持在较高水平。
发明内容
有鉴于此,本申请实施例提供了一种数据存储方法,以使得在发生灾难时,数据处理平台为用户提供的数据读写服务的质量能够保持在较高水平。本申请还提供了对应的装置、计算设备、计算机可读存储介质以及计算机程序产品。
第一方面,本申请实施例提供一种数据存储方法,该方法可以应用于包括多个可用区AZ的数据处理平台,并且,该数据处理平台在存储数据时,可以先获取待存储数据的多份副本,并将该待存储数据的多份副本存储至数据处理平台的不同AZ中。
由于数据处理平台将待存储数据的多份副本存储于不同AZ中,这样,当部分AZ因为自然灾害或者其它灾难而导致其不可用时,由于不同AZ之间间隔的物理距离通常较大,因此,该灾难通常可以不对其它AZ产生影响,从而数据处理平台可以基于正常运行的其它AZ中存储的待存储数据的副本,继续为用户提供数据读写服务,进而可以避免灾难发生而降低数据处理平台提供数据读写服务的质量。并且,基于这样的数据存储方式,数据处理平台的可容许服务中断的时间长度可以为0,即复原时间目标达到0;数据处理平台所能容忍的最大数据丢失量可以达到0,即复原点目标可以为0。
另外,数据处理平台是将多份待存储数据的副本存储至不同的AZ中,而并非是保存在一个AZ中,这使得部分AZ不可用后,不会导致一份待存储数据的所有副本均发生数据丢失,从而可以提高数据处理平台存储数据的可靠性。
在一种可能的实施方式中,待存储数据包括目标数据和/或该目标数据所属的分区,则,数据处理平台在将待存储数据的多份副本存储至数据处理平台时,具体可以是将目标数据 的多份副本存储至数据处理平台的不同AZ中,和/或,将目标数据所属分区的多份分区副本存储至数据处理平台的不同AZ中。这样,当部分AZ不可用时,数据处理平台可以从其它AZ中获取目标数据的副本和/或分区副本,以便利用其它AZ中的目标数据的副本和/或分区副本继续为用户提供数据读写服务,提高数据处理平台提供数据读写服务的可靠性。
在一种可能的实施方式中,待存储数据包括目标数据以及该目标数据所属分区,并且,数据处理平台包括分布式数据库以及文件系统,其中,该分布式数据库包括多个AZ下的分区服务器RS节点,该文件系统包括多个AZ下的数据节点,则数据处理平台在将待存储数据的多份副本存储至不同的AZ时,具体可以是将多份分区副本存储至分布式数据库中不同AZ下的RS节点,将多份数据副本存储至文件系统中不同AZ下的数据节点。如此,可以提高数据处理平台提供数据读写服务的可靠性。
其中,分布式数据库下的多个AZ与文件系统下的多个AZ,可以存在重叠(可以是全部或者部分AZ相同),如分布式数据库以及文件系统可以具有相同的多个AZ。或者,分布式数据库下的多个AZ与文件系统下的多个AZ并不重叠,如分布式数据库包括AZ1至AZ5,而文件系统包括AZ6至AZ10等。如此,可以进一步提高数据处理平台提供数据读写服务的可靠性。
在一种可能的实施方式中,数据处理平台在将多份数据副本存储于文件系统中不同AZ下的数据节点时,可以先获取该文件系统中不同AZ之间的物理距离,并根据该文件系统中不同AZ之间的物理距离,确定该文件系统中的多个第一AZ,所确定的多个第一AZ之间的物理距离不超过距离阈值(如40千米等),从而数据处理平台可以将多份数据副本存储至该多个第一AZ下的数据节点。如此,当部分AZ发生故障并且数据处理平台从其它AZ中读取数据副本时,由于其它AZ与该AZ相距较近,因此,数据处理平台可以快速读取到该数据副本,以使得获取数据副本的时延保持在较低水平。
在一种可能的实施方式中,数据处理平台在将多份数据副本存储于文件系统中不同AZ下的数据节点时,可以获取该文件系统中各个AZ的可用程度,该可用程度例如可以是通过该AZ中可用的数据节点与所有数据节点之间的比例进行确定,从而数据处理平台可以根据文件系统中各个AZ的可用程度,将多份数据副本存储至文件系统中的多个第一AZ下的数据节点,而该文件系统还包括的至少一个可用程度较低的第二AZ,其中,第二AZ的可用程度较低是指第二AZ的可用程度低于第一AZ的可用程度。如此,可以数据处理平台可以优先选择可用程度较高的第一AZ下的数据节点来存储数据副本,以此可以提高数据处理平台读写数据的可靠性。
在一种可能的实施方式中,数据处理平台在将多份数据副本存储于文件系统中不同AZ下的数据节点时,可以获取该文件系统中各个AZ的可用程度,该可用程度例如可以是通过该AZ中可用的数据节点与所有数据节点之间的比例进行确定,从而数据处理平台可以根据文件系统中各个AZ的可用程度,将多份数据副本中的部分数据副本存储至文件系统中的多个第一AZ下的数据节点,而文件系统中还包括至少一个第二AZ,并且该第二AZ的可用程度低于第一AZ的可用程度;当该至少一个第二AZ的可用程度上升至预设阈值时,数据处理平台可以将该多份数据副本中的其它数据副本存储至该至少一个第二AZ下的数据节点。如此,在存储多个数据副本时,可以避免将可用程度较低的AZ所需承担的数据存储任务迁移 至其它AZ,以此避免增加其它AZ的负载。
在一种可能的实施方式中,在将多份分区副本存储至分布式数据库中不同AZ下的RS节点时,具体可以是获取针对该多份分区副本的分配指示信息,该分配指示信息用于指示多份分区副本分别存储至不同AZ中的副本数量占比,从而数据处理平台可以根据该分配指示信息将多份分区副本存储至分布式数据库中不同AZ下的RS节点。其中,分配指示信息可以预先由技术人员或者用户进行配置,或者分配指示信息可以由数据处理平台自动生成等。如此,数据处理平台可以根据分配指示信息实现多份分区副本的跨AZ存储。
在一种可能的实施方式中,分配指示信息可以根据分布式数据库中各个AZ下的RS节点的负载进行确定,如此,数据处理平台在根据分配指示信息存储多份分区副本时,可以均衡化多个AZ的负载。
在一种可能的实施方式中,分布式数据库以及文件系统均包括多个目标AZ,并且该多个目标AZ已存储有目标数据所属分区的多份分区副本,则在存储多份数据副本时,可以跟踪存储有多份分区副本的多个目标AZ,并将多份数据副本存储至不同目标AZ下的数据节点。如此,在提供数据读写服务时,分布式数据库可以基于分区副本,从本地(也即分区副本所在的AZ)的数据节点中读取目标数据,从而可以降低读取数据的时延,提高数据处理平台向用户反馈数据的效率。
在一种可能的实施方式中,在将多份分区副本存储至分布式数据库中不同AZ下的RS节点之后,数据处理平台可以对分布式数据库中不同AZ下的RS节点进行负载均衡,以调整不同AZ中存储的分区副本的数量。如此,实现不同RS节点的负载均衡,避免部分ES节点的负载过大而影响数据处理平台整体提供的数据读写服务的质量。
第二方面,基于与第一方面的方法实施例同样的发明构思,本申请实施例提供了一种数据存储装置。该装置具有实现上述第一方面的各实施方式对应的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第三方面,本申请提供一种计算设备,所述计算设备包括处理器、存储器和显示器。所述处理器、所述存储器进行相互的通信。所述处理器用于执行存储器中存储的指令,以使得计算设备执行如第一方面或第一方面的任一种实现方式中的数据存储方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算设备上运行时,使得计算设备执行上述第一方面或第一方面的任一种实现方式所述的数据存储方法。
第五方面,本申请提供了一种包含指令的计算机程序产品,当其在计算设备上运行时,使得计算设备执行上述第一方面或第一方面的任一种实现方式所述的数据存储方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例, 对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请一示例性数据处理平台100的架构示意图;
图2为跨可用区构建的集群200的结构示意图;
图3为本申请实施例提供的一种数据存储方法的流程示意图;
图4为本申请实施例提供的存储多个数据副本的示意图;
图5为本申请实施例提供的一种数据存储装置的结构示意图;
图6为本申请实施例提供的一种计算设备的硬件结构示意图。
下面将结合本申请中的附图,对本申请提供的实施例中的方案进行描述。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。
如图1所示,为一示例性数据处理平台100的架构示意图。如图1所示,该数据处理平台100包括分布式数据库101以及文件系统102。其中,文件系统102可以用于持久化存储文件形式的数据,而分布式数据库101可以用于对文件系统102中的数据进行管理,包括数据的读取、写入、合并等。
文件系统102,包括多个数据节点(datanode),并且不同的数据节点可以属于不同的可用区(availability zones,AZ)。图1中以文件系统102包括数据节点1021~数据节点1024为例进行示例性说明,并且,数据节点1021以及数据节点1022属于AZ1、数据节点1023以及数据节点1024属于AZ2。其中,AZ,通常是指一个或多个物理数据中心的集合,有独立的风火水电,并且在AZ内部可以在逻辑上将计算、网络、存储等资源划分成多个集群。作为一些示例,文件系统102例如可以是分布式文件系统(distributed file system,DFS)、Hadoop分布式文件系统(hadoop distributed file system,HDFS)等,本实施例对此并不进行限定。实际应用时,文件系统102还可以包括命名节点(namenode),该命名节点(图1中未示出)也可以称为主节点,用于对多个数据节点进行管理,包括管理多个数据节点的命名空间、记录各个数据节点中所存储数据的元数据等。
分布式数据库101包括主节点1011以及多个分区服务器(region server,RS)节点,并且不同的RS节点属于不同的可用区。图1中以分布式数据库101包括RS节点1012以及RS节点1012为例进行示例性说明,并且,RS节点1012属于AZ1、RS节点1012属于AZ2。
主节点1011用于对该分布式数据库101所管理的数据(也即文件系统102中所存储的数据)进行划分,得到多个分区,每个分区中包括一条或者多条数据的标识,并且属于不同分区的数据通常存在差异。作为一种划分分区的实现示例,分布式数据库101中在管理每条数据时,可以将该条数据中的部分内容作为该条数据对应的主关键字(primary key),该主关键字用于在分布式数据库101中对这条数据进行唯一标识,从而主节点1011可以根据主关键字的可能取值范围进行区间划分,每个划分得到的区间对应于一个分区。例如,假设分布式数据库101中作为主关键字的取值范围为[0,1000000],则主节点101可以将主关键字的取值范围划分为100个区间,分别为[0,10000)、[10000,20000)、……、[980000,990000)、 [990000,1000000],每个分区可以用于索引1万条数据,相应的,基于该100个分区,分布式数据库101可以管理100万条数据。进一步地,主节点1011还可以通过分布式应用程序协调服务(如zookeeper服务等)1014实现高可用,如图1所示。
同时,主节点1011还用于为RS节点1012以及RS节点1013分配分区,每个RS节点所分配到的分区可以通过主节点1011所创建的管理表进行维护。RS节点1012以及RS节点1013分别用于执行属于不同分区的数据读写业务,如图1中RS节点1012执行属于分区1至分区N的数据读写业务,而RS节点1013执行属于分区N+1至分区M的数据读写业务。
示例性地,主节点1011、RS节点1012以及RS节点1013均可以通过硬件或者软件实现。例如,主节点1011与各RS节点通过硬件实现时,主节点1011与多个RS节点均可以是分布式数据库101中的物理服务器。即,在实际部署时,可以将分布式数据库101中的至少一个服务器配置为主节点1011,并将该分布式数据库101中的其它服务器配置为RS节点。或者,主节点1011与各RS节点通过软件实现,此时,主节点1011与多个RS节点可以分别为运行在一台或者多台设备(如服务器等)上的进程或者虚拟机。
值得注意的是,图1所示的数据处理平台100仅作为一种示例性说明,并不用于对数据处理平台的具体实现进行限定。比如,在其它可能的数据处理平台100中,分布式数据库101可以包括任意数量的主节点以及RS节点,或者,分布式数据库101中的RS节点以及文件系统102中的数据节点可以分别属于不同的AZ,本申请对此并不进行限定。
分布式数据库101可以分别与文件系统102以及客户端103连接,例如可以是通过超文本传输协议(HyperText Transfer Protocol,HTTP)等无线通信协议进行连接。假设客户端103存在向RS节点1012修改数据或者写入新数据的需求时,客户端103可以向RS节点1012发送数据写入请求,该数据写入请求中携带有待写入数据以及相应的数据处理操作内容(如写操作、修改操作等)。然后,RS节点1012可以解析接收到该数据写入请求,基于待写入数据以及数据处理操作生成对应的数据处理记录,并将该数据处理记录写入预先创建的预写日志(write ahead log,WAL)文件中。在确定写入WAL文件成功后,RS节点1012将该WAL文件持久化存储至文件系统102。并且,RS节点1012将该数据处理记录中的待写入数据插入至RS节点1012的内存1中。例如,RS节点1012可以先确定该数据处理记录对应的主关键字,并根据该关键字的取值所属的分区区间,确定将数据处理记录写入哪个分区,从而RS节点1012可以将该数据处理记录中的待写入数据插入至该分区在内存1中对应的存储区域;然后,RS节点1012可以向客户端103反馈数据写入成功。
通常情况下,RS节点1012会为一个或者多个客户端103在内存1中写入数据,从而内存1中所暂存的数据量会不断增加。当内存1中的数据量达到预设阈值时,RS节点1012可以将内存1中的数据持久化存储至文件系统102,如将内存1中的数据持久化存储至AZ1下的数据节点1021等。
进一步地,RS节点1012中针对每个分区还配置有分区存储文件(region store files),并且,在文件系统102中持久化存储数据后,RS节点1012可以将每个分区的数据在文件系统102中存储时的文件添加至该分区所对应的分区存储文件中,具体可以是在分区存储文件的目录下添加该分区中各个数据对应的文件名。
相应的,当客户端103存在读取数据的需求时,可以向RS节点1012发送数据读取请求, 该数据读取请求中携带有待读取数据的主关键字。RS节点1012在接收到该数据写入请求后,可以根据待写入数据对应的主关键字的取值确定分区,从而RS节点1012可以根据该分区对应的分区存储文件从AZ1下的数据节点中查找出客户端102所需的数据,并将其反馈给客户端103。
在部署数据处理平台100时,数据处理平台100可以作为本地资源,通过分布式数据库101以及文件系统102向接入数据处理平台100的客户端提供本地的数据读写服务。或者,数据处理平台100也可以部署于云端,此时,分布式数据库101以及文件系统102可以向接入云端的客户端提供读写数据的云服务等。
实际应用场景中,难免会发生自然灾害等灾难,并且该灾难可能导致部分AZ(如AZ1或者AZ2)不可用,如灾难导致该AZ下的部分或者全部计算设备发生物理损坏等。此时,存储至该AZ下的RS节点中的分区和/或该AZ下的数据节点中的数据,可能会因为AZ的不可用而发生数据丢失或者不可读,这会降低数据处理平台100提供数据读写服务的质量,即用户难以获取到该AZ中存储的数据,从而影响用户的使用体验。
基于此,本申请实施例提供了一种数据存储方法,旨在将分区和/或数据的副本分配至不同AZ,以提高数据处理平台100提供数据读写服务的可靠性。具体实现时,对于待存储数据,数据处理平台100可以获取该待存储数据的多份副本,并将该待存储数据的多份副本存储至数据处理平台100的不同AZ中。示例性地,该待存储数据例如可以是用户新写入的数据和/或该数据所属的分区等。由于数据处理平台100将待存储数据进行了复制,并且,不同的待存储数据的副本存储于不同AZ中,这样,当AZ1(或者AZ2)因为自然灾害或者其它灾难而导致AZ1不可用时,由于不同AZ之间间隔的物理距离通常较大,因此,灾难虽然导致AZ1不可用,但是通常不会对AZ2产生影响,从而数据处理平台100可以基于正常运行的AZ2(或AZ1)中存储的待存储数据的副本,继续为用户提供数据读写服务,进而可以避免灾难发生而降低数据处理平台100提供数据读写服务的质量。并且,数据处理平台100的可容许服务中断的时间长度可以为0,即复原时间目标(recovery time objective,RTO);数据处理平台100所能容忍的最大数据丢失量可以达到0,即复原点目标(recovery point objective,RPO)可以为0。
另外,数据处理平台100是将多份待存储数据的副本存储至不同的AZ中,而并非是保存在一个AZ中,这使得部分AZ不可用后,不会导致一份待存储数据的所有副本均发生数据丢失,从而可以提高数据处理平台100存储数据的可靠性。
进一步的,当待存储数据具体为用户提供的新数据以及该新数据所属的分区时,数据存储平台100在存储该待存储数据的多份副本的过程中,分布式数据库101获取该数据所属分区的多份分区副本,如通过对分区进行复制的方式获得多份分区副本等。然后,分布式数据库101将多份分区副本存储至该分布式数据库101包括的不同AZ下的RS节点,如将部分分区副本存储至AZ1下的RS节点1012,将剩余的分区副本存储至AZ2下的RS节点1013。另外,文件系统102还获取该数据的多份数据副本,如由分布式数据库101将对该数据进行复制所得到的多份数据副本发送给文件系统102,或者由文件系统102对分布式数据库101发送的数据进行复制而得到多份数据副本等。然后,文件系统102将多份数据副本存储至该文件系统102包括的不同AZ下的数据节点,如将部分数据副本存在至AZ1下的数据节点,将剩余 的数据副本存储至AZ2下的数据节点。
由于数据处理平台100是将多份数据副本存储至不同的AZ中,而并非是保存在一个AZ中,这使得部分AZ不可用后,不会导致一份数据的所有数据副本均发生数据丢失,从而可以提高数据处理平台100存储数据的可靠性。类似地,数据处理平台100是将多份分区副本存储至不同的AZ中,这使得部分AZ不可用后,不会导致一份数据对应的所有分区副本均发生数据丢失,从而可以使得数据处理平台100基于分区副本读取数据的质量保持在较高水平。
实际应用时,基于图1所示的数据处理平台100,可以将多个AZ下的计算设备(包括RS节点、数据节点等)部署成跨AZ分布的集群,并且数据处理平台100可以利用该集群提供可靠的数据读写服务。作为一种示例,所部署的集群可以如图2所示,集群200可以包括AZ1以及AZ2下的计算设备,具体的,集群200除了可以包括AZ1下的RS节点1012、数据节点1021、数据节点1022之外,还包括该AZ1下的其它节点,如用于更新集群200的命名空间、记录数据节点中存储数据的元数据的命名节点1031、用于存储和管理日志的日志节点(journalnode)1032、用于对AZ1中的资源进行管理的资源管理设备1033、用于对数据节点进行管理的节点管理设备1034、节点管理设备1035以及用于对RS节点1012进行监控和管理的主服务器1036(如Hmaster等);并且,该AZ1中还可以配置有分布式应用程序协调服务来提高AZ1的高可用性。类似地,AZ2与AZ1也具有相似的配置,具体可参见图2所示。其中,AZ1下的计算设备与AZ2下的计算设备可以互为主备,如当AZ1下的命名节点1031发生故障时,可以由AZ2下的命名节点1041来更新集群200的命名空间等。
值得注意的是,图2所示的集群200是以基于图1所示的数据处理平台100进行部署为例,实际应用时,集群200还可以包括更多AZ下的计算设备,如图2中虚线所示的AZ3下的各个计算设备等,本实施例对于跨AZ部署的集群的具体架构并不进行限定。并且,在数据处理平台100中可以跨AZ部署多个集群,并且,不同集群包括不同AZ下的计算设备。比如,假设数据处理平台100包括6个AZ,分别为AZ1至AZ6,则可以基于AZ1至AZ3部署一个集群,基于AZ4至AZ6部署另一个集群等,本实施例对此并不进行限定。
另外,在进一步可能的实施方式中,还可以为该集群200部署备用的集群300,以用于对该集群200中存储的数据(包括分区、写入文件系统102中的数据等)进行复制和存储,从而可以进一步提高集群200提供数据读写服务的可靠性。示例性地,集群200与集群300之间可以采用异步复制的方式,将集群200中的数据复制至集群300中。
接下来,对数据存储的各种非限定性的具体实施方式进行详细描述。
参阅图3,为本申请实施例中一种数据存储方法的流程示意图。该方法可以应用于上述图1所示的数据处理平台100,具体可以是由分布式数据库101以及由文件系统102进行执行。或者,该方法也可以由单独配置于数据处理平台100中的设备进行执行,本实施例对此并不进行限定。为便于描述,下面以待存储数据包括目标数据(如上述用户提供的新数据)以及该目标数据所述分区、并由分布式数据库101以及文件系统102执行数据存储方法为例进行说明。图3所示的数据存储方法具体可以包括:
S301:分布式数据库101获取目标数据的多份数据副本、该目标数据所属分区的多份分 区副本。
分布式数据库101所获取的目标数据,例如可以是用户向数据处理平台100提供的新数据,或者数据处理平台100基于用户对于数据的修改操作所生成的数据等。通常情况下,数据处理平台100可以将该目标数据包含的主关键字写入分区,以便后续基于该分区中记录的主关键字对该目标数据进行管理;并且,数据处理平台100还会将该目标数据持久化存储至文件系统102中。
本实施例中,分布式数据库101可以对目标数据以及该目标数据所属的分区分别进行复制,如此,可以获得目标数据的多份数据副本(目标数据本身也可以视为一个数据副本)、分区副本(目标数据所属的分区也可以视为一个分区副本)。
值得注意的是,本实施例中是以分布式数据库101对分区进行复制为例,实际应用的其它方式中,分布式数据库101执行对目标数据所属分区的复制操作,得到多份分区副本,并将该目标发送至文件系统102,从而文件系统102执行对该目标数据的复制操作,得到多份数据副本。本实施例对此并不进行限定。
S302:分布式数据库101将多份分区副本存储至分布式数据库101包括的不同AZ下的RS节点。
如果分布式数据库101将目标数据所属的所有分区副本均存储至一个AZ中,则该当该AZ因为灾难而不可用时,分布式数据库101难以利用该AZ中的分区副本为用户提供针对目标数据的数据读写服务。因此,本实施例中,分布式数据库101将多份分区副本存储至至少两个AZ中,这样,即使其中一个AZ不可用,分布式数据库101也可以通过其余AZ中存储的分区副本来管理目标数据。如此,可以避免单个AZ不可用而导致数据处理平台100中的目标数据不可读,实现AZ级别的数据容错。
其中,不同AZ所分配的分区副本的数量,可以相同,也可以是不同。比如,当分布式数据库101包括3个AZ,并且,目标数据所属的分区副本的数量为3时,分布式数据库101可以将3份分区副本分别存储至这3个AZ中,每个AZ存储一份分区副本。或者,当分布式数据库101将3份分区副本存储至AZ1以及AZ2(不存储至AZ3)时,可以将1份分区副本存储至AZ1中,将2份分区副本存储至AZ2中等。
示例性地,本实施例提供了以下四种将多份分区副本存储至不同AZ的实现方式:
在第一种可能的实施方式中,分布式数据库101可以获取该多份分区副本的分配指示信息,该分配指示信息可以包括AZ标识以及副本数量占比,可以用于指示将该多份分区副本分别存储至不同AZ中的副本数量占比。这样,分布式数据库101可以根据该分配指示信息,将多份分区副本存储至分布式数据库中不同AZ下的RS节点。比如,假设可用区包括AZ1、AZ2以及AZ3,分区副本的数量为4,并且,分配指示信息具体可以是分配表达式“REP:AZ1[0.5],AZ2[0.25],AZ3[0.25]”,则分布式数据库101可以根据该分配表达式,将2(即0.5*4)份分区副本存储至AZ1中,将1(即0.25*4)份分区副本存储至AZ2中,将1份分区副本存储至存储至AZ3中。值得注意的是,分布式数据库101箱多个AZ中写入的多个分区副本中,其中一份分区副本作为主要分区副本,即分布式数据库101通常基于该主要分区副本为用户提供数据读写服务,而其余分区副本作为次要分区副本,用于在主要分区副本不可读或者发生数据丢失时,基于次要分区副本继续为用户提供数据读写服务。
实际应用时,分布式数据库101可以基于上述分配指示信息批量处理多个分区的副本。比如,假设当前存在10个分区,并且每个分区的副本数量为4,则当分配指示信息具体为“REP:AZ1[0.5],AZ2[0.25],AZ3[0.25]”,分布式数据库101可以将20(即0.5*4*10)份分区副本存储至AZ1中,将10(即0.25*4*10)份分区副本存储至AZ2中,将10份分区副本存储至存储至AZ3中。其中,3个AZ均存储有每个分区的副本。
其中,分配指示信息,例如可以是分布式数据库101根据各个AZ内的RS节点的负载进行确定。比如,当假设AZ1内的RS节点1012的负载为10%、AZ2内的RS节点1013的负载为30%、AZ3内的RS节点1014的负载为35%时,并且,设定各个分区的副本数量为4,则分布式数据库101可以确定分配指示信息具体为“REP:AZ1[0.5],AZ2[0.25],AZ3[0.25]”,即AZ1用于存储50%的分区副本,AZ2以及AZ3均用于存储25%的分区副本,以便于均衡化不同AZ下的RS节点之间的负载。当然,分配指示信息也可以是通过其它方式进行确定,如由技术人员预先进行人工配置等,本实施例对此并不进行限定。
作为一种实现示例,分布式数据库101中可以包括主服务器(如图2中的主服务器1036等)以及可用区感知均衡器(AZ aware balancer),其中,主服务器可以感知有效的RS节点,如可以基于RS节点发送的心跳(heartbeat)消息确定有效RS节点,从而主服务器可以基于有效的RS节点生成网络拓扑图。这样,当主服务器接收到分布式数据库101生成的针对多份分区副本的分配请求时,主服务器可以将该分配请求转发给可用区感知均衡器,并由可用区感知均衡器根据基于可用区的网络拓扑图(AZ based network topology)以及上述分配指示信息,确定用于存储分区副本的AZ。进一步地,分布式数据库101还可以设置有默认均衡器(default balancer),并且,对于部分无需进行复制存储的分区(如该分区的重要性较低等),分布式数据库101也可以是利用该默认均衡器来确定存储该分区的AZ,该默认均衡器例如可以是通过随机算法或者负载均衡策略等方式确定存储分区的AZ等。其中,主服务器、可用区感知均衡器、默认均衡器,均可以通过软件(如进程)或者硬件(如单独配置的计算设备)实现,本实施例对此并不进行限定。
在第二种可能的实施方式中,针对于一个分区的多份分区副本,如果分区副本的数量大于用于存储该多个分区副本的AZ的数量,则分布式数据库101可以是先为每个AZ分配一个分区副本,并且,对于剩余未分配的分区副本,分布式数据库101可以再根据当前各个AZ下的RS节点的负载情况,确定负载相对较小的RS节点所在的AZ,从而分布式数据库101可以将剩余的分区副本分配至该AZ中进行存储。如此,分布式数据库101可以根据多个AZ下的RS节点在各个时间段内的负载情况,灵活分配分区副本的存储位置,以便于实现RS节点的负载均衡。
在第三种可能的实施方式中,由于实际应用场景中AZ下的部分数据节点可能会发生故障或者数据存储负荷过大,从而影响AZ进一步存储数据的能力,因此,分布式数据库101可以根据各个AZ的可用状况,确定存储分区副本的AZ。具体地,分布式数据库101在向多个AZ写入分区副本的过程中,针对每个AZ,可以先获取各个AZ的可用程度,该可用程度例如可以通过计算AZ中可用的数据节点的数量与该AZ内的数据节点的总数量之间的比值进行确定,并且可以反映AZ的可用状况。例如,假设AZ中包括10个数据节点,其中,可用节点的数量为8,则AZ的可用程度可以是80%(即8/10)。其中,可用的数据节点,是指具 有进一步正常读写数据能力的数据节点;相应的,当数据节点发生物理损坏或者数据读写错误时,该数据节点可以被确定为发生故障,也即不可用的数据节点,或者,当该数据节点已存储的数据量较大而导致该数据节点无法进一步存储数据时,也可以将该数据节点确定为不可用的数据节点。实际应用时,数据节点是否可用也可以是通过其他方式进行定义,如当待存储数据不具有被写入该数据节点的权限时可以将该数据节点确定为相对于该待存储数据不可用等。然后,分布式数据库101可以根据各个AZ的可用程度,确定可用程度高于预设阈值的多个第一AZ,以及可用程度低于预设阈值的至少一个第二AZ,从而分布式数据库101可以将多个分区副本写入该多个第一AZ。如此,可以减少分布式数据库101向可用程度较低的AZ中写入新的分区副本的数量,从而可以避免可用程度较低的AZ下的RS节点的负载过大,而导致该RS节点所负责读取的数据量超出该AZ所能存储的最大数据量。
在第四种可能的实施方式中,分布式数据库101在向AZ中写入分区副本的过程中,可能存在部分AZ的可用程度降低或者变成不可用的AZ,基于此,分布式数据库101可以对暂缓向该部分AZ写入分区副本。具体地,分布式数据库101在向其中一个AZ写入分区副本之前,可以先获取该AZ的可用程度,并且,如果该AZ的可用程度低于预设阈值,则分布式数据库101可以不向该AZ中写入分区副本,而是可以通过主服务器为该AZ创建缓存队列,如交易区域(region in transcation,RIT)队列等,将该分区副本标记为未分配状态并将其写入该缓存队列中。然后,分布式数据库101继续向下一个AZ写入分区副本。实际应用时,如果作为“主”身份的主服务器位于该可用程度较低的AZ,则分布式数据库101可以将其它可用程度较高的AZ中的主服务器由“备”身份切换为“主”身份,并为该AZ创建缓存队列。对于未存储分区副本的AZ,分布式数据库101可以监控到该AZ的可用程度,如通过配置RIT工作(chore)节点进行监控等,并且,如果该AZ的可用程度上升并且超过该预设阈值,则分布式数据库101可以将该AZ对应的缓存队列中的分区副本,写入属于该AZ的RS节点中。实际应用时,如果该可用程度较低的AZ中存储的分区副本为次要分区副本,则分布式数据库101可以在该AZ的可用程度上升后向该AZ中写入该次要分区副本。如果该可用程度较低的AZ中存储的分区副本为主要分区副本,此时,由于该AZ的可用程度过低,因此,分布式数据库101可以从其他可用程度较高的AZ中选择一个次要分区副本作为主要分区副本,以保证分布式数据库101中的主要分区副本的高可用性,而该AZ中的分区副本作为次要分区副本。
值得注意的是,上述四种实现方式仅作为一些示例性说明,实际应用时,分布式数据库101也可以是基于其它方式将多份分区副本存储在不同的AZ中,例如,分布式数据库101可以通过组合上述实现方式,选择可用程度较高并且物理距离相聚较近的多个AZ来存储多份分区副本等。
S303:文件系统102将多份数据副本存储至文件系统102中不同AZ下的数据节点。
其中,目标数据的多份数据副本可以由分布式数据库101提供给文件系统102,或者由文件系统102在对该目标数据进行复制,得到该多份数据副本。与存储分区副本类似,文件系统102可以将获得的多份数据副本分别存储至不同的AZ中,具体可以是存储至不同AZ下的数据节点。其中,每个AZ中至少包括一份数据副本。这样,即使存储数据副本的其中一个AZ不可用,分布式数据库101也能从其余AZ中读取到该目标数据,以此避免目标数据发 生丢失,实现AZ级别的数据容错。
示例性地,本实施例提供了以下四种将多份数据副本存储至不同AZ的实现方式:
在第一种可能的实施方式中,与上述分布式数据库101存储多份分区副本类似,文件系统102也可以是基于分配指示信息存储多份数据副本,此时,该分配指示信息可以包括AZ标识以及副本数量占比,可以用于指示将该多份数据副本分别存储至不同AZ下的数据节点的副本数量占比。例如,假设可用区包括AZ1、AZ2以及AZ3,数据副本的数量为4,并且,分配指示信息具体可以是分配表达式“REP:AZ1[0.5],AZ2[0.25],AZ3[0.25]”,则分布式数据库101可以根据该分配表达式,将2(即0.5*4)份数据副本存储至AZ1中,将1(即0.25*4)份数据副本存储至AZ2中,将1份数据副本存储至存储至AZ3中。如此,文件系统102可以根据该分配指示信息,将多份数据副本存储至文件系统102中不同AZ下的数据节点。其中,分配指示信息可以根据各个AZ下的数据节点的负载进行确定,或者由技术人员进行人工配置等,本实施例对此并不进行限定。
示例性地,文件系统102中可以设置有命名节点远程过程调用服务器(namenode remote procedure call server)以及可用区块放置策略(availability zones block placement policy,AZ BPP)节点。当文件系统102存在针对目标数据的复制任务时,命名节点远程过程调用服务器可以指示AZ BPP节点执行目标数据的复制过程;AZ BPP节点可以根据分配指示信息,确定存储数据副本的多个AZ以及各个AZ所存储的目标数据的副本数量,以便执行相应的数据存储过程。进一步地,文件系统102中还可以设置有默认块放置策略(default block placement policy)节点,并且,对于部分无需进行复制存储的数据(如该数据的重要性较低等),文件系统102也可以是利用该默认块放置策略节点来确定存储该数据的AZ,该默认块放置策略节点例如可以是通过随机算法或者负载均衡策略等方式确定存储数据的AZ等。其中,文件系统102可以基于各个AZ下的数据节点,生成基于可用区的网络拓扑图(AZ based network topology),从而默认块放置策略节点可以根据该网络拓扑图来确定存储数据副本的AZ。
在第二种可能的实施方式中,文件系统102可以根据不同AZ之间的物理距离,确定用于存储数据副本的AZ。具体地,文件系统102可以获取该文件系统102中不同AZ之间的物理距离,并根据不同AZ之间的物理距离,将多份数据副本存储至该文件系统102中物理距离相距较近的多个第一AZ下的数据节点,即每个第一AZ至少与该多个第一AZ中的其中一个第一AZ之间的物理距离不超过距离阈值。与此同时,文件系统102中还包括至少一个第二AZ下的数据节点,并且,该第二AZ与各个第一AZ之间的物理距离超过距离阈值(如40千米等)。这样,当存在部分第一AZ故障时,数据处理平台100可以从其余第一AZ中读取目标数据的副本,并且,由于不同第一AZ之间的物理距离相聚较近,因此,数据处理平台100从可用的其它第一AZ中读取数据副本的时延,与从故障之前的第一AZ中读取数据副本的时延通常相差较小。
在第三种可能的实施方式中,由于实际应用场景中AZ下的部分数据节点可能会发生故障或者数据存储负荷过大,从而影响AZ进一步存储数据的能力,因此,文件系统102可以根据各个AZ的可用状况,确定存储数据副本的AZ。具体地,文件系统102可以先获取各个AZ的可用程度,该可用程度例如可以通过计算AZ中可用的数据节点的数量与该AZ内的数 据节点的总数量之间的比值进行确定,并且可以反映AZ的可用状况。在获得各个AZ的可用程度之后,文件系统102可以根据各个AZ的可用程度,将多份数据副本存储至该文件系统102中可用程度相对较高的多个第一AZ下的数据节点,每个第一AZ中存储至少一份数据副本。与此同时,文件系统102中还包括至少一个第二AZ下的数据节点,该第二AZ的可用程度低于第一AZ的可用程度。这样,文件系统102可以优先将数据副本分配至可用程度较高的AZ中进行存储,以此提高数据处理平台100的数据读写的可靠性。
在第四种可能的实施方式中,文件系统102在向AZ中写入数据副本的过程中,可能存在部分AZ的可用程度降低或者变成不可用的AZ,基于此,文件系统102可以对暂缓向该部分AZ写入数据副本。具体地,文件系统102在向多个AZ写入多个数据副本之前,可以先获取各个AZ的可用程度,并且,文件系统102可以根据各个AZ的可用程度,将多份数据副本中的部分数据副本存储至该文件系统102中可用程度较高(高于预设阈值)的第一AZ下的数据节点,每个第一AZ中存储至少一份数据副本。而对于文件系统102中可用程度较低(低于预设阈值)的至少一个AZ,也即除第一AZ之外的第二AZ,文件系统102可以暂时不向第二AZ写入数据副本。然后,当该第二AZ的可用程度上升至预设阈值时,文件系统102再将其余未存储的数据副本存储至该第二AZ中。如此,文件系统102在存储多个数据副本时,可以避免将可用程度较低的AZ所需承担的数据存储任务迁移至其它AZ,以此避免增加其它AZ的负载。
例如,如图4所示,对于数据A,文件系统102可以将该数据A的3份数据副本依次写入AZ1下的数据节点1、AZ2下的数据节点2以及AZ3下的数据节点3;而在存储数据B对应的多份数据副本时,文件系统102在将数据B的副本写入AZ1后,如果确定AZ2的可用程度较低(如不可用等),则文件系统102可以暂缓向AZ2中写入数据B的副本,而先向AZ3中写入数据C的副本。当后续AZ2的可用程度上升至预设阈值时,文件系统102再根据AZ1或者AZ3中存储的数据副本,向AZ2中写入数据B的副本。
值得注意的是,上述四种实现方式仅作为一些示例性说明,实际应用时,文件系统102也可以是基于其它方式将多份数据副本存储在不同的AZ中,例如,文件系统102可以通过组合上述实现方式,选择可用程度较高并且物理距离相聚较近的多个AZ来存储多份数据副本等。
实际应用时,分布式数据库101以及文件系统102可以包括多个相同的AZ,也可以不包括相同的AZ,本实施例对此并不进行限定。在进一步可能的实施方式中,当分布式数据库101以及文件系统102可包括多个相同的AZ时,文件系统102在存储数据副本的过程中,可以跟踪存储有多份分区副本的多个目标AZ(文件系统102也包括该多个目标AZ),从而文件系统102可以将多份数据副本也存储至不同目标AZ下的数据节点。此时,文件系统102可以与分布式数据库102基于相同的分配指示信息,在同一AZ中存储数据副本以及分区副本。如此,在提供数据读写服务时,分布式数据库101可以基于分区副本,从本地(也即分区副本所在的AZ)的数据节点中读取目标数据,从而可以降低读取数据的时延,提高数据处理平台100向用户反馈数据的效率。另外,当分布式数据库101以及文件系统102不包括相同的AZ时,分布式数据库101以及文件系统102可以各自独立执行副本的存储过程。
并且,假设存储数据副本以及分区副本的AZ的数量为N(N为大于1的正整数),则即 使高达N-1个AZ崩溃,数据处理平台100也可以基于第N个AZ中存储的分区副本以及数据副本继续为用户提供数据读写服务。并且,当其余N-1个AZ恢复运行时,数据处理平台100也可以根据第N个AZ中存储的分区副本以及数据副本,自动恢复其余N-1个AZ中存储的数据副本以及分区副本等数据,从而无需管理人员的干预,实现故障恢复后的自动化处理。
值得注意的是,本实施例中是以对目标数据以及目标数据所属分区进行复制和跨AZ存储为例进行说明,对于其它数据,数据处理平台100均可以按照上述类似方式进行存储,以提高数据处理平台100提供数据读写服务的可靠性。实际应用时,基于用户对于不同数据的重视程度可能存在差异,比如,对于用户而言,数据A的重要程度较高,而数据B的重要程度较低(即使数据B发生丢失也不会对该用户产生较大影响),因此,数据处理平台100可以采用上述方式存储用户的数据A,而在存储用户的数据B时,可以无需对数据B进行复制存储,或者将该数据B的多个数据副本存储至一个AZ中。
进一步地,数据处理平台100还可以周期性的均衡化各个AZ下的RS节点的负载。例如,数据处理平台100可以周期性的获取各个AZ下的RS节点存储的分区副本的数量,从而可以根据各个RS节点中分区副本的数量,对分布式数据库101中不同AZ下的RS节点进行负载均衡,具体可以是将部分RS节点上的分区副本迁移至其它RS节点上,以调整不同AZ中存储的分区副本的数量,从而减小不同AZ之间存储的分区副本的数量差异。如,假设AZ1下的RS节点存储的分区副本的数量为1、AZ2下的RS节点存储的分区副本的数量为2、AZ3下的RS节点存储的分区副本的数量为3,则数据处理平台100可以将AZ3下的RS节点上的一个分区副本,迁移至AZ1下的RS节点,以使得各个AZ中存储的分区副本的数量均为2。
需要说明的是,本实施例中,是以待存储数据同时包括目标数据以及该目标数据所属分区为例进行示例性说明,在其它可能的实施例中,待存储数据可以仅为目标数据,此时,数据处理平台100可以通过文件系统102将目标数据的多个副本存储至不同的AZ中,而该目标数据所属的分区,可以存储至单个AZ中(该AZ中可以保存一份分区数据,也可以是同时存储该分区的多个副本),或者可以存储至多个AZ中。或者,待存储数据也可以仅为目标数据所属分区,此时,数据处理平台100可以通过分布式数据集101将多个分区数据存储至不同的AZ中,而该目标数据,可以存储至文件系统102下的单个AZ中(该AZ中可以保存一份目标数据,也可以是同时存储该目标数据的多个副本),或者可以存储至该文件系统102下的多个AZ中。
以上结合图1至图4对本申请实施例提供的数据存储方法进行介绍,接下来结合附图对本申请实施例提供的用于执行上述数据存储装置以及计算设备进行介绍。
图5为本申请提供的一种数据存储装置的结构示意图,该数据存储装置500可以应用于数据处理平台(如上述数据处理平台100等),该数据处理平台包括多个可用区AZ。其中,该数据恢复装置500包括:
获取模块501,用于获取待存储数据的多份副本;
存储模块502,用于将所述待存储数据的多份副本存储至所述数据处理平台的不同AZ中。
在一种可能的实施方式中,所述待存储数据包括目标数据和/或所述目标数据所属分区,所述存储模块502,用于:
将所述目标数据的多份数据副本存储至所述数据处理平台的不同AZ中;
和/或,将所述目标数据所属分区的多份分区副本存储至所述数据处理平台的不同AZ中。
在一种可能的实施方式中,所述待存储数据包括目标数据和所述目标数据所属分区,所述数据处理平台包括分布式数据库以及文件系统,所述分布式数据库包括多个可用区AZ下的分区服务器RS节点,所述文件系统包括多个AZ下的数据节点,所述存储模块502,用于:
将所述多份分区副本存储至所述分布式数据库中不同AZ下的RS节点;
将所述多份数据副本存储至所述文件系统中不同AZ下的数据节点。
在一种可能的实施方式中,所述存储模块502,用于:
获取所述文件系统中不同AZ之间的物理距离;
根据所述文件系统中不同AZ之间的物理距离,确定所述文件系统中的多个第一AZ,所述多个第一AZ之间的物理距离不超过距离阈值;
将所述多份数据副本存储至所述多个第一AZ下的数据节点。
在一种可能的实施方式中,所述存储模块502,用于:
获取所述文件系统中各个AZ的可用程度;
根据所述文件系统中各个AZ的可用程度,将所述多份数据副本存储至所述文件系统中的多个第一AZ下的数据节点,所述文件系统还包括至少一个第二AZ下的数据节点,所述第二AZ的可用程度低于所述第一AZ的可用程度。
在一种可能的实施方式中,所述存储模块502,用于:
获取所述文件系统中各个AZ的可用程度;
根据所述文件系统中各个AZ的可用程度,将所述多份数据副本中的部分数据副本存储至所述文件系统中的第一AZ下的数据节点,所述文件系统还包括至少一个第二AZ下的数据节点,所述第二AZ的可用程度低于所述第一AZ的可用程度;
当所述至少一个第二AZ的可用程度上升至预设阈值时,将所述多份数据副本中的其它数据副本存储至所述至少一个第二AZ下的数据节点。
在一种可能的实施方式中,所述存储模块502,用于:
获取针对所述多份分区副本的分配指示信息,所述分配指示信息用于指示所述多份分区副本分别存储至不同AZ中的副本数量占比;
根据所述分配指示信息,将所述多份分区副本存储至所述分布式数据库中不同AZ下的RS节点。
在一种可能的实施方式中,所述分配指示信息,根据所述分布式数据库中各个AZ下的RS节点的负载进行确定。
在一种可能的实施方式中,所述分布式数据库以及所述文件系统均包括多个目标AZ,所述存储模块502,用于:
跟踪存储有所述多份分区副本的多个目标AZ;
将所述多份数据副本存储至不同目标AZ下的数据节点。
在一种可能的实施方式中,在将所述多份分区副本存储至所述分布式数据库中不同AZ 下的RS节点之后,所述装置500还包括:
负载均衡模块503,用于对所述分布式数据库中不同AZ下的RS节点进行负载均衡,以调整不同AZ中存储的分区副本的数量。
根据本申请实施例的数据存储装置500可对应于执行本申请实施例中描述的方法,并且数据存储装置500的各个模块的上述和其它操作和/或功能分别为了实现图3所示方法实施例中的相应流程,为了简洁,在此不再赘述。
图6提供了一种计算设备。如图6所示,计算设备600例如可以是前述实施例中用于实现数据处理平台100的功能的设备等,并且计算机设备600具体可以用于实现上述图5所示实施例中数据存储装置500的功能。
计算设备600包括总线601、处理器602和存储器603。处理器602、存储器603之间通过总线601通信。
总线601可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器602可以为中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
存储器603可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器603还可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard drive drive,HDD)或固态硬盘(solid state drive,SSD)。
存储器603中存储有可执行的程序代码,处理器602执行该可执行的程序代码以执行前述数据处理平台100执行的数据存储方法。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行上述数据恢复方法。
本申请实施例还提供了一种计算机程序产品。所述计算机程序产品包括一个或多个计算机指令。在计算设备上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。
所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机或数据中心进行传输。
所述计算机程序产品可以为一个软件安装包,在需要使用前述对象识别方法的任一方 法的情况下,可以下载该计算机程序产品并在计算设备上执行该计算机程序产品。
上述各个附图对应的流程或结构的描述各有侧重,某个流程或结构中没有详述的部分,可以参见其他流程或结构的相关描述。
Claims (23)
- 一种数据存储方法,其特征在于,所述方法应用于数据处理平台,所述数据处理平台包括多个可用区AZ,所述方法包括:获取待存储数据的多份副本;将所述待存储数据的多份副本存储至所述数据处理平台的不同AZ中。
- 根据权利要求1所述的方法,其特征在于,所述待存储数据包括目标数据和/或所述目标数据所属分区,所述将所述待存储数据的多份副本存储至所述数据处理平台的不同AZ中,包括:将所述目标数据的多份数据副本存储至所述数据处理平台的不同AZ中;和/或,将所述目标数据所属分区的多份分区副本存储至所述数据处理平台的不同AZ中。
- 根据权利要求2所述的方法,其特征在于,所述待存储数据包括目标数据和所述目标数据所属分区,所述数据处理平台包括分布式数据库以及文件系统,所述分布式数据库包括多个可用区AZ下的分区服务器RS节点,所述文件系统包括多个AZ下的数据节点,所述将所述待存储数据的多份副本存储至所述数据处理平台的不同AZ中,包括:将所述多份分区副本存储至所述分布式数据库中不同AZ下的RS节点;将所述多份数据副本存储至所述文件系统中不同AZ下的数据节点。
- 根据权利要求3所述的方法,其特征在于,所述将所述多份数据副本存储于所述文件系统中不同AZ下的数据节点,包括:获取所述文件系统中不同AZ之间的物理距离;根据所述文件系统中不同AZ之间的物理距离,确定所述文件系统中的多个第一AZ,所述多个第一AZ之间的物理距离不超过距离阈值;将所述多份数据副本存储至所述多个第一AZ下的数据节点。
- 根据权利要求3所述的方法,其特征在于,所述将所述多份数据副本存储于所述文件系统中不同AZ下的数据节点,包括:获取所述文件系统中各个AZ的可用程度;根据所述文件系统中各个AZ的可用程度,将所述多份数据副本存储至所述文件系统中的多个第一AZ下的数据节点,所述文件系统还包括至少一个第二AZ下,所述第二AZ的可用程度低于所述第一AZ的可用程度。
- 根据权利要求3所述的方法,其特征在于,所述将所述多份数据副本存储于所述文件系统中不同AZ下的数据节点,包括:获取所述文件系统中各个AZ的可用程度;根据所述文件系统中各个AZ的可用程度,将所述多份数据副本中的部分数据副本存储至所述文件系统中的第一AZ下的数据节点,所述文件系统还包括至少一个第二AZ,所述第二AZ的可用程度低于所述第一AZ的可用程度;当所述至少一个第二AZ的可用程度上升至预设阈值时,将所述多份数据副本中的其它数据副本存储至所述至少一个第二AZ下的数据节点。
- 根据权利要求1至6任一项所述的方法,其特征在于,所述将所述多份分区副本存储 至所述分布式数据库中不同AZ下的RS节点,包括:获取针对所述多份分区副本的分配指示信息,所述分配指示信息用于指示所述多份分区副本分别存储至不同AZ中的副本数量占比;根据所述分配指示信息,将所述多份分区副本存储至所述分布式数据库中不同AZ下的RS节点。
- 根据权利要求7所述的方法,其特征在于,所述分配指示信息,根据所述分布式数据库中各个AZ下的RS节点的负载进行确定。
- 根据权利要求3所述的方法,其特征在于,所述分布式数据库以及所述文件系统均包括多个目标AZ,所述将所述多份数据副本存储至所述文件系统中不同AZ下的数据节点,包括:跟踪存储有所述多份分区副本的多个目标AZ;将所述多份数据副本存储至不同目标AZ下的数据节点。
- 根据权利要求3至9任一项所述的方法,其特征在于,在将所述多份分区副本存储至所述分布式数据库中不同AZ下的RS节点之后,所述方法还包括:对所述分布式数据库中不同AZ下的RS节点进行负载均衡,以调整不同AZ中存储的分区副本的数量。
- 一种数据存储装置,其特征在于,所述装置应用于数据处理平台,所述数据处理平台包括多个可用区AZ,所述装置包括:获取模块,用于获取待存储数据的多份副本;存储模块,用于将所述待存储数据的多份副本存储至所述数据处理平台的不同AZ中。
- 根据权利要求11所述的装置,其特征在于,所述待存储数据包括目标数据和/或所述目标数据所属分区,所述存储模块,用于:将所述目标数据的多份数据副本存储至所述数据处理平台的不同AZ中;和/或,将所述目标数据所属分区的多份分区副本存储至所述数据处理平台的不同AZ中。
- 根据权利要求12所述的装置,其特征在于,所述待存储数据包括目标数据和所述目标数据所属分区,所述数据处理平台包括分布式数据库以及文件系统,所述分布式数据库包括多个可用区AZ下的分区服务器RS节点,所述文件系统包括多个AZ下的数据节点,所述存储模块,用于:将所述多份分区副本存储至所述分布式数据库中不同AZ下的RS节点;将所述多份数据副本存储至所述文件系统中不同AZ下的数据节点。
- 根据权利要求13所述的装置,其特征在于,所述存储模块,用于:获取所述文件系统中不同AZ之间的物理距离;根据所述文件系统中不同AZ之间的物理距离,确定所述文件系统中的多个第一AZ,所述多个第一AZ之间的物理距离不超过距离阈值;将所述多份数据副本存储至所述多个第一AZ下的数据节点。
- 根据权利要求13所述的装置,其特征在于,所述存储模块,用于:获取所述文件系统中各个AZ的可用程度;根据所述文件系统中各个AZ的可用程度,将所述多份数据副本存储至所述文件系统中的多个第一AZ下的数据节点,所述文件系统还包括至少一个第二AZ,所述第二AZ的可用程度低于所述第一AZ的可用程度。
- 根据权利要求13所述的装置,其特征在于,所述存储模块,用于:获取所述文件系统中各个AZ的可用程度;根据所述文件系统中各个AZ的可用程度,将所述多份数据副本中的部分数据副本存储至所述文件系统中的第一AZ下的数据节点,所述文件系统还包括至少一个第二AZ,所述第二AZ的可用程度低于所述第一AZ的可用程度;当所述至少一个第二AZ的可用程度上升至预设阈值时,将所述多份数据副本中的其它数据副本存储至所述至少一个第二AZ下的数据节点。
- 根据权利要求11至16任一项所述的装置,其特征在于,所述存储模块,用于:获取针对所述多份分区副本的分配指示信息,所述分配指示信息用于指示所述多份分区副本分别存储至不同AZ中的副本数量占比;根据所述分配指示信息,将所述多份分区副本存储至所述分布式数据库中不同AZ下的RS节点。
- 根据权利要求17所述的装置,其特征在于,所述分配指示信息,根据所述分布式数据库中各个AZ下的RS节点的负载进行确定。
- 根据权利要求13所述的装置,其特征在于,所述分布式数据库以及所述文件系统均包括多个目标AZ,所述存储模块,用于:跟踪存储有所述多份分区副本的多个目标AZ;将所述多份数据副本存储至不同目标AZ下的数据节点。
- 根据权利要求13至19任一项所述的装置,其特征在于,在将所述多份分区副本存储至所述分布式数据库中不同AZ下的RS节点之后,所述装置还包括:负载均衡模块,用于对所述分布式数据库中不同AZ下的RS节点进行负载均衡,以调整不同AZ中存储的分区副本的数量。
- 一种计算设备,其特征在于,包括处理器、存储器;所述处理器用于执行所述存储器中存储的指令,以使所述计算设备执行如权利要求1至10任一项所述的方法。
- 一种计算机可读存储介质,其特征在于,包括指令,当其在计算设备上运行时,使得所述计算设备执行如权利要求1至10中任一项所述的方法。
- 一种包含指令的计算机程序产品,当其在计算设备上运行时,使得所述计算设备执行执行如权利要求1至10中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN202131049367 | 2021-10-28 | ||
IN202131049367 | 2021-10-28 | ||
PCT/CN2021/142795 WO2023070935A1 (zh) | 2021-10-28 | 2021-12-30 | 一种数据存储方法、装置及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116635831A true CN116635831A (zh) | 2023-08-22 |
Family
ID=86160103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180006938.2A Pending CN116635831A (zh) | 2021-10-28 | 2021-12-30 | 一种数据存储方法、装置及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116635831A (zh) |
WO (1) | WO2023070935A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117240873A (zh) * | 2023-11-08 | 2023-12-15 | 阿里云计算有限公司 | 云存储系统、数据读写方法、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050223277A1 (en) * | 2004-03-23 | 2005-10-06 | Eacceleration Corporation | Online storage system |
CN104050102B (zh) * | 2014-06-26 | 2017-09-08 | 北京思特奇信息技术股份有限公司 | 一种电信系统中的对象存储方法及装置 |
CN107943867B (zh) * | 2017-11-10 | 2021-11-23 | 中国电子科技集团公司第三十二研究所 | 支持异构存储的高性能层次化存储系统 |
CN111104069B (zh) * | 2019-12-20 | 2024-02-06 | 北京金山云网络技术有限公司 | 分布式存储系统的多区域数据处理方法、装置及电子设备 |
CN111782152A (zh) * | 2020-07-03 | 2020-10-16 | 深圳市欢太科技有限公司 | 数据存储方法、数据恢复方法、装置、服务器及存储介质 |
-
2021
- 2021-12-30 CN CN202180006938.2A patent/CN116635831A/zh active Pending
- 2021-12-30 WO PCT/CN2021/142795 patent/WO2023070935A1/zh active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117240873A (zh) * | 2023-11-08 | 2023-12-15 | 阿里云计算有限公司 | 云存储系统、数据读写方法、设备及存储介质 |
CN117240873B (zh) * | 2023-11-08 | 2024-03-29 | 阿里云计算有限公司 | 云存储系统、数据读写方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023070935A1 (zh) | 2023-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10613780B1 (en) | Multi-node removal | |
US11586673B2 (en) | Data writing and reading method and apparatus, and cloud storage system | |
US8195777B2 (en) | System and method for adding a standby computer into clustered computer system | |
CN109842651B (zh) | 一种业务不间断的负载均衡方法和系统 | |
US7487390B2 (en) | Backup system and backup method | |
US20180091586A1 (en) | Self-healing a message brokering cluster | |
US20100023564A1 (en) | Synchronous replication for fault tolerance | |
US9201747B2 (en) | Real time database system | |
US11941267B2 (en) | Reseeding a mediator of a cross-site storage solution | |
CN110825704B (zh) | 一种读数据方法、写数据方法及服务器 | |
US20170293540A1 (en) | Failover of application services | |
KR100936238B1 (ko) | 파일 입출력과 복제의 균형적 수행을 위한 지연복제 시스템및 방법 | |
CN111049928B (zh) | 数据同步方法、系统、电子设备及计算机可读存储介质 | |
CN111198845B (zh) | 一种数据迁移方法、可读存储介质及计算设备 | |
JP4232357B2 (ja) | 計算機システム | |
US11128708B2 (en) | Managing remote replication in storage systems | |
CN109391487A (zh) | 一种配置更新方法和系统 | |
CN112230853A (zh) | 存储容量调整方法、装置、设备及存储介质 | |
CN116635831A (zh) | 一种数据存储方法、装置及相关设备 | |
WO2022151593A1 (zh) | 一种数据恢复方法、装置、设备、介质及程序产品 | |
CN111225003A (zh) | 一种nfs节点配置方法和装置 | |
CN111580753B (zh) | 存储卷级联系统、批量作业处理系统和电子设备 | |
CN104468674B (zh) | 数据迁移方法及装置 | |
CN114930281A (zh) | 动态自适应分区分割 | |
US11609831B2 (en) | Virtual machine configuration update technique in a disaster recovery environment |
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 |