CN111314479B - 一种数据处理方法和设备 - Google Patents

一种数据处理方法和设备 Download PDF

Info

Publication number
CN111314479B
CN111314479B CN202010118286.9A CN202010118286A CN111314479B CN 111314479 B CN111314479 B CN 111314479B CN 202010118286 A CN202010118286 A CN 202010118286A CN 111314479 B CN111314479 B CN 111314479B
Authority
CN
China
Prior art keywords
server
slave
data
log
data storage
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
Application number
CN202010118286.9A
Other languages
English (en)
Other versions
CN111314479A (zh
Inventor
阳振坤
赵裕众
师文汇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Oceanbase Technology Co Ltd
Original Assignee
Beijing Oceanbase Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Oceanbase Technology Co Ltd filed Critical Beijing Oceanbase Technology Co Ltd
Priority to CN202010118286.9A priority Critical patent/CN111314479B/zh
Publication of CN111314479A publication Critical patent/CN111314479A/zh
Application granted granted Critical
Publication of CN111314479B publication Critical patent/CN111314479B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • G06F16/1844Management specifically adapted to replicated file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/30Decision processes by autonomous network management units using voting and bidding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/85Active fault masking without idle spares

Abstract

本申请公开了一种数据处理方法和设备,接收用户发送的数据更新请求;根据数据更新请求,分别向主服务器以及至少两台从服务器发送日志更新指令;在确定日志更新操作完成时,分别向主服务器以及至少两台从服务器中的第一从服务器发送数据存储指令。在接收到数据更新请求时,可以向主服务器以及从服务器发送日志更新指令,使主服务器以及从服务器执行日志更新操作,在确定日志更新操作完成时,向主服务器以及其中一个从服务器发送数据存储指令,在从服务器中的数据丢失时,可以通过预先存储的日志恢复丢失的数据,保证主服务器与从服务器之间数据的一致性,针对待更新数据,只有主服务器以及一个从服务器对其进行存储,有效减少数据存储消耗的资源。

Description

一种数据处理方法和设备
本申请是发明名称为一种数据处理方法和设备,申请日为2016年6月20日,申请号为CN201610444320.5的专利申请的分案申请。
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法和设备。
背景技术
在分布式数据存储系统中,一台服务器作为主服务器,另一台服务器作为从属服务器(以下简称从服务器),主服务器可以对外提供数据读写服务,从服务器保持与主服务器之间的数据同步,并在主服务器出现故障时,从服务器可以对外提供数据读写服务。
通常,主服务器在接收到数据并将数据进行存储时,可以将存储的数据同步存储至从服务器中,这样,可以保证主服务器与从服务器之间数据的一致,但是,在实际应用中,由于主服务器和从服务器之间的数据同步操作存在延时性,导致从服务器中的部分数据丢失,无法保证与主服务器中的数据一致。
为了保证主服务器和从服务器之间数据的一致性,现有技术中,在将主服务器中存储的数据同步至从服务器时,可以将主服务器中的数据同步至多台从服务器中,也就是说,可以将主服务器中的数据存储多份数据副本,在其中一台从服务器中的数据丢失时,可以从其他从服务器获取丢失的数据,这样,在主服务器出现故障时,多台从服务器可以对外提供数据读写服务。
但是,由于需要对主服务器中的数据存储多份数据副本,导致数据存储消耗的资源比较多。
发明内容
有鉴于此,本申请实施例提供了一种数据处理方法和设备,用于解决在分布式数据存储系统中,由于需要对同一份数据存储多份数据副本,导致数据存储消耗的资源比较多的问题。
本申请实施例提供一种数据处理方法,所述方法应用于分布式数据存储系统,所述分布式数据存储系统中包含主服务器以及至少两台从服务器,包括:
接收用户发送的数据更新请求,所述数据更新请求中包含待更新数据;
根据所述数据更新请求,分别向所述主服务器以及所述至少两台从服务器发送日志更新指令,使所述主服务器以及所述至少两台从服务器根据所述日志更新指令执行日志更新操作;
在确定所述日志更新操作完成时,分别向所述主服务器以及所述至少两台从服务器中的第一从服务器发送数据存储指令,使所述主服务器以及所述第一从服务器根据所述数据存储指令执行对所述待更新数据的存储操作。
本申请实施例还提供一种数据处理方法,所述方法应用于分布式数据存储系统,所述分布式数据存储系统中包含主服务器以及至少两台从服务器,包括:
所述主服务器接收用户发送的数据更新请求,所述数据更新请求中包含待更新数据;
所述主服务器根据所述数据更新请求,启动日志更新操作,并分别向所述至少两台从服务器发送日志更新指令,使所述至少两台从服务器根据所述日志更新指令执行日志更新操作;
所述主服务器在确定所述日志更新操作完成时,启动数据存储操作,并向所述至少两台从服务器中的第一从服务器发送数据存储指令,使所述第一从服务器根据所述数据存储指令执行对所述待更新数据的存储操作。
本申请实施例提供一种数据处理设备,所述设备应用于分布式数据存储系统,所述分布式数据存储系统中包含主服务器以及至少两台从服务器,所述设备包括:接收单元和发送单元,其中:
接收单元,接收用户发送的数据更新请求,所述数据更新请求中包含待更新数据;
发送单元,根据所述数据更新请求,分别向所述主服务器以及所述至少两台从服务器发送日志更新指令,使所述主服务器以及所述至少两台从服务器根据所述日志更新指令执行日志更新操作;
所述发送单元,在确定所述日志更新操作完成时,分别向所述主服务器以及所述至少两台从服务器中的第一从服务器发送数据存储指令,使所述主服务器以及所述第一从服务器根据所述数据存储指令执行对所述待更新数据的存储操作。
本申请实施例还提供一种数据处理设备,所述设备应用于分布式数据存储系统,所述分布式数据存储系统中包含主服务器以及至少两台从服务器,所述设备包括:接收单元和发送单元,其中:
接收单元,接收用户发送的数据更新请求,所述数据更新请求中包含待更新数据;
发送单元,根据所述数据更新请求,启动日志更新操作,并向所述至少两台从服务器发送日志更新指令,使所述至少两台从服务器根据所述日志更新指令执行日志更新操作;
所述发送单元,在确定所述日志更新操作完成时,启动数据存储操作,并向所述至少两台从服务器中的第一从服务器发送数据存储指令,使所述第一从服务器根据所述数据存储指令执行对所述待更新数据的存储操作。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:分布式数据存储系统在接收到数据更新请求时,可以分别向主服务器以及从服务器发送日志更新指令,使主服务器以及从服务器执行日志更新操作,并在确定日志更新操作完成时,向主服务器以及其中一个从服务器发送数据存储指令,这样,在从服务器中的数据丢失时,可以通过主服务器与从服务器预先存储的日志恢复丢失的数据,保证主服务器与从服务器之间数据的一致性,并且,针对待更新数据,只有主服务器以及其中一个从服务器对其进行存储,可以有效减少数据存储消耗的资源。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种数据处理方法的流程示意图;
图2为本申请实施例提供的一种数据处理方法的流程示意图;
图3为本申请实施例提供的确定主服务器的流程示意图;
图4为本申请实施例提供的一种服务器故障处理的结构示意图;
图5为本申请实施例提供的一种服务器故障处理的结构示意图;
图6为本申请实施例提供的一种服务器故障处理的结构示意图;
图7为本申请实施例提供的一种本地机房与异地机房中的服务器的结构示意图;
图8为本申请实施例提供的一种数据处理设备的结构示意图;
图9为本申请实施例提供的一种数据处理设备的结构示意图。
具体实施方式
通常,在分布式数据库存储系统中,主服务器在接收到待更新数据并对其进行存储时,可以将待更新数据同步存储至从服务器中,但是,在实际应用中,由于主服务器与从服务器之间的地域或者其他原因,导致主服务器与从服务器之间的数据同步存在延时性,也就是说,主服务器在完成对待更新数据的存储之后,从服务器可能还未完成对待更新数据的存储,此时,如果主服务器出现故障,从服务器将会丢失一部分数据。
在现有技术中,为了保证从服务器不丢失数据(即保证主服务器与从服务器之间数据的一致性),可以将主服务器中的数据同步至多台(至少2台)从服务器中,但是相对于原有的分布式数据存储系统而言,需要存储的数据副本较多,容易造成资源的浪费。
在实际应用中,出于系统安全的考虑,主服务器(或从服务器)在将待更新数据进行存储之前,需要首先执行日志更新操作,并在完成日志更新操作后,再对待更新数据进行存储,这样,可以保证主服务器(或从服务器)中存储的数据与日志之间的一致性,在主服务器(或从服务器)存储数据失败时,可以通过预先存储的日志对数据进行恢复。
由此可见,在分布式数据存储系统中,在主服务器将待更新数据同步至从服务器之前,如果主服务器和从服务器首先执行日志更新操作,在完成日志更新操作后,再执行待更新数据的存储操作,那么,在从服务器存储的数据丢失时,可以通过预先存储的日志将丢失的数据恢复,这样,通过主服务器与从服务器之间日志的一致性保证主服务器与从服务器之间数据的一致性,在对数据进行存储时,可以减少对待更新数据存储的数据副本。
基于上述思路,本申请实施例提供的技术方案,可以在保证主服务器与从服务器之间数据的一致性的前提下,减少对数据存储的数据副本,进而减少数据存储时消耗的资源。
为了实现本申请的目的,本申请实施例中提供了一种数据处理方法和设备,所述方法应用于分布式数据存储系统,所述分布式数据存储系统中包含主服务器以及至少两台从服务器,接收用户发送的数据更新请求,所述数据更新请求中包含待更新数据;根据所述数据更新请求,分别向所述主服务器以及所述至少两台从服务器发送日志更新指令,使所述主服务器以及所述至少两台从服务器根据所述日志更新指令执行日志更新操作;在确定所述日志更新操作完成时,分别向所述主服务器以及所述至少两台从服务器中的第一从服务器发送数据存储指令,使所述主服务器以及所述第一从服务器根据所述数据存储指令执行对所述待更新数据的存储操作。
分布式数据存储系统在接收到数据更新请求时,可以分别向主服务器以及从服务器发送日志更新指令,使主服务器以及从服务器执行日志更新操作,并在确定日志更新操作完成时,向主服务器以及其中一个从服务器发送数据存储指令,这样,在从服务器中的数据丢失时,可以通过主服务器与从服务器预先存储的日志恢复丢失的数据,保证主服务器与从服务器之间数据的一致性,并且,针对待更新数据,只有主服务器以及其中一个从服务器对其进行存储,可以有效减少数据存储消耗的资源。
需要说明的是,本申请实施例提供的技术方案可以基于分布式一致性协议,并应用在基于分布式一致性协议的分布式数据存储系统中,所述分布式一致性协议可以是paxos协议,也可以是其他一致性协议,不做具体限定。
在基于分布式一致性协议的分布式数据存储系统中,可以包含主服务器以及至少两台从服务器,其中,所述主服务器可以用于对外提供数据读写服务,所述至少两台从服务器在所述主服务器出现故障后,可以对外提供数据读写服务。
下面结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例1
图1为本申请实施例提供的一种数据处理方法的流程示意图。所述方法如下所述。本申请实施例的执行主体可以是基于分布式一致性协议的分布式数据存储系统(以下简称分布式数据存储系统)。
步骤101:接收用户发送的数据更新请求。
其中,所述数据更新请求中包含待更新数据。
在步骤101中,用户在发起业务请求,并接收到响应消息后,可以向分布式数据存储系统发送数据更新请求,此时,分布式数据存储系统可以接收用户发送的数据更新请求。
在本申请实施例中,所述用户发起的业务请求可以是支付请求,也可以是添加好友请求,还可以是其他业务请求,这里不做具体限定。
所述用户向所述分布式数据存储系统发送所述数据更新请求,所述数据更新请求中可以包含待更新数据,所述数据更新请求用于请求所述分布式数据存储系统将所述待更新数据进行存储。
例如,所述用户在支付平台上发起支付请求,所述支付平台可以响应所述用户发送的支付请求,所述用户在接收到响应消息后,可以向所述分布式数据存储系统发送数据更新请求,所述数据更新请求中包含与所述支付请求相关的待更新数据,所述数据更新请求用于请求所述分布式数据存储系统将与所述支付请求相关的待更新数据进行存储。
步骤102:根据所述数据更新请求,分别向所述主服务器以及所述至少两台从服务器发送日志更新指令,使所述主服务器以及所述至少两台从服务器根据所述日志更新指令执行日志更新操作。
在步骤102中,分布式数据存储系统在接收到用户发送的数据更新请求时,可以根据所述数据请求,分别向分布式数据存储系统中的主服务器以及至少两台从服务器发送日志更新指令,以便于主服务器、至少两台从服务器根据日志更新指令执行日志更新操作。
需要说明的是,在实际应用中,所述分布式数据存储系统在接收所述数据更新请求之前,也就是说,在所述分布式数据存储系统中存储的数据为空时,所述分布式数据存储系统需要确定一个主服务器,并由确定的主服务器对外提供数据读写服务。
具体地,可以由所述分布式数据存储系统按照随机原则确定所述主服务器,也可以由所述分布式数据存储系统中包含的多个服务器通过选举的方式确定所述主服务器(这里的选举可以是多台服务器基于分布式一致性协议进行选举),还可以根据实际情况选择所述分布式数据存储系统中的其中一个服务器作为所述主服务器,这里对确定所述主服务器的方法不做具体限定。
在确定所述主服务器后,可以将分布式数据存储系统中的其他服务器作为从服务器,在本申请实施例中,所述从服务器的台数至少为2台。
所述分布式数据存储系统在确定所述主服务器以及所述从服务器之后,并在接收到所述数据更新指令时,可以向所述主服务器发送日志更新指令,以便于所述主服务器根据所述日志更新指令执行日志更新操作。
所述分布式数据存储系统在向所述主服务器发送日志更新指令时,可以同步向所述至少两台从服务器发送所述日志更新指令,以便于所述至少两台从服务器根据所述日志更新指令执行日志更新操作。
需要说明的是,在向所述至少两台从服务器发送所述日志更新指令时,可以分别向所述至少两台从服务器中的每一台从服务器发送,也可以选择其中若干台(至少两台)从服务器,并向选择的若干个从服务器发送,不做具体限定。
例如:如果分布式数据存储系统中包含两台从服务器,那么,可以分别向这两台从服务器发送所述日志更新指令,如果分布式数据存储系统中包含四台从服务器,那么,可以向其中两台从服务器发送所述日志更新指令,也可以向其中任意三台从服务器发送所述日志更新指令,还可以分别向这四台从服务器发送所述日志更新指令,不做具体限定。
在本申请实施例中,可以以分别向所述至少两台从服务器中的每一台从服务器发送所述日志更新指令为例进行说明。
所述主服务器以及所述至少两台从服务器在接收到所述日志更新指令时,可以根据所述日志更新指令,执行日志更新操作。
步骤103:在确定所述日志更新操作完成时,分别向所述主服务器以及所述至少两台从服务器中的第一从服务器发送数据存储指令,使所述主服务器以及所述第一从服务器根据所述数据存储指令执行对所述待更新数据的存储操作。
在步骤103中,所述分布式数据存储系统在确定日志更新操作完成时,可以选择所述至少两台从服务器中的其中一台从服务器作为第一从服务器,并分别向所述主服务器以及所述第一从服务器发送数据存储指令,以便于所述主服务器以及所述第一从服务器对所述待更新数据进行存储。
具体地,在本申请实施例中,至少在以下两种情形下,可以确定所述日志更新操作完成,包括:
第一种情形:在确定所述主服务器完成所述日志更新操作时,确定所述日志更新操作完成;
第二种情形:在确定所述主服务器且所述至少两台从服务器中至少一台从服务器完成所述日志更新操作时,确定所述日志更新操作完成。
针对第一种情形:在实际应用中,由于所述主服务器用于对外提供数据读写服务,因此,分布式数据存储系统在确定所述日志更新操作是否完成时,需要首先确定所述主服务器是否完成所述日志更新操作,并在确定所述主服务器完成所述日志更新操作时,可以确定所述日志更新操作完成。
针对第二种情形:为了保证主服务器与从服务器之间日志的一致性,在确定所述主服务器完成所述日志更新操作后,可以进一步确定所述至少两台从服务器是否完成所述日志更新操作,此时,如果所述至少两台从服务器中至少一台从服务器完成所述日志更新操作,可以说明主服务器与从服务器之间日志达到一致性,也就是说,可以确定所述日志更新操作完成。
这样,在确定所述日志更新操作完成后,可以选择所述至少两台从服务器中的其中一台从服务器作为第一从服务器,并分别向所述主服务器以及所述第一从服务器发送数据存储指令,以便于所述主服务器以及所述第一从服务器执行对待更新数据的存储操作。
在本申请实施例中,可以分别基于上述两种情形,分别向所述主服务器以及所述至少两台从服务器中的第一从服务器发送数据存储指令。
具体地,针对第一种情形,分别向所述主服务器以及所述至少两台从服务器中的第一从服务器发送数据存储指令,包括:
在确定所述主服务器完成所述日志更新操作时,向所述主服务器发送数据存储指令,并在向所述主服务器发送数据存储指令后且确定所述至少两台从服务器中的至少一台服务器完成所述日志更新操作时,向所述至少两台从服务器中的第一从服务器发送数据存储指令。
在确定所述主服务器完成日志更新操作时,可以向所述主服务器发送数据存储指令,所述主服务器可以接收所述数据存储指令,并根据所述数据存储指令执行待更新数据的存储操作。
此时,可以进一步确定所述至少两台从服务器是否完成所述日志更新操作,如果至少一台从服务器完成所述日志更新操作,那么,可以选择其中一台从服务器作为第一从服务器,并向所述第一从服务器发送数据存储指令。
针对第二种情形,分别向所述主服务器以及所述至少两台从服务器中的第一从服务器发送数据存储指令,包括:
在确定所述主服务器且所述至少两台从服务器中至少一台从服务器完成所述日志更新操作时,分别向所述主服务器以及所述至少两台从服务器中的第一从服务器发送数据存储指令。
在确定所述主服务器完成所述日志更新操作,且确定所述至少两台从服务器中的至少一台从服务器完成所述日志更新操作时,可以选择其中一台从服务器作为第一从服务器,并分别向所述主服务器以及所述第一从服务器发送数据存储指令。
需要说明的是,针对上述记载的两种情形,在选择所述至少两台从服务器中的其中一台从服务器作为第一从服务器时,可以在接收到所述日志更新操作指令的从服务器中随机选择一台从服务器作为第一从服务器,也可以根据实际情况选择其中一台从服务器作为第一从服务器,不做具体限定。
分布式数据存储系统分别向所述主服务器以及所述至少两台从服务器中的第一从服务器发送数据存储指令后,所述主服务器以及所述第一从服务器可以接收所述数据存储指令,并根据所述数据存储指令执行待更新数据的存储操作。
在实际应用中,可以预先确定分布式数据存储系统中哪些从服务器不执行对待更新数据的存储操作,这样,分布式数据存储系统在接收到数据更新请求时,可以不向确定的这些从服务器发送数据存储指令。
可选地,所述方法还包括:
确定所述至少两台从服务器中的第二从服务器,并在确定所述第二从服务器完成所述日志更新操作时,向所述第二从服务器发送空操作指令,所述空操作指令用于指示所述第二从服务器执行空操作。
在本申请实施例中,在发送所述日志更新指令时,可以分别向所述至少两台从服务器发送,但是,在确定所述日志更新操作完成时,仅向所述至少两台从服务器中的其中一台从服务器发送数据存储指令,因此,可以在所述至少两台从服务器中确定其中一个第二从服务器,并在确定所述第二从服务器完成所述日志更新操作时,向所述第二从服务器发送空操作指令,使所述第二从服务器执行空操作,也就是说,所述第二从服务器不对待更新数据进行存储,这样,可以减少待更新数据存储的数据副本。
需要说明的是,所述第二从服务器中的“第二”与上述记载的所述第一从服务器中的“第一”,只是为了便于区分不同的从服务器,没有其他特殊含义。
本申请实施例在确定所述第二从服务器时,可以是在确定所述主服务器时确定所述第二从服务器,也可以是在发送所述日志更新指令时确定所述第二从服务器,还可以是在发送所述数据存储指令时确定所述第二从服务器,不做具体限定。
这样,所述至少两台从服务器中可以包含一台所述第一从服务器和至少一台所述第二从服务器,例如,如果所述分布式数据存储系统包含两台从服务器,那么,第一从服务器的台数为一台,第二从服务器的台数为一台;如果所述分布式数据存储系统包含三台从服务器,那么,第一从服务器的台数为一台,第二从服务器的台数为两台。
分布式数据存储系统在发送所述数据存储指令时,仅向所述主服务器以及所述第一从服务器发送所述数据存储指令,这样,所述主服务器以及所述第一从服务器对待更新数据进行存储,所述第二从服务器不对待更新数据进行存储,可以减少数据存储时消耗的资源。
除此之外,在本申请实施例中,所述分布式数据存储系统中任何一个服务器(主服务器或从服务器)出现故障时,分布式数据存储系统都可以在保证主服务器与从服务器之间数据的一致性的前提下,对外提供数据读写服务。
具体地,在所述分布式数据存储系统中,至少存在以下几种故障情形:
第一种故障情形:所述主服务器出现故障;
第二种故障情形:所述第一从服务器出现故障;
第三种故障情形:所述第二从服务器出现故障。
下面分别针对上述三种故障情形,说明所述分布式数据存储系统如何在保证数据一致性的前提下,实现对外提供数据服务。
针对第一种故障情形以及第二种故障情形:
在确定所述主服务器或所述第一从服务器出现故障时,确定第三从服务器,并向所述第三从服务器发送数据同步指令,使所述第三从服务器根据所述数据同步指令完成与未出现故障且存储有数据的服务器之间的数据同步。
具体地,针对第一种故障情形:
在确定所述主服务器出现故障时,由于所述第一从服务器中存储有数据,因此,可以由所述第一从服务器作为新的主服务器,并由所述第一从服务器对外提供数据读写服务,此时,如果所述第一从服务器中的数据相比于所述主服务器而言,存在数据丢失的现象,那么,可以通过所述第一从服务器和/或所述第二从服务器存储的日志,恢复丢失的数据。
此外,还需要对所述第一从服务器中存储的数据进行备份,因此,需要确定一台第三从服务器,并对所述第一从服务器中存储的数据进行备份。
在确定所述第三从服务器时,可以从所述至少两台从服务器中包含的其他从服务器中选择一台从服务器作为所述第三从服务器,也可以确定一台新的服务器作为所述第三从服务器,不做具体限定。
在确定所述第三服务器后,可以向所述第三服务器发送数据同步指令,使所述第三从服务器根据所述数据同步指令完成与未出现故障且存储有数据的服务器之间的数据同步,这里的未出现故障且存储有数据的服务器可以是所述第一从服务器,所述第三从服务器完成与所述第一从服务器之间的数据同步。
需要说明的是,所述第三从服务器中的“第三”是为了便于与所述第一从服务器以及所述第二从服务器进行区分,没有其他特殊含义。
可选地,为了保证在分布式一致性协议下,所述第一从服务器、所述第二从服务器以及所述第三从服务器之间日志的一致性,还可以向所述第三从服务器发送日志同步指令,使所述第三从服务器根据所述第一从服务器中存储的日志,执行日志同步操作。
针对第二种故障情形:
在确定所述第一从服务器出现故障时,所述主服务器仍然可以对外提供数据服务,但是,由于所述第一从服务器出现故障,因此,需要确定新的从服务器,并对所述主服务器中存储的数据进行备份。
确定所述新的从服务器的方法与上述记载的确定所述第三从服务器的方法相同,这里不做重复描述。
在确定所述新的服务器后,可以向所述新的从服务器发送数据同步指令,使所述新的从服务器根据所述数据同步指令完成与未出现故障且存储有数据的服务器之间的数据同步,这里的未出现故障且存储有数据的服务器可以是所述主服务器,所述新的从服务器完成与所述主服务器之间的数据同步。
可选地,为了保证在分布式一致性协议下,所述主服务器、所述第二从服务器以及所述新的从服务器之间日志的一致性,还可以向所述新的从服务器发送日志同步指令,使所述新的从服务器根据所述主服务器中存储的日志,执行日志同步操作。
针对第三种故障情形:
在确定所述第二从服务器出现故障时,确定第四从服务器,并向所述第四从服务器发送日志同步指令,使所述第四从服务器根据所述日志同步指令完成与未出现故障的服务器之间的日志同步。
具体地,在确定所述第二从服务器出现故障时,所述主服务器仍然可以对外提供数据读写服务,所述第一从服务器可以对所述主服务器中存储的数据进行备份。但是,此时,为了保证在分布式一致性协议下,所述主服务器、所述第一从服务器之间日志的一致性,需要重新确定第四从服务器。
确定所述第四从服务器的方法与上述记载的确定所述第三从服务器的方法相同,这里不做重复描述。
在确定所述第四服务器之后,可以向所述第四从服务器发送日志同步指令,使所述第四服务器在接收到所述日志同步指令后,根据所述日志同步指令完成与未出现故障的服务器之间的日志同步。
这里的未出现故障的服务器可以是除所述第二服务器以外的其他服务器,可以是所述主服务器,也可以是所述第一从服务器,还可以是其他完成日志更新操作的服务器,不作具体限定。
所述第四从服务器中的“第四”是为了便于与所述第一从服务器、所述第二从服务器以及所述第三从服务器进行区分,没有其他特殊含义。
需要说明的是,由于所述第二从服务器中没有存储数据,因此,在确定所述第四从服务器之后,不需要向所述第四从服务器发送数据同步指令。
本申请实施例提供的技术方案,在接收到数据更新请求时,可以分别向主服务器以及从服务器发送日志更新指令,使主服务器以及从服务器执行日志更新操作,并在确定日志更新操作完成时,向主服务器以及其中一个从服务器发送数据存储指令,这样,在从服务器中的数据丢失时,可以通过主服务器与从服务器预先存储的日志恢复丢失的数据,保证主服务器与从服务器之间数据的一致性,并且,针对待更新数据,只有主服务器以及其中一个从服务器对其进行存储,可以有效减少数据存储消耗的资源。
实施例2
图2为本申请实施例提供的一种数据处理方法的流程示意图。所述方法如下所述。本申请实施例的执行主体可以是基于一致性协议的分布式数据存储系统中的主服务器。
步骤201:所述主服务器接收用户发送的数据更新请求。
其中,所述数据更新请求中包含待更新数据。
在步骤201中,用户在发起业务请求,并接收到响应消息后,可以向分布式数据存储系统中的主服务器发送数据更新请求,此时,分布式数据存储系统中的主服务器可以接收用户发送的数据更新请求。
在本申请实施例中,所述主服务器是在所述分布式数据存储系统中的存储的数据为空时,确定得到的,确定所述主服务器的方法和上述实施例1中记载的方法相同,这里不再重复描述。
步骤202:所述主服务器根据所述数据更新请求,启动日志更新操作,并向所述至少两台从服务器发送日志更新指令,使所述至少两台从服务器根据所述日志更新指令执行日志更新操作。
在步骤202中,主服务器在接收到用户发送的数据更新请求时,可以启动日志更新操作,并根据所述数据请求,向分布式数据存储系统中的至少两台从服务器发送日志更新指令,以便于所述至少两台从服务器根据日志更新指令执行日志更新操作。
所述主服务器在接收到所述数据更新请求时,可以根据所述数据更新请求,启动日志更新操作,再根据所述数据更新请求,向所述至少两台从服务器发送日志更新指令,也可以是在接收到所述数据更新请求时,根据所述数据更新请求,向所述至少两台从服务器发送日志更新指令,再根据所述数据更新请求,启动日志更新操作,不做具体限定。
所述主服务器向所述至少两台从服务器发送所述日志更新指令后,所述至少两台从服务器可以接收所述日志更新指令,并根据所述日志更新指令执行日志更新操作。
步骤203:所述主服务器在确定所述日志更新操作完成时,启动数据存储操作,并向所述至少两台从服务器中的第一从服务器发送数据存储指令,使所述第一从服务器根据所述数据存储指令执行对所述待更新数据的存储操作。
在步骤203中,主服务器在确定日志更新操作完成时,可以启动数据存储操作,并选择所述至少两台从服务器中的其中一台从服务器作为第一从服务器,并向所述第一从服务器发送数据存储指令,以便于所述主服务器以及所述第一从服务器对所述待更新数据进行存储。
所述主服务器至少在以下两种情形下,可以确定所述日志更新操作完成,包括:
第一种情形:在确定所述主服务器完成所述日志更新操作时,确定所述日志更新操作完成;
第二种情形:在确定所述主服务器完成所述日志更新操作以及所述至少两台从服务器中至少一台从服务器完成所述日志更新操作时,确定所述日志更新操作完成。
所述主服务器在确定所述日志更新操作完成后,可以启动数据存储操作,以便于所述主服务器对外提供数据读写服务,此时,所述主服务器还可以选择所述至少两台从服务器中的其中一台从服务器作为第一从服务器,并向所述第一从服务器发送数据存储指令,使所述第一从服务器根据所述数据存储指令执行待更新数据的数据存储操作。
其中,所述主服务器可以在发送所述数据存储之前,启动数据存储操作,也可以在发送所述数据存储指令之后,启动数据存储操作,不做具体限定。
这样,所述主服务器在接收到数据更新请求后,可以向所述第一从服务器以及所述第二从服务器发送日志更新指令,并在确定日志更新操作完成时,执行数据存储操作,并向所述第一从服务器发送数据存储指令,这样,在所述第一从服务器中的数据丢失时,可以根据所述主服务器和/或所述第一从服务器和/或所述第二从服务器预先存储的日志,恢复丢失的数据,保证所述主服务器与所述第一从服务器之间数据的一致性,并且,针对待更新数据,只有主服务器以及所述第一从服务器对其进行存储,可以减少数据存储时消耗的资源。
实施例3
下面以分布式数据存储系统中包含三台服务器(一台主服务器,两台从服务器)为例,对本申请实施例提供的技术方案进行说明,本申请实施例的执行主体可以是主服务器。
第一步:确定分布式数据存储系统中的主服务器、第一从服务器以及第二从服务器。
在分布式数据存储系统中存储的数据为空时,可以确定分布式数据存储系统中的主服务器以及两个从服务器,为了便于区分,可以将两个从服务器分别称为第一从服务器以及第二从服务器。
在本申请实施例中,所述主服务器可以对待更新数据进行存储,并对外提供数据读写服务,所述第一从服务器可以对待更新数据进行存储,所述第二从服务器不对待更新数据进行存储。
在本申请实施例中,对确定所述主服务器、所述第一从服务器以及所述第二从服务器的先后顺序不做具体限定。
下面以确定所述第二从服务器、所述主服务器以及所述第一从服务器的先后顺序为例进行说明。
首先:确定第二从服务器。
在确定所述第二从服务器时,可以基于分布式一致性协议-paxos协议,由分布式数据存储系统中包含的三台服务器通过选举的方式确定得到。
在确定所述第二从服务器时,还可以随机选择其中一台服务器作为所述第二从服务器,或者按照实际情况确定所述第二从服务器,这里对确定所述第二从服务器的方法不做具体限定。
其次:确定主服务器。
在确定所述第二从服务器后,可以基于分布式一致性协议-paxos协议,由所述第二从服务器以及分布式数据存储系统中其余两台服务器,通过选举的方式确定得到。
需要说明的是,在通过选举的方式确定所述主服务器时,所述第二从服务器不可以选举自己为主服务器,其他两台服务器也不可以选举所述第二从服务器作为主服务器。
如图3所示,为本申请实施例提供的确定主服务器的流程示意图。
从图3中可以看出,通过选举的方式确定所述第二从服务器C之后,可以由服务器A、服务器B以及第二从服务器C通过选举的方式确定主服务器,其中,服务器A可以选举自己以及服务器B为主服务器,不能选举第二从服务器C为主服务器,服务器B可以选举自己以及服务器A为主服务器,不能选举第二从服务器C为主服务器,第二服务器C不能选举自己为主服务器,可以选举服务器A以及服务器B为主服务器。
在确定所述主服务器时,还可以在除所述第二从服务器之外的其他两台服务器中随机选择其中一台作为主服务器,也可以根据实际需要选择其中一台服务器作为主服务器,不做具体限定。
最后:确定第一从服务器。
在所述分布式数据存储系统中包含的三个服务器中,在确定所述第二从服务器以及所述主服务器之后,可以将剩余的一台服务器作为第一从服务器。
第二步:所述主服务器接收用户发送的数据更新请求。
所述数据更新请求中包含待更新数据。
第三步:所述主服务器向所述第一从服务器以及所述第二从服务器发送日志更新指令,使所述第一从服务器以及所述第二从服务器根据所述日志更新指令执行日志更新操作。
所述主服务器在向所述第一从服务器以及所述第二从服务器发送日志更新指令后,所述第一从服务器以及所述第二从服务器可以接收所述日志更新指令,此时,所述主服务器、所述第一从服务器以及所述第二从服务器可以基于分布式一致性协议-paxos协议执行日志更新,并在确定所述主服务器且所述第一从服务器和所述第二从服务器中至少一个服务器完成日志更新操作时,确定所述日志更新操作完成。
第四步:所述主服务向所述第一从服务器发送数据存储操作,使所述第一从服务器根据所述数据存储指令执行待更新数据的存储操作。
在确定所述日志更新操作完成时,所述主服务器可以执行待更新数据的存储操作,并向所述第一从服务器发送数据存储指令,所述第一从服务器可以接收所述数据存储指令,此时,如果所述第一从服务器已完成日志更新操作,那么,所述第一从服务器可以根据所述数据存储指令执行待更新数据的存储操作,如果所述第一从服务器未完成日志更新操作,那么,所述第一从服务器需要继续执行日志更新操作,并在完成日志更新操作时,可以根据接收到的所述数据存储指令执行待更新数据的存储操作。
这样,主服务器在接收到数据更新请求时,可以向第一从服务器以及第二从服务器发送日志更新指令,并在确定日志更新操作完成时,执行数据存储操作,并向所述第一从服务器发送数据存储指令,这样,针对待更新数据,只有所述主服务器以及所述第一从服务器对其进行存储,可以减少数据存储时消耗的资源。
在本申请实施例中,在所述主服务器、所述第一从服务器以及所述第二从服务器中任一个服务器出现故障时,分布式数据存储系统都可以在保证数据一致性的前提下,实现对外提供数据读写服务。
具体地,在所述主服务器出现故障时:
如图4所示,在主服务器出现故障时,主服务器不能继续对用户提供读写服务,此时,可以确定第一从服务器B作为新的主服务器,并确定服务器D作为新的第一从服务器,第一从服务器B可以对用户(Client)提供数据读写服务,并保持与第二从服务器C之间的日志同步,服务器D从第一从服务器B复制数据副本,完成与第一从服务器B之间的数据同步,并执行日志同步操作,完成与第一从服务器B之间的日志同步。
在所述第一从服务器出现故障时:
如图5所示,在第一从服务器出现故障时,主服务器A可以继续对用户(Client)提供数据读写服务,此时,可以确定服务器E作为新的第一从服务器,服务器E从主服务器A复制数据副本,完成与主服务器A之间的数据同步,并执行日志同步操作,完成与主服务器A之间的日志同步。
在所述第二从服务器出现故障时:
如图6所示,在第二从服务器出现故障时,主服务器A可以继续对用户提供数据读写服务,此时,可以确定服务器F作为新的第二从服务器,服务器F执行日志同步操作,并完成与主服务器A之间的日志同步。
在实际应用中,会存在异地多活的分布式数据存储系统,也就是说,针对同一份数据而言,在本地存储数据副本之外,还需要在异地存储数据副本,以加强分布式数据存储系统的稳定性。针对异地多活的分布式数据存储系统,为了减少数据存储时消耗的资源,可以在本地使用至少三台服务器,其中的主服务器存储待更新数据,其余从服务器只存储日志(即只执行日志更新操作),在异地使用至少三台服务器,其中的主服务器对本地中的主服务器中的数据存储数据副本,其余从服务器只存储日志(即只执行日志更新操作)。
如图7所示,在本地机房,可以使用三台服务器A、B、C,其中服务器A为主服务器,对待更新数据进行存储,服务器B以及服务器C为从服务器仅执行日志更新操作,不对待更新数据进行存储。在异地机房,可以使用服务器D、E、F,其中,服务器D为主服务器,对本地机房中服务器A中存储的数据存储数据副本,服务器E以及服务器F仅执行日志更新操作,不对待更新数据进行存储。
在服务器A出现故障时,可以由服务器D对外提供数据读写服务。
在服务器D出现故障时,服务器A仍然可以继续对外提供数据读写服务,此时,需要在异地机房中确定新的主服务器,新的主服务器可以完成与服务器A之间的数据同步以及日志同步。
在服务器B、服务器C、服务器E以及服务器F中任一个服务器出现故障时,服务器A仍然可以继续对外提供读写服务。
图8为本申请实施例提供的一种数据处理设备的结构示意图。所述设备应用于分布式数据存储系统,所述分布式数据存储系统中包含主服务器以及至少两台从服务器,所述设备包括:接收单元81、发送单元82以及确定单元83,其中:
接收单元81,接收用户发送的数据更新请求,所述数据更新请求中包含待更新数据;
发送单元82,根据所述数据更新请求,分别向所述主服务器以及所述至少两台从服务器发送日志更新指令,使所述主服务器以及所述至少两台从服务器根据所述日志更新指令执行日志更新操作;
所述发送单元82,在确定所述日志更新操作完成时,分别向所述主服务器以及所述至少两台从服务器中的第一从服务器发送数据存储指令,使所述主服务器以及所述第一从服务器根据所述数据存储指令执行对所述待更新数据的存储操作。
具体地,所述发送单元82确定所述日志更新操作完成,包括:
在确定所述主服务器完成所述日志更新操作时,确定所述日志更新操作完成;
或,
在确定所述主服务器且所述至少两台从服务器中至少一台从服务器完成所述日志更新操作时,确定所述日志更新操作完成。
所述发送单元82分别向所述主服务器以及所述至少两台从服务器中的第一从服务器发送数据存储指令,包括:
在确定所述主服务器完成所述日志更新操作时,向所述主服务器发送数据存储指令,并在向所述主服务器发送数据存储指令后且确定所述至少两台从服务器中的至少一台服务器完成所述日志更新操作时,向所述至少两台从服务器中的第一从服务器发送数据存储指令;
或,
在确定所述主服务器且所述至少两台从服务器中至少一台从服务器完成所述日志更新操作时,分别向所述主服务器以及所述至少两台从服务器中的第一从服务器发送数据存储指令。
可选地,所述数据处理设备还包括:确定单元83,其中:
所述确定单元83,确定所述至少两台从服务器中的第二从服务器,并在确定所述第二从服务器完成所述日志更新操作完成时,向所述第二从服务器发送空操作指令,所述空操作指令用于指示所述第二从服务器执行空操作。
可选地,所述确定单元83,在确定所述主服务器或所述第一从服务器出现故障时,确定第三从服务器,并向所述第三从服务器发送数据同步指令,使所述第三从服务器根据所述数据同步指令完成与未出现故障且存储有数据的服务器之间的数据同步。
可选地,所述确定单元83,在确定所述第二从服务器出现故障时,确定第四从服务器,并向所述第四从服务器发送日志同步指令,使所述第四从服务器根据所述日志同步指令完成与未出现故障的服务器之间的日志同步。
图9为本申请实施例提供的一种数据处理设备的结构示意图。所述设备应用于分布式数据存储系统,所述分布式数据存储系统中包含主服务器以及至少两台从服务器,所述设备包括:接收单元91和发送单元92,其中:
接收单元91,接收用户发送的数据更新请求,所述数据更新请求中包含待更新数据;
发送单元92,根据所述数据更新请求,启动日志更新操作,并向所述至少两台从服务器发送日志更新指令,使所述至少两台从服务器根据所述日志更新指令执行日志更新操作;
所述发送单元92,在确定所述日志更新操作完成时,启动数据存储操作,并向所述至少两台从服务器中的第一从服务器发送数据存储指令,使所述第一从服务器根据所述数据存储指令执行对所述待更新数据的存储操作。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种数据处理方法,其特征在于,所述方法应用于分布式数据存储系统,所述分布式数据存储系统中包含主服务器以及至少两台从服务器,所述方法包括:
接收用户发送的数据更新请求,所述数据更新请求中包含待更新数据;
根据所述数据更新请求,分别向所述主服务器以及所述至少两台从服务器发送日志更新指令,使所述主服务器以及所述至少两台从服务器根据所述日志更新指令执行日志更新操作;
在确定所述日志更新操作完成时,仅向所述主服务器以及所述至少两台从服务器中的第一从服务器发送数据存储指令,使所述主服务器以及所述第一从服务器根据所述数据存储指令执行对所述待更新数据的存储操作,所述第一从服务器为所述至少两台从服务器中的一台。
2.如权利要求1所述的数据处理方法,其特征在于,确定所述日志更新操作完成,包括:
在确定所述主服务器完成所述日志更新操作时,确定所述日志更新操作完成;
或,
在确定所述主服务器且所述至少两台从服务器中至少一台从服务器完成所述日志更新操作时,确定所述日志更新操作完成。
3.如权利要求2所述的数据处理方法,其特征在于,仅向所述主服务器以及所述至少两台从服务器中的第一从服务器发送数据存储指令,包括:
在确定所述主服务器完成所述日志更新操作时,向所述主服务器发送数据存储指令,并在向所述主服务器发送数据存储指令后且确定所述至少两台从服务器中的至少一台从服务器完成所述日志更新操作时,仅向所述至少两台从服务器中的第一从服务器发送数据存储指令;
或,
在确定所述主服务器且所述至少两台从服务器中至少一台从服务器完成所述日志更新操作时,仅向所述主服务器以及所述至少两台从服务器中的第一从服务器发送数据存储指令。
4.如权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
在确定所述主服务器或所述第一从服务器出现故障时,确定第三从服务器,并向所述第三从服务器发送数据同步指令,使所述第三从服务器根据所述数据同步指令完成与未出现故障且存储有数据的服务器之间的数据同步。
5.一种数据处理方法,其特征在于,所述方法应用于分布式数据存储系统,所述分布式数据存储系统中包含主服务器以及至少两台从服务器,所述方法包括:
所述主服务器接收用户发送的数据更新请求,所述数据更新请求中包含待更新数据;
所述主服务器根据所述数据更新请求,启动日志更新操作,并向所述至少两台从服务器发送日志更新指令,使所述至少两台从服务器根据所述日志更新指令执行日志更新操作;
所述主服务器在确定所述日志更新操作完成时,启动数据存储操作,并仅向所述至少两台从服务器中的第一从服务器发送数据存储指令,使所述第一从服务器根据所述数据存储指令执行对所述待更新数据的存储操作,所述第一从服务器为所述至少两台从服务器中的一台。
6.一种数据处理设备,其特征在于,所述设备应用于分布式数据存储系统,所述分布式数据存储系统中包含主服务器以及至少两台从服务器,所述设备包括:接收单元和发送单元,其中:
接收单元,接收用户发送的数据更新请求,所述数据更新请求中包含待更新数据;
发送单元,根据所述数据更新请求,分别向所述主服务器以及所述至少两台从服务器发送日志更新指令,使所述主服务器以及所述至少两台从服务器根据所述日志更新指令执行日志更新操作;
所述发送单元,在确定所述日志更新操作完成时,仅向所述主服务器以及所述至少两台从服务器中的第一从服务器发送数据存储指令,使所述主服务器以及所述第一从服务器根据所述数据存储指令执行对所述待更新数据的存储操作,所述第一从服务器为所述至少两台从服务器中的一台。
7.如权利要求6所述的数据处理设备,其特征在于,所述发送单元确定所述日志更新操作完成,包括:
在确定所述主服务器完成所述日志更新操作时,确定所述日志更新操作完成;
或,
在确定所述主服务器且所述至少两台从服务器中至少一台从服务器完成所述日志更新操作时,确定所述日志更新操作完成。
8.如权利要求7所述的数据处理设备,其特征在于,所述发送单元仅向所述主服务器以及所述至少两台从服务器中的第一从服务器发送数据存储指令,包括:
在确定所述主服务器完成所述日志更新操作时,向所述主服务器发送数据存储指令,并在向所述主服务器发送数据存储指令后且确定所述至少两台从服务器中的至少一台从服务器完成所述日志更新操作时,向所述至少两台从服务器中的第一从服务器发送数据存储指令;
或,
在确定所述主服务器且所述至少两台从服务器中至少一台从服务器完成所述日志更新操作时,仅向所述主服务器以及所述至少两台从服务器中的第一从服务器发送数据存储指令。
9.如权利要求6所述的数据处理设备,其特征在于,
确定单元,在确定所述主服务器或所述第一从服务器出现故障时,确定第三从服务器,并向所述第三从服务器发送数据同步指令,使所述第三从服务器根据所述数据同步指令完成与未出现故障且存储有数据的服务器之间的数据同步。
10.一种数据处理设备,其特征在于,所述设备应用于分布式数据存储系统,所述分布式数据存储系统中包含主服务器以及至少两台从服务器,所述设备包括:接收单元和发送单元,其中:
接收单元,接收用户发送的数据更新请求,所述数据更新请求中包含待更新数据;
发送单元,根据所述数据更新请求,启动日志更新操作,并向所述至少两台从服务器发送日志更新指令,使所述至少两台从服务器根据所述日志更新指令执行日志更新操作;
所述发送单元,在确定所述日志更新操作完成时,启动数据存储操作,并仅向所述至少两台从服务器中的第一从服务器发送数据存储指令,使所述第一从服务器根据所述数据存储指令执行对所述待更新数据的存储操作,所述第一从服务器为所述至少两台从服务器中的一台。
CN202010118286.9A 2016-06-20 2016-06-20 一种数据处理方法和设备 Active CN111314479B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010118286.9A CN111314479B (zh) 2016-06-20 2016-06-20 一种数据处理方法和设备

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010118286.9A CN111314479B (zh) 2016-06-20 2016-06-20 一种数据处理方法和设备
CN201610444320.5A CN106899648B (zh) 2016-06-20 2016-06-20 一种数据处理方法和设备

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201610444320.5A Division CN106899648B (zh) 2016-06-20 2016-06-20 一种数据处理方法和设备

Publications (2)

Publication Number Publication Date
CN111314479A CN111314479A (zh) 2020-06-19
CN111314479B true CN111314479B (zh) 2022-08-23

Family

ID=59190336

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201610444320.5A Active CN106899648B (zh) 2016-06-20 2016-06-20 一种数据处理方法和设备
CN202010118286.9A Active CN111314479B (zh) 2016-06-20 2016-06-20 一种数据处理方法和设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201610444320.5A Active CN106899648B (zh) 2016-06-20 2016-06-20 一种数据处理方法和设备

Country Status (18)

Country Link
US (2) US10798168B2 (zh)
EP (1) EP3474516B1 (zh)
JP (1) JP6684367B2 (zh)
KR (1) KR102145136B1 (zh)
CN (2) CN106899648B (zh)
AU (1) AU2017282817B2 (zh)
BR (1) BR112018076689B1 (zh)
CA (1) CA3028504C (zh)
ES (1) ES2809174T3 (zh)
MX (1) MX2018016249A (zh)
MY (1) MY191234A (zh)
PH (1) PH12018502712B1 (zh)
PL (1) PL3474516T3 (zh)
RU (1) RU2714098C1 (zh)
SG (1) SG11201811389PA (zh)
TW (1) TWI689181B (zh)
WO (1) WO2017219857A1 (zh)
ZA (1) ZA201900306B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106899648B (zh) 2016-06-20 2020-02-14 阿里巴巴集团控股有限公司 一种数据处理方法和设备
CN107105032B (zh) * 2017-04-20 2019-08-06 腾讯科技(深圳)有限公司 节点设备运行方法及节点设备
CN107908370B (zh) * 2017-11-30 2021-07-06 新华三技术有限公司 数据存储方法及装置
CN108616598B (zh) * 2018-05-10 2021-01-01 新华三技术有限公司成都分公司 数据同步方法、装置和分布式存储系统
CN109117312B (zh) * 2018-08-23 2022-03-01 北京小米智能科技有限公司 数据恢复方法及装置
CN110968561B (zh) * 2018-09-30 2024-02-13 北京国双科技有限公司 日志存储方法和分布式系统
CN111352943A (zh) * 2018-12-24 2020-06-30 华为技术有限公司 实现数据一致性的方法和装置、服务器和终端
US11308100B2 (en) * 2019-06-25 2022-04-19 Amazon Technologies, Inc. Dynamically assigning queries to secondary query processing resources
CN110597673B (zh) * 2019-09-25 2021-04-30 腾讯科技(深圳)有限公司 存储系统的容灾方法、装置、设备及计算机可读存储介质
CN111209333B (zh) * 2019-12-20 2023-06-20 中国平安财产保险股份有限公司 数据更新方法、装置、终端及存储介质
CN112434054A (zh) * 2020-12-09 2021-03-02 杭州海量存储技术有限公司 一种审计日志的更新方法及装置
CN112615944B (zh) * 2020-12-11 2023-07-11 互联网域名系统北京市工程研究中心有限公司 分布式dns主辅同步的方法和系统
CN113472469B (zh) * 2021-07-27 2023-12-05 厦门亿联网络技术股份有限公司 一种数据同步方法、装置、设备及存储介质
CN116095098B (zh) * 2022-11-28 2024-04-09 华南农业大学 数据的分布式存储方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2429134A1 (en) * 2009-06-09 2012-03-14 ZTE Corporation Method and apparatus for checking and synchronizing data block in distributed file system
US8301600B1 (en) * 2010-11-15 2012-10-30 Amazon Technologies, Inc. Failover recovery in a distributed data store
CN103546579A (zh) * 2013-11-07 2014-01-29 陈靓 一种用数据日志提高分布式存储系统可用性的方法
CN104506643A (zh) * 2014-12-30 2015-04-08 北京奇虎科技有限公司 分布式存储系统的服务器及服务器之间的数据同步方法
CN104657382A (zh) * 2013-11-21 2015-05-27 阿里巴巴集团控股有限公司 用于MySQL主从服务器数据一致性检测的方法和装置
CN105468297A (zh) * 2015-11-18 2016-04-06 临沂大学 一种云存储系统内主从设备数据快速同步的方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1568467B (zh) * 2001-09-06 2010-06-16 Bea系统公司 正好一次高速缓存器结构
KR100483742B1 (ko) * 2002-02-18 2005-04-18 주식회사 케이티프리텔 이동 통신 단말기를 이용한 대금 지불 및 개인 정보 관리방법
US7158985B1 (en) * 2003-04-09 2007-01-02 Cisco Technology, Inc. Method and apparatus for efficient propagation of large datasets under failure conditions
US7188273B2 (en) * 2003-11-24 2007-03-06 Tsx Inc. System and method for failover
US7577661B2 (en) 2005-06-30 2009-08-18 Microsoft Corporation Extensible and automatically replicating server farm configuration management infrastructure
JP4998549B2 (ja) * 2007-02-28 2012-08-15 富士通株式会社 メモリミラー化制御プログラム、メモリミラー化制御方法およびメモリミラー化制御装置
KR100926880B1 (ko) * 2007-05-21 2009-11-16 엔에이치엔(주) Dbms에서의 데이터 복제 방법 및 시스템
US7631214B2 (en) * 2007-05-31 2009-12-08 International Business Machines Corporation Failover processing in multi-tier distributed data-handling systems
KR101001946B1 (ko) 2008-10-22 2010-12-17 한국과학기술연구원 수소 저장 물질 및 그 제조 방법
KR20100044428A (ko) * 2008-10-22 2010-04-30 현대중공업 주식회사 다중서버 상위구조를 갖는 선박자동화 시스템
JP5039891B2 (ja) * 2009-10-19 2012-10-03 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースの複製を生成する装置及び方法
CN101741911B (zh) 2009-12-18 2014-04-30 中兴通讯股份有限公司 基于多副本协同的写操作方法、系统及节点
US8572022B2 (en) * 2010-03-02 2013-10-29 Microsoft Corporation Automatic synchronization conflict resolution
US8510270B2 (en) * 2010-07-27 2013-08-13 Oracle International Corporation MYSQL database heterogeneous log based replication
US9251021B2 (en) * 2011-05-23 2016-02-02 Bradley Gene Calder Asynchronous replication in a distributed storage environment
US9348883B2 (en) * 2011-06-01 2016-05-24 Clustrix, Inc. Systems and methods for replication replay in a relational database
CN103580891A (zh) * 2012-07-27 2014-02-12 腾讯科技(深圳)有限公司 一种数据同步的方法、系统及服务器
JP6056453B2 (ja) * 2012-12-20 2017-01-11 富士通株式会社 プログラム、データ管理方法および情報処理装置
CN104346373B (zh) * 2013-07-31 2017-12-15 华为技术有限公司 分区日志队列同步管理方法及设备
CN103560906B (zh) * 2013-10-22 2017-01-25 珠海多玩信息技术有限公司 数据复制的方法及装置
JP6318902B2 (ja) * 2014-06-20 2018-05-09 富士通株式会社 冗長システムおよび冗長化方法
US9367410B2 (en) * 2014-09-12 2016-06-14 Facebook, Inc. Failover mechanism in a distributed computing system
CN105426439B (zh) * 2015-11-05 2022-07-05 腾讯科技(深圳)有限公司 一种元数据的处理方法和装置
CN105554142B (zh) * 2015-12-24 2019-02-01 北京奇虎科技有限公司 消息推送的方法、装置及系统
CN106899648B (zh) * 2016-06-20 2020-02-14 阿里巴巴集团控股有限公司 一种数据处理方法和设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2429134A1 (en) * 2009-06-09 2012-03-14 ZTE Corporation Method and apparatus for checking and synchronizing data block in distributed file system
US8301600B1 (en) * 2010-11-15 2012-10-30 Amazon Technologies, Inc. Failover recovery in a distributed data store
CN103546579A (zh) * 2013-11-07 2014-01-29 陈靓 一种用数据日志提高分布式存储系统可用性的方法
CN104657382A (zh) * 2013-11-21 2015-05-27 阿里巴巴集团控股有限公司 用于MySQL主从服务器数据一致性检测的方法和装置
CN104506643A (zh) * 2014-12-30 2015-04-08 北京奇虎科技有限公司 分布式存储系统的服务器及服务器之间的数据同步方法
CN105468297A (zh) * 2015-11-18 2016-04-06 临沂大学 一种云存储系统内主从设备数据快速同步的方法

Also Published As

Publication number Publication date
CN106899648B (zh) 2020-02-14
US10798168B2 (en) 2020-10-06
JP6684367B2 (ja) 2020-04-22
EP3474516A1 (en) 2019-04-24
US20200128076A1 (en) 2020-04-23
PH12018502712A1 (en) 2019-07-29
US20190149605A1 (en) 2019-05-16
MX2018016249A (es) 2019-08-29
KR20190020099A (ko) 2019-02-27
TW201801495A (zh) 2018-01-01
CN106899648A (zh) 2017-06-27
SG11201811389PA (en) 2019-01-30
AU2017282817B2 (en) 2020-01-02
ES2809174T3 (es) 2021-03-03
EP3474516B1 (en) 2020-05-13
ZA201900306B (en) 2021-01-27
RU2714098C1 (ru) 2020-02-11
JP2019526106A (ja) 2019-09-12
MY191234A (en) 2022-06-10
US10693965B2 (en) 2020-06-23
BR112018076689B1 (pt) 2021-09-08
AU2017282817A1 (en) 2019-01-31
CA3028504C (en) 2021-02-16
BR112018076689A2 (pt) 2019-04-02
KR102145136B1 (ko) 2020-08-18
PH12018502712B1 (en) 2019-07-29
CA3028504A1 (en) 2017-12-28
CN111314479A (zh) 2020-06-19
TWI689181B (zh) 2020-03-21
PL3474516T3 (pl) 2021-02-08
EP3474516A4 (en) 2019-04-24
WO2017219857A1 (zh) 2017-12-28

Similar Documents

Publication Publication Date Title
CN111314479B (zh) 一种数据处理方法和设备
US10237118B2 (en) Efficient application build/deployment for distributed container cloud platform
CN109491776B (zh) 任务编排方法和系统
US9569517B1 (en) Fault tolerant distributed key-value storage
CN110825420B (zh) 分布式集群的配置参数更新方法、装置、设备及存储介质
US10884623B2 (en) Method and apparatus for upgrading a distributed storage system
CN109614209B (zh) 一种任务处理方法、应用服务器及系统
EP3258396A1 (en) Data synchronization method, device and system
CN110019514B (zh) 数据同步方法、装置以及电子设备
US11917005B2 (en) Clustered storage system synchronization
CN110888858B (zh) 数据库的操作方法和装置、存储介质、电子装置
CN106484321A (zh) 一种数据存储方法及数据中心
CN106899654A (zh) 一种序列值生成方法、装置及系统
JP6975153B2 (ja) データ格納サービス処理方法及び装置
CN111880956A (zh) 一种数据同步方法和装置
CN114238495A (zh) 数据库主备集群切换方法、装置、计算机设备及存储介质
US10728323B2 (en) Method and apparatus for operating infrastructure layer in cloud computing architecture
US10944850B2 (en) Methods, devices and systems for non-disruptive upgrades to a distributed coordination engine in a distributed computing environment
CN111435320B (zh) 一种数据处理方法及其装置
CN110968888B (zh) 一种数据处理方法及装置
CN110618863A (zh) 一种基于Raft算法的作业调度方法
CN116248499A (zh) 服务的初始化方法、服务的初始化装置和电子设备
CN112487081A (zh) 数据同步方法、装置、存储介质及设备
CN114490158A (zh) 分布式的容灾系统、服务器节点处理方法、装置及设备
CN114816764A (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
TA01 Transfer of patent application right

Effective date of registration: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

Effective date of registration: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant before: Advanced innovation technology Co.,Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210129

Address after: 801-10, Section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province 310000

Applicant after: Ant financial (Hangzhou) Network Technology Co.,Ltd.

Address before: Ky1-9008 business centre, 27 Hospital Road, Georgetown, grand caiman, UK

Applicant before: Innovative advanced technology Co.,Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210902

Address after: 100020 unit 02, 901, floor 9, unit 1, building 1, No.1, East Third Ring Middle Road, Chaoyang District, Beijing

Applicant after: Beijing Aoxing Beisi Technology Co.,Ltd.

Address before: 801-10, Section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province 310000

Applicant before: Ant financial (Hangzhou) Network Technology Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant